summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsteelman <stlman@poczta.fm>2018-08-07 17:04:11 +0200
committerDave Watson <davejwatson@fb.com>2018-08-07 08:04:11 -0700
commit55ef85c50e4184c98c03e0c52ffb1c39b5201fab (patch)
tree30e1cce88b466a3ad55a9d6fbd719f6568e6f4bc
parent9ff78c31b7267eb6558b5a9bf83476a576eff0df (diff)
downloadlibunwind-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.c20
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;