Prevents unw_step from trying to unwind the stack using the ARM specific
unwind tables in case the DWARF based unwinding was successful.

Signed-off-by: Ken Werner <[email protected]>
---
 src/arm/Gstep.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/arm/Gstep.c b/src/arm/Gstep.c
index 1dae78e..149a65a 100644
--- a/src/arm/Gstep.c
+++ b/src/arm/Gstep.c
@@ -177,8 +177,10 @@ unw_step (unw_cursor_t *cursor)
       ret = dwarf_step (&c->dwarf);
       Debug(1, "dwarf_step()=%d\n", ret);
 
-      if (unlikely (ret == -UNW_ESTOPUNWIND))
-        return ret;
+      if (likely (ret > 0))
+       return 1;
+      else if (unlikely (ret == -UNW_ESTOPUNWIND))
+       return ret;
 
     if (ret < 0 && ret != -UNW_ENOINFO)
       {
-- 
1.7.4.1


_______________________________________________
Libunwind-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to