Skip to content

Commit 2813934

Browse files
clayborgpuja2196
authored andcommitted
Fix an integer trunctation issues for the DW_AT_frame_base DWARF location expression (#110388)
This patch allows offsets to the DW_AT_frame_base to exceed 4GB. Prior to this, for any .debug_info.dwo offset that exceeded 4GB, we would truncate the offset to the DW_AT_frame_base expression bytes to be 32 bit only. Changing the offset to 64 bits restores correct functionality. No test for this as we don't want to create a .dwp file that has a .debug_info.dwo size that is over 4GB.
1 parent f4ea286 commit 2813934

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,9 +229,9 @@ bool DWARFDebugInfoEntry::GetDIENamesAndRanges(
229229
case DW_AT_frame_base:
230230
if (frame_base) {
231231
if (form_value.BlockData()) {
232-
uint32_t block_offset =
232+
uint64_t block_offset =
233233
form_value.BlockData() - data.GetDataStart();
234-
uint32_t block_length = form_value.Unsigned();
234+
uint64_t block_length = form_value.Unsigned();
235235
*frame_base =
236236
DWARFExpressionList(module,
237237
DWARFExpression(DataExtractor(

0 commit comments

Comments
 (0)