aboutsummaryrefslogtreecommitdiff
path: root/src/link/Dwarf.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2023-04-09 13:25:40 +0200
committerJakub Konka <kubkon@jakubkonka.com>2023-04-13 11:47:50 +0200
commit5154ece8b9fd64f276fb6cb6f88fdfda1fc0f935 (patch)
tree28ef7c84fb840760fdc490ca7e0593b04dfab6df /src/link/Dwarf.zig
parente72c41a32af41c15f4f73b46c902c01ed838462f (diff)
downloadzig-5154ece8b9fd64f276fb6cb6f88fdfda1fc0f935.tar.gz
zig-5154ece8b9fd64f276fb6cb6f88fdfda1fc0f935.zip
macho: fix incorrect DWARF subprogram generation
Diffstat (limited to 'src/link/Dwarf.zig')
-rw-r--r--src/link/Dwarf.zig15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/link/Dwarf.zig b/src/link/Dwarf.zig
index 3fb6de7b73..0f2dfbda0e 100644
--- a/src/link/Dwarf.zig
+++ b/src/link/Dwarf.zig
@@ -150,7 +150,7 @@ pub const DeclState = struct {
.type = ty,
.offset = undefined,
});
- log.debug("%{d}: {}", .{ sym_index, ty.fmtDebug() });
+ log.debug("%{d}: {}", .{ sym_index, ty.fmt(self.mod) });
try self.abbrev_resolver.putNoClobberContext(self.gpa, ty, sym_index, .{
.mod = self.mod,
});
@@ -570,7 +570,7 @@ pub const DeclState = struct {
try dbg_info_buffer.append(0);
},
else => {
- log.debug("TODO implement .debug_info for type '{}'", .{ty.fmtDebug()});
+ log.debug("TODO implement .debug_info for type '{}'", .{ty.fmt(self.mod)});
try dbg_info_buffer.append(@enumToInt(AbbrevKind.pad1));
},
}
@@ -1055,6 +1055,10 @@ pub fn commitDeclState(
},
}
{
+ log.debug("relocating subprogram high PC value: {x} => {x}", .{
+ self.getRelocDbgInfoSubprogramHighPC(),
+ sym_size,
+ });
const ptr = dbg_info_buffer.items[self.getRelocDbgInfoSubprogramHighPC()..][0..4];
mem.writeInt(u32, ptr, @intCast(u32, sym_size), target_endian);
}
@@ -1263,7 +1267,12 @@ pub fn commitDeclState(
} else {
const atom = self.getAtom(.di_atom, symbol.atom_index);
const value = atom.off + symbol.offset + reloc.addend;
- log.debug("{x}: [() => {x}] (%{d}, '{}')", .{ reloc.offset, value, target, ty.fmtDebug() });
+ log.debug("{x}: [() => {x}] (%{d}, '{}')", .{
+ reloc.offset,
+ value,
+ target,
+ ty.fmt(module),
+ });
mem.writeInt(
u32,
dbg_info_buffer.items[reloc.offset..][0..@sizeOf(u32)],