diff options
author | Ulf Hermann <[email protected]> | 2017-02-10 15:19:40 +0100 |
---|---|---|
committer | Mark Wielaard <[email protected]> | 2017-05-02 15:25:36 +0200 |
commit | a55df2c16721010bf1a9900038c0736bd578c913 (patch) | |
tree | 3f103388c06b09b28b47fb67896b965426f2ebb8 /backends/x86_64_init.c | |
parent | 5e6615076a8ad5fad5c70b4ea266042ed7c44d55 (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.c | 1 |
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; } |