diff options
author | steelman <stlman@poczta.fm> | 2018-08-07 17:04:11 +0200 |
---|---|---|
committer | Dave Watson <davejwatson@fb.com> | 2018-08-07 08:04:11 -0700 |
commit | 55ef85c50e4184c98c03e0c52ffb1c39b5201fab (patch) | |
tree | 30e1cce88b466a3ad55a9d6fbd719f6568e6f4bc | |
parent | 9ff78c31b7267eb6558b5a9bf83476a576eff0df (diff) | |
download | libunwind-55ef85c50e4184c98c03e0c52ffb1c39b5201fab.tar.gz |
arm: More verbose debug messages in arm_step() (#85)
Compose debug messages depending on selected unwind methods.
Fix indentation.
-rw-r--r-- | src/arm/Gstep.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/arm/Gstep.c b/src/arm/Gstep.c index 516c9f4d..adec02e0 100644 --- a/src/arm/Gstep.c +++ b/src/arm/Gstep.c @@ -106,17 +106,20 @@ unw_step (unw_cursor_t *cursor) else if (unlikely (ret == -UNW_ESTOPUNWIND)) return ret; - if (ret < 0 && ret != -UNW_ENOINFO) - { - Debug (2, "returning %d\n", ret); - return ret; - } + if (ret < 0 && ret != -UNW_ENOINFO) + { + Debug (2, "returning %d\n", ret); + return ret; + } } #endif /* CONFIG_DEBUG_FRAME */ /* Next, try extbl-based unwinding. */ if (UNW_TRY_METHOD (UNW_ARM_METHOD_EXIDX)) { + Debug (13, "%s(ret=%d), trying extbl\n", + UNW_TRY_METHOD(UNW_ARM_METHOD_DWARF) ? "dwarf_step() failed " : "", + ret); ret = arm_exidx_step (c); if (ret > 0) return 1; @@ -134,7 +137,12 @@ unw_step (unw_cursor_t *cursor) { if (UNW_TRY_METHOD(UNW_ARM_METHOD_FRAME)) { - Debug (13, "dwarf_step() failed (ret=%d), trying frame-chain\n", ret); + Debug (13, "%s%s%s%s(ret=%d), trying frame-chain\n", + UNW_TRY_METHOD(UNW_ARM_METHOD_DWARF) ? "dwarf_step() " : "", + (UNW_TRY_METHOD(UNW_ARM_METHOD_DWARF) && UNW_TRY_METHOD(UNW_ARM_METHOD_EXIDX)) ? "and " : "", + UNW_TRY_METHOD(UNW_ARM_METHOD_EXIDX) ? "arm_exidx_step() " : "", + (UNW_TRY_METHOD(UNW_ARM_METHOD_DWARF) || UNW_TRY_METHOD(UNW_ARM_METHOD_EXIDX)) ? "failed " : "", + ret); ret = UNW_ESUCCESS; /* DWARF unwinding failed, try to follow APCS/optimized APCS frame chain */ unw_word_t instr, i; |