| ... | @@ -81,6 +81,16 @@ pub fn getModuleName(si: *SelfInfo, gpa: Allocator, address: usize) Error![]cons | ... | @@ -81,6 +81,16 @@ pub fn getModuleName(si: *SelfInfo, gpa: Allocator, address: usize) Error![]cons |
| 81 | } | 81 | } |
| 82 | | 82 | |
| 83 | pub const can_unwind: bool = s: { | 83 | pub const can_unwind: bool = s: { |
| | 84 | // The DWARF code can't deal with ILP32 ABIs yet: https://github.com/ziglang/zig/issues/25447 |
| | 85 | switch (builtin.target.abi) { |
| | 86 | .gnuabin32, |
| | 87 | .muslabin32, |
| | 88 | .gnux32, |
| | 89 | .muslx32, |
| | 90 | => break :s false, |
| | 91 | else => {}, |
| | 92 | } |
| | 93 | |
| 84 | // Notably, we are yet to support unwinding on ARM. There, unwinding is not done through | 94 | // Notably, we are yet to support unwinding on ARM. There, unwinding is not done through |
| 85 | // `.eh_frame`, but instead with the `.ARM.exidx` section, which has a different format. | 95 | // `.eh_frame`, but instead with the `.ARM.exidx` section, which has a different format. |
| 86 | const archs: []const std.Target.Cpu.Arch = switch (builtin.target.os.tag) { | 96 | const archs: []const std.Target.Cpu.Arch = switch (builtin.target.os.tag) { |