| author | |
| committer | |
| log | 5c6885be53b0e7d791f13dee32cb945b3f8f0d7d |
| tree | e14e9928d79e8f76a13a1e066a0af2b7428ef354 |
| parent | 156f54d8f0165fb772d538382a6c3248e2ee30be |
This fix reveals another bug--we need to display the inline site syms in
the reverse of the encoded order. The parent/child relationships are
actually encoded on the inline sites, but it's likely a bit fragile to
try to trace those, and also more complex. As long as there aren't
multiple matches this is fine, and if there are, tracing the parent/child
chain won't work anyway.1 files changed, 2 insertions(+), 1 deletions(-)
lib/std/debug/SelfInfo/Windows.zig+2-1| ... | ... | @@ -62,7 +62,8 @@ pub const SymbolIterator = struct { |
| 62 | 62 | const pdb = if (di.pdb) |*pdb| pdb else unreachable; |
| 63 | 63 | |
| 64 | 64 | // Get the next inlinee if it exists |
| 65 | if (info.inlinees.next(info.module)) |site| { | |
| 65 | while (info.inlinees.next(info.module)) |site| { | |
| 66 | const parent: *align(1) const std.pdb.RecordPrefix = @ptrCast(&info.module.symbols[site.parent - @sizeOf(u16) * 2]); | |
| 66 | 67 | if (pdb.getInlineeInfo(info.module, site.inlinee) catch null) |loc| { |
| 67 | 68 | if (info.proc_sym) |proc_sym| { |
| 68 | 69 | const offset_in_func = info.addr - proc_sym.code_offset; |