|
From: <sv...@va...> - 2009-11-13 16:55:30
|
Author: sewardj
Date: 2009-11-13 16:55:17 +0000 (Fri, 13 Nov 2009)
New Revision: 1927
Log:
Ensure r11 is up to date at any potential unwind points; apparently
this is needed for correct stack unwinding.
Modified:
branches/ARM/priv/guest_arm_helpers.c
Modified: branches/ARM/priv/guest_arm_helpers.c
===================================================================
--- branches/ARM/priv/guest_arm_helpers.c 2009-11-05 18:22:34 UTC (rev 1926)
+++ branches/ARM/priv/guest_arm_helpers.c 2009-11-13 16:55:17 UTC (rev 1927)
@@ -524,6 +524,17 @@
return True;
}
+ /* We appear to need precise updates of R11 in order to get proper
+ stacktraces from non-optimised code. */
+ Int r11_min = offsetof(VexGuestARMState, guest_R11);
+ Int r11_max = r11_min + 4 - 1;
+
+ if (maxoff < r11_min || minoff > r11_max) {
+ /* no overlap with pc */
+ } else {
+ return True;
+ }
+
return False;
}
|