summaryrefslogtreecommitdiffstats
path: root/backends/Makefile.am
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2017-02-14 13:35:11 +0100
committerUlf Hermann <ulf.hermann@qt.io>2017-05-08 12:52:36 +0000
commit9f6ffdc1b75fd69ecda219c9e9f1b2551f542b26 (patch)
tree17560623af820de8723e268f4c36cb892202888d /backends/Makefile.am
parent5c20064a9aff24b5e1120349e718c48bb7d9a028 (diff)
Add frame pointer unwinding as fallback on arm
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. At the moment this works only for ARM code. THUMB code uses a different mechanism for unwinding. Also, in order to figure out if a function was compiled in ARM or in THUMB mode we need a symbol table which might not be available (e.g. with JIT-compiled code). Furthermore, there doesn't seem to be a fixed convention on the order in which LR and FP are pushed to the stack on a new frame. The code assumes FP is first and LR second. This is what QV4 does. Change-Id: Iac732e11b7434043cd613d95d8cb2ac753b93920 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'backends/Makefile.am')
-rw-r--r--backends/Makefile.am3
1 files changed, 2 insertions, 1 deletions
diff --git a/backends/Makefile.am b/backends/Makefile.am
index 55ff871f..526fcb99 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -80,7 +80,8 @@ libebl_alpha_pic_a_SOURCES = $(alpha_SRCS)
am_libebl_alpha_pic_a_OBJECTS = $(alpha_SRCS:.c=.os)
arm_SRCS = arm_init.c arm_symbol.c arm_regs.c arm_corenote.c \
- arm_auxv.c arm_attrs.c arm_retval.c arm_cfi.c arm_initreg.c
+ arm_auxv.c arm_attrs.c arm_retval.c arm_cfi.c arm_initreg.c \
+ arm_unwind.c
libebl_arm_pic_a_SOURCES = $(arm_SRCS)
am_libebl_arm_pic_a_OBJECTS = $(arm_SRCS:.c=.os)