| ... | @@ -412,7 +412,9 @@ pub fn flushModule(self: *DebugSymbols, allocator: *Allocator, options: link.Opt | ... | @@ -412,7 +412,9 @@ pub fn flushModule(self: *DebugSymbols, allocator: *Allocator, options: link.Opt |
| 412 | const allocated_size = dwarf_segment.allocatedSize(debug_abbrev_sect.offset); | 412 | const allocated_size = dwarf_segment.allocatedSize(debug_abbrev_sect.offset); |
| 413 | if (needed_size > allocated_size) { | 413 | if (needed_size > allocated_size) { |
| 414 | debug_abbrev_sect.size = 0; // free the space | 414 | debug_abbrev_sect.size = 0; // free the space |
| 415 | debug_abbrev_sect.offset = @intCast(u32, dwarf_segment.findFreeSpace(needed_size, 1, null)); | 415 | const offset = dwarf_segment.findFreeSpace(needed_size, 1, null); |
| | 416 | debug_abbrev_sect.offset = @intCast(u32, offset); |
| | 417 | debug_abbrev_sect.addr = dwarf_segment.inner.vmaddr + offset - dwarf_segment.inner.fileoff; |
| 416 | } | 418 | } |
| 417 | debug_abbrev_sect.size = needed_size; | 419 | debug_abbrev_sect.size = needed_size; |
| 418 | log.debug("__debug_abbrev start=0x{x} end=0x{x}", .{ | 420 | log.debug("__debug_abbrev start=0x{x} end=0x{x}", .{ |
| ... | @@ -536,9 +538,9 @@ pub fn flushModule(self: *DebugSymbols, allocator: *Allocator, options: link.Opt | ... | @@ -536,9 +538,9 @@ pub fn flushModule(self: *DebugSymbols, allocator: *Allocator, options: link.Opt |
| 536 | const allocated_size = dwarf_segment.allocatedSize(debug_aranges_sect.offset); | 538 | const allocated_size = dwarf_segment.allocatedSize(debug_aranges_sect.offset); |
| 537 | if (needed_size > allocated_size) { | 539 | if (needed_size > allocated_size) { |
| 538 | debug_aranges_sect.size = 0; // free the space | 540 | debug_aranges_sect.size = 0; // free the space |
| 539 | const offset = dwarf_segment.findFreeSpace(needed_size, 16, null); | 541 | const new_offset = dwarf_segment.findFreeSpace(needed_size, 16, null); |
| 540 | debug_aranges_sect.offset = @intCast(u32, offset); | 542 | debug_aranges_sect.addr = dwarf_segment.inner.vmaddr + new_offset - dwarf_segment.inner.fileoff; |
| 541 | debug_aranges_sect.addr = dwarf_segment.inner.vmaddr + offset - dwarf_segment.inner.fileoff; | 543 | debug_aranges_sect.offset = @intCast(u32, new_offset); |
| 542 | } | 544 | } |
| 543 | debug_aranges_sect.size = needed_size; | 545 | debug_aranges_sect.size = needed_size; |
| 544 | log.debug("__debug_aranges start=0x{x} end=0x{x}", .{ | 546 | log.debug("__debug_aranges start=0x{x} end=0x{x}", .{ |