| ... | @@ -360,7 +360,7 @@ pub fn writeCurrentStackTraceWindows( | ... | @@ -360,7 +360,7 @@ pub fn writeCurrentStackTraceWindows( |
| 360 | return; | 360 | return; |
| 361 | } else 0; | 361 | } else 0; |
| 362 | for (addrs[start_i..]) |addr| { | 362 | for (addrs[start_i..]) |addr| { |
| 363 | try printSourceAtAddress(debug_info, out_stream, addr, tty_config); | 363 | try printSourceAtAddress(debug_info, out_stream, addr - 1, tty_config); |
| 364 | } | 364 | } |
| 365 | } | 365 | } |
| 366 | | 366 | |
| ... | @@ -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; |