diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-08-23 00:28:15 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-08-23 00:28:45 -0700 |
| commit | 1ce71c86bff351a4ade4321e188a13c9d3cff8b4 (patch) | |
| tree | 59cfb709ae37a1f737d30b074f1360a1f8f3b6c4 /src | |
| parent | c84e5ee87852eafff0cbf986bf02c5221cbcec35 (diff) | |
| download | zig-1ce71c86bff351a4ade4321e188a13c9d3cff8b4.tar.gz zig-1ce71c86bff351a4ade4321e188a13c9d3cff8b4.zip | |
std.debug: implement support for DWARFv5
Diffstat (limited to 'src')
| -rw-r--r-- | src/link/MachO.zig | 4 | ||||
| -rw-r--r-- | src/link/MachO/Object.zig | 15 |
2 files changed, 17 insertions, 2 deletions
diff --git a/src/link/MachO.zig b/src/link/MachO.zig index 8eb29dcfc7..91eaedc734 100644 --- a/src/link/MachO.zig +++ b/src/link/MachO.zig @@ -5862,8 +5862,8 @@ pub fn generateSymbolStabs( else => |e| return e, }; - const tu_name = try compile_unit.die.getAttrString(&debug_info, dwarf.AT.name, compile_unit.is_64); - const tu_comp_dir = try compile_unit.die.getAttrString(&debug_info, dwarf.AT.comp_dir, compile_unit.is_64); + const tu_name = try compile_unit.die.getAttrString(&debug_info, dwarf.AT.name, debug_info.debug_str); + const tu_comp_dir = try compile_unit.die.getAttrString(&debug_info, dwarf.AT.comp_dir, debug_info.debug_str); // Open scope try locals.ensureUnusedCapacity(3); diff --git a/src/link/MachO/Object.zig b/src/link/MachO/Object.zig index 9bcf5243c1..22627975f2 100644 --- a/src/link/MachO/Object.zig +++ b/src/link/MachO/Object.zig @@ -584,6 +584,11 @@ pub fn parseDwarfInfo(self: Object) error{Overflow}!dwarf.DwarfInfo { .debug_line = &[0]u8{}, .debug_line_str = &[0]u8{}, .debug_ranges = &[0]u8{}, + .debug_loclists = &[0]u8{}, + .debug_rnglists = &[0]u8{}, + .debug_addr = &[0]u8{}, + .debug_names = &[0]u8{}, + .debug_frame = &[0]u8{}, }; for (self.sections.items) |sect| { const segname = sect.segName(); @@ -601,6 +606,16 @@ pub fn parseDwarfInfo(self: Object) error{Overflow}!dwarf.DwarfInfo { di.debug_line_str = try self.getSectionContents(sect); } else if (mem.eql(u8, sectname, "__debug_ranges")) { di.debug_ranges = try self.getSectionContents(sect); + } else if (mem.eql(u8, sectname, "__debug_loclists")) { + di.debug_loclists = try self.getSectionContents(sect); + } else if (mem.eql(u8, sectname, "__debug_rnglists")) { + di.debug_rnglists = try self.getSectionContents(sect); + } else if (mem.eql(u8, sectname, "__debug_addr")) { + di.debug_addr = try self.getSectionContents(sect); + } else if (mem.eql(u8, sectname, "__debug_names")) { + di.debug_names = try self.getSectionContents(sect); + } else if (mem.eql(u8, sectname, "__debug_frame")) { + di.debug_frame = try self.getSectionContents(sect); } } } |
