summaryrefslogtreecommitdiffstats
path: root/backends/x86_64_init.c
diff options
context:
space:
mode:
authorUlf Hermann <[email protected]>2017-02-10 15:19:40 +0100
committerMark Wielaard <[email protected]>2017-05-02 15:25:36 +0200
commita55df2c16721010bf1a9900038c0736bd578c913 (patch)
tree3f103388c06b09b28b47fb67896b965426f2ebb8 /backends/x86_64_init.c
parent5e6615076a8ad5fad5c70b4ea266042ed7c44d55 (diff)
Add frame pointer unwinding as fallback on x86_64
If we don't find any debug information for a given frame, we usually cannot unwind any further. However, the binary in question might have been compiled with frame pointers, in which case we can look up the well known frame pointer locations in the stack snapshot and use them to bridge the frames without debug information. The "unwind" hook is the right place for this as it is so far only used on s390 and called only after trying to unwind with debug information. Signed-off-by: Ulf Hermann <[email protected]>
Diffstat (limited to 'backends/x86_64_init.c')
-rw-r--r--backends/x86_64_init.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/backends/x86_64_init.c b/backends/x86_64_init.c
index cfd0158c..adfa4791 100644
--- a/backends/x86_64_init.c
+++ b/backends/x86_64_init.c
@@ -68,6 +68,7 @@ x86_64_init (Elf *elf __attribute__ ((unused)),
/* gcc/config/ #define DWARF_FRAME_REGISTERS. */
eh->frame_nregs = 17;
HOOK (eh, set_initial_registers_tid);
+ HOOK (eh, unwind);
return MODVERSION;
}