It seems that this change:
index e8eaeac..9d405e7 100644
--- a/src/dwarf/Gparser.c
+++ b/src/dwarf/Gparser.c
@@ -289,8 +289,10 @@ run_cfi_program (struct dwarf_cursor *c,
dwarf_state_record_t *sr,
ret = -UNW_EINVAL;
break;
}
- memcpy (&sr->rs_current, &(*rs_stack)->state, sizeof
(sr->rs_current));
- pop_rstate_stack(rs_stack);
+ if (*ip < end_ip) {
+ memcpy (&sr->rs_current, &(*rs_stack)->state, sizeof
(sr->rs_current));
+ pop_rstate_stack(rs_stack);
+ }
Debug (15, "CFA_restore_state\n");
break;
broke unw_apply_reg_state, because updating libunwind to include that
change broke our software.
So I'm highly motivated to understand what this fixed, so that I can
fix unw_apply_reg_state without breaking something.
Doug Moore
_______________________________________________
Libunwind-devel mailing list
Libunwind-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/libunwind-devel