diff options
| author | Mark Wielaard <[email protected]> | 2014-01-26 20:16:48 +0100 |
|---|---|---|
| committer | Mark Wielaard <[email protected]> | 2014-01-30 11:08:32 +0100 |
| commit | 225dddfda38c1cd90e2daa3e72da2a9d01013336 (patch) | |
| tree | 1cf63b5901216ed21a3b4d68bf283cfaee6730f3 /tests/backtrace-subr.sh | |
| parent | a02d90ae12c5386b85332536b516da435150dd88 (diff) | |
backends: Add arm frame_nregs and set_initial_registers_tid.
This allows CFI unwinding for ARM. It relies on having .debug_frame around
which is always the case in our testsuite. All native backtrace tests PASS
on arm if debuginfo (for glibc) is installed on the system. Otherwise the
tests SKIP.
For non-debug unwinding ARM uses EXIDX tables, not .eh_frames, which
would have to be translated to CFI to do unwinding without .debug_frame
available.
Signed-off-by: Mark Wielaard <[email protected]>
Diffstat (limited to 'tests/backtrace-subr.sh')
| -rw-r--r-- | tests/backtrace-subr.sh | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/backtrace-subr.sh b/tests/backtrace-subr.sh index 62b873c7..1df93564 100644 --- a/tests/backtrace-subr.sh +++ b/tests/backtrace-subr.sh @@ -74,6 +74,18 @@ check_unsupported() echo >&2 $testname: arch not supported exit 77 fi + + # ARM is special. It is supported, but it doesn't use .eh_frame by default + # making the native tests fail unless debuginfo (for glibc) is installed + # and we can fall back on .debug_frame for the CFI. + case "`uname -m`" in + arm* ) + if grep 'dwfl_thread_getframes: No DWARF information found' $1; then + echo >&2 $testname: arm needs debuginfo installed for all libraries + exit 77 + fi + ;; + esac } check_core() |
