authorgravatar for kcbanner@gmail.comCasey Banner <kcbanner@gmail.com> 2023-07-12 02:02:21-04:00
committergravatar for kcbanner@gmail.comCasey Banner <kcbanner@gmail.com> 2023-07-20 22:58:16-04:00
logb18031335a13d8f356c1764ebae83b5f93be8fa3
tree54f43ff190391a6dcef35d5d8c94e564e8332bde
parent9b25bee42c9c86d47ff21580a0ee58e8e14d3989

dwarf: use cie.return_address_register instead of assuming it's in the IP register


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

lib/std/debug.zig+1-1
......@@ -868,7 +868,7 @@ fn printUnknownSource(debug_info: *DebugInfo, out_stream: anytype, address: usiz
868868pub fn printUnwindError(debug_info: *DebugInfo, out_stream: anytype, address: usize, err: UnwindError, tty_config: io.tty.Config) !void {
869869 const module_name = debug_info.getModuleNameForAddress(address) orelse "???";
870870 try tty_config.setColor(out_stream, .dim);
871 try out_stream.print("Unwind information for `{s}` was not available ({}), trace may be incomplete\n\n", .{ module_name, err });
871 try out_stream.print("Unwind information for `{s}:{}` was not available ({}), trace may be incomplete\n\n", .{ module_name, address, err });
872872 try tty_config.setColor(out_stream, .reset);
873873}
874874
lib/std/dwarf.zig+1-1
......@@ -1758,7 +1758,7 @@ pub const DwarfInfo = struct {
17581758 }
17591759
17601760 if (has_next_ip) {
1761 context.pc = mem.readIntSliceNative(usize, try abi.regBytes(context.thread_context, comptime abi.ipRegNum(), context.reg_context));
1761 context.pc = mem.readIntSliceNative(usize, try abi.regBytes(context.thread_context, cie.return_address_register, context.reg_context));
17621762 } else {
17631763 context.pc = 0;
17641764 }