8f8308c974169d7b9909db361e14cd257d47b2a7 |
|
01-Oct-2015 |
Christopher Ferris <cferris@google.com> |
Add a no dwarf version of assembler macros. For the __release and __release_rt functions, the previous macros would add a dwarf cfi entry for the function with no values. This works with libunwind since it always tries the arm unwind information first. This change removes those entries by creating a no dwarf version of the assembler macro. Change-Id: Ib93e42fff5a79b8d770eab0071fdee7d2afa988d
|
5054e1a121fc5aca814815625fe230c4a8abd5a5 |
|
16-Sep-2014 |
Elliott Hughes <enh@google.com> |
Fix 32-bit arm unwinding through signal frames. gdb was already okay; libgcc and libunwind need a little extra help. Bug: 17436734 (cherry picked from commit 148dff3ec6114a03acc722ae43990f1b342abad9) Change-Id: I2cc997017acc57c930284af5264f353656b98c7b
|
7dc2b7b30ddc158a5e7aa6945526eb65d354b96c |
|
11-Sep-2014 |
Elliott Hughes <enh@google.com> |
Fix signal trampolines. * LP32 should use sa_restorer too. gdb expects this, and future (>= 3.15) x86 kernels will apparently stop supporting the case where SA_RESTORER isn't set. * gdb and libunwind care about the exact instruction sequences, so we need to modify the code slightly in a few cases to match what they're looking for. * gdb also cares about the exact function names (for some architectures), so we need to use __restore and __restore_rt rather than __sigreturn and __rt_sigreturn. * It's possible that we don't have a VDSO; dl_iterate_phdr shouldn't assume that getauxval(AT_SYSINFO_EHDR) will return a non-null pointer. This fixes unwinding through a signal handler in gdb for all architectures. It doesn't fix libunwind for arm and arm64. I'll keep investigating that... (cherry picked from commit 36f451a6d93b6807944d99fa23396e039c47e845) Bug: 17436734 Change-Id: Ic1ea1184db6655c5d96180dc07bcc09628e647cb
|
148dff3ec6114a03acc722ae43990f1b342abad9 |
|
16-Sep-2014 |
Elliott Hughes <enh@google.com> |
Fix 32-bit arm unwinding through signal frames. gdb was already okay; libgcc and libunwind need a little extra help. Bug: 17436734 Change-Id: I1f5108f9877373be078554a1ea4938aa4436204e
|
36f451a6d93b6807944d99fa23396e039c47e845 |
|
11-Sep-2014 |
Elliott Hughes <enh@google.com> |
Fix signal trampolines. * LP32 should use sa_restorer too. gdb expects this, and future (>= 3.15) x86 kernels will apparently stop supporting the case where SA_RESTORER isn't set. * gdb and libunwind care about the exact instruction sequences, so we need to modify the code slightly in a few cases to match what they're looking for. * gdb also cares about the exact function names (for some architectures), so we need to use __restore and __restore_rt rather than __sigreturn and __rt_sigreturn. * It's possible that we don't have a VDSO; dl_iterate_phdr shouldn't assume that getauxval(AT_SYSINFO_EHDR) will return a non-null pointer. This fixes unwinding through a signal handler in gdb for all architectures. It doesn't fix libunwind for arm and arm64. I'll keep investigating that... Bug: 17436734 Change-Id: Ic1ea1184db6655c5d96180dc07bcc09628e647cb
|