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...@@ -868,7 +868,7 @@ fn printUnknownSource(debug_info: *DebugInfo, out_stream: anytype, address: usiz
868pub fn printUnwindError(debug_info: *DebugInfo, out_stream: anytype, address: usize, err: UnwindError, tty_config: io.tty.Config) !void {868pub fn printUnwindError(debug_info: *DebugInfo, out_stream: anytype, address: usize, err: UnwindError, tty_config: io.tty.Config) !void {
869 const module_name = debug_info.getModuleNameForAddress(address) orelse "???";869 const module_name = debug_info.getModuleNameForAddress(address) orelse "???";
870 try tty_config.setColor(out_stream, .dim);870 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 });
872 try tty_config.setColor(out_stream, .reset);872 try tty_config.setColor(out_stream, .reset);
873}873}
874874
lib/std/dwarf.zig+1-1
...@@ -1758,7 +1758,7 @@ pub const DwarfInfo = struct {...@@ -1758,7 +1758,7 @@ pub const DwarfInfo = struct {
1758 }1758 }
17591759
1760 if (has_next_ip) {1760 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));
1762 } else {1762 } else {
1763 context.pc = 0;1763 context.pc = 0;
1764 }1764 }