authorgravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-01-27 13:10:35+01:00
committergravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-01-27 13:10:35+01:00
logf8e015c85f2eaf4d35523d362a7be2b9614a162b
tree73b40fdcd7fdc5e62d1a69f36b23a03aad2dcffa
parent518dbd30cb985cd9a5d89a8201becf1bd398330e

Handle S_GPROC32 symbols in PDB files

Fixes some incomplete stack traces on Windows.

1 files changed, 1 insertions(+), 1 deletions(-)

lib/std/debug.zig+1-1
...@@ -412,7 +412,7 @@ fn printSourceAtAddressWindows(...@@ -412,7 +412,7 @@ fn printSourceAtAddressWindows(
412 if (prefix.RecordLen < 2)412 if (prefix.RecordLen < 2)
413 return error.InvalidDebugInfo;413 return error.InvalidDebugInfo;
414 switch (prefix.RecordKind) {414 switch (prefix.RecordKind) {
415 pdb.SymbolKind.S_LPROC32 => {415 .S_LPROC32, .S_GPROC32 => {
416 const proc_sym = @ptrCast(*pdb.ProcSym, &mod.symbols[symbol_i + @sizeOf(pdb.RecordPrefix)]);416 const proc_sym = @ptrCast(*pdb.ProcSym, &mod.symbols[symbol_i + @sizeOf(pdb.RecordPrefix)]);
417 const vaddr_start = coff_section.header.virtual_address + proc_sym.CodeOffset;417 const vaddr_start = coff_section.header.virtual_address + proc_sym.CodeOffset;
418 const vaddr_end = vaddr_start + proc_sym.CodeSize;418 const vaddr_end = vaddr_start + proc_sym.CodeSize;