diff options
author | Ryan Savitski <rsavitski@google.com> | 2019-08-27 21:54:18 +0100 |
---|---|---|
committer | Ryan Savitski <rsavitski@google.com> | 2019-08-27 22:50:21 +0100 |
commit | 9db3486a12eb62676c733d233e918d477ea3b5cc (patch) | |
tree | f0fddf3df218f007cc602ef195a60a74b7d72462 /libc/malloc_hooks/tests/malloc_hooks_tests.cpp | |
parent | eab2046e35222c99d365ee09dc8388e740da2ad7 (diff) |
Add arm32 case to BIONIC_STOP_UNWIND to correctly stop unwinders
The arm32 case was omitted when the macro was originally added due to
clang issues (b/15469122#comment5).
Testing at ToT master, ".cfi_undefined r14" appears to compile & work as
expected. This is the same directive as used by the linker's begin.S.
Test: ran a 32 bit binary on crosshatch-userdebug, verified that
"debuggerd -b" (which uses libunwindstack) stops at __libc_init as in
the arm64 case (before it would unwind past _start_main, with an
erroneous frame at the bottom).
Test: ran unwind_reg_info tool on /system/lib/libc.so with an address
within __libc_init, confirmed that the "debug_frame" section includes
"r14 = undefine" (arm exidx still contains "r14 = [cfa - 4]", but that
looked correct to cferris@).
Bug: 140008396
Change-Id: I6eb0bc6cf516fddee2df40492350678a0547fee3
Diffstat (limited to 'libc/malloc_hooks/tests/malloc_hooks_tests.cpp')
0 files changed, 0 insertions, 0 deletions