| ... | ... | @@ -2170,7 +2170,7 @@ pub fn writeDbgAranges(self: *Dwarf, addr: u64, size: u64) !void { |
| 2170 | 2170 | }, |
| 2171 | 2171 | } |
| 2172 | 2172 | |
| 2173 | | const needed_size = di_buf.items.len; |
| 2173 | const needed_size = @intCast(u32, di_buf.items.len); |
| 2174 | 2174 | switch (self.bin_file.tag) { |
| 2175 | 2175 | .elf => { |
| 2176 | 2176 | const elf_file = self.bin_file.cast(File.Elf).?; |
| ... | ... | @@ -2190,21 +2190,10 @@ pub fn writeDbgAranges(self: *Dwarf, addr: u64, size: u64) !void { |
| 2190 | 2190 | }, |
| 2191 | 2191 | .macho => { |
| 2192 | 2192 | const d_sym = self.bin_file.cast(File.MachO).?.getDebugSymbols().?; |
| 2193 | | const dwarf_seg = d_sym.segments.items[d_sym.dwarf_segment_cmd_index.?]; |
| 2194 | | const debug_aranges_sect = &d_sym.sections.items[d_sym.debug_aranges_section_index.?]; |
| 2195 | | const allocated_size = d_sym.allocatedSize(debug_aranges_sect.offset); |
| 2196 | | if (needed_size > allocated_size) { |
| 2197 | | debug_aranges_sect.size = 0; // free the space |
| 2198 | | const new_offset = d_sym.findFreeSpace(needed_size, 16); |
| 2199 | | debug_aranges_sect.addr = dwarf_seg.vmaddr + new_offset - dwarf_seg.fileoff; |
| 2200 | | debug_aranges_sect.offset = @intCast(u32, new_offset); |
| 2201 | | } |
| 2202 | | debug_aranges_sect.size = needed_size; |
| 2203 | | log.debug("__debug_aranges start=0x{x} end=0x{x}", .{ |
| 2204 | | debug_aranges_sect.offset, |
| 2205 | | debug_aranges_sect.offset + needed_size, |
| 2206 | | }); |
| 2207 | | const file_pos = debug_aranges_sect.offset; |
| 2193 | const sect_index = d_sym.debug_aranges_section_index.?; |
| 2194 | try d_sym.growSection(sect_index, needed_size); |
| 2195 | const sect = d_sym.getSection(sect_index); |
| 2196 | const file_pos = sect.offset; |
| 2208 | 2197 | try d_sym.file.pwriteAll(di_buf.items, file_pos); |
| 2209 | 2198 | }, |
| 2210 | 2199 | .wasm => { |