diff options
| author | mlugg <mlugg@mlugg.co.uk> | 2025-09-22 15:39:16 +0100 |
|---|---|---|
| committer | mlugg <mlugg@mlugg.co.uk> | 2025-09-30 13:44:56 +0100 |
| commit | dbda011ae67982949d59258a6ebd8f36080334fa (patch) | |
| tree | 103b35ea05814ef3de34543e46e31264974b452c /lib/std/debug/SelfInfo/ElfModule.zig | |
| parent | 950a9d2a10d4a2430e1c26eb49f60bfc92adff77 (diff) | |
| download | zig-dbda011ae67982949d59258a6ebd8f36080334fa.tar.gz zig-dbda011ae67982949d59258a6ebd8f36080334fa.zip | |
std.debug.SelfInfo: mark ARM unwinding as unsupported
We need to parse the `.ARM.exidx` section to be able to reliably unwind
the stack on ARM.
Diffstat (limited to 'lib/std/debug/SelfInfo/ElfModule.zig')
| -rw-r--r-- | lib/std/debug/SelfInfo/ElfModule.zig | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/std/debug/SelfInfo/ElfModule.zig b/lib/std/debug/SelfInfo/ElfModule.zig index d18e295848..32d767a44f 100644 --- a/lib/std/debug/SelfInfo/ElfModule.zig +++ b/lib/std/debug/SelfInfo/ElfModule.zig @@ -266,8 +266,10 @@ pub fn unwindFrame(module: *const ElfModule, gpa: Allocator, di: *DebugInfo, con } pub const UnwindContext = std.debug.SelfInfo.DwarfUnwindContext; pub const supports_unwinding: bool = s: { + // Notably, we are yet to support unwinding on ARM. There, unwinding is not done through + // `.eh_frame`, but instead with the `.ARM.exidx` section, which has a different format. const archs: []const std.Target.Cpu.Arch = switch (builtin.target.os.tag) { - .linux => &.{ .x86, .x86_64, .arm, .armeb, .thumb, .thumbeb, .aarch64, .aarch64_be }, + .linux => &.{ .x86, .x86_64, .aarch64, .aarch64_be }, .netbsd => &.{ .x86, .x86_64, .aarch64, .aarch64_be }, .freebsd => &.{ .x86_64, .aarch64, .aarch64_be }, .openbsd => &.{.x86_64}, |
