---
src/x86_64/Gstep.c |    8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/src/x86_64/Gstep.c b/src/x86_64/Gstep.c
index d691aa6..85e3989 100644
--- a/src/x86_64/Gstep.c
+++ b/src/x86_64/Gstep.c
@@ -116,6 +116,11 @@ unw_step (unw_cursor_t *cursor)
           c->dwarf.loc[RIP] = DWARF_LOC (c->dwarf.cfa, 0);
           c->dwarf.cfa += 8;
        }
+      else if (DWARF_IS_NULL_LOC (c->dwarf.loc[RBP]))
+        {
+         for (i = 0; i < DWARF_NUM_PRESERVED_REGS; ++i)
+           c->dwarf.loc[i] = DWARF_NULL_LOC;
+       }
       else
        {
          unw_word_t rbp;
@@ -123,7 +128,8 @@ unw_step (unw_cursor_t *cursor)
          ret = dwarf_get (&c->dwarf, c->dwarf.loc[RBP], &rbp);
          if (ret < 0)
            {
-             Debug (2, "returning %d\n", ret);
+             Debug (2, "returning %d [RBP=0x%lx]\n", ret,
+                    DWARF_GET_LOC (c->dwarf.loc[RBP]));
              return ret;
            }
 
_______________________________________________
Libunwind-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to