|
From: <sv...@va...> - 2009-11-12 13:19:57
|
Author: tom
Date: 2009-11-12 13:19:41 +0000 (Thu, 12 Nov 2009)
New Revision: 10938
Log:
Fix stack unwinding on PPC to store the correct frame pointer for
frames other than the first one found.
This is taken from Jakub Jelinek's second patch on bug #210479.
Modified:
trunk/coregrind/m_stacktrace.c
Modified: trunk/coregrind/m_stacktrace.c
===================================================================
--- trunk/coregrind/m_stacktrace.c 2009-11-11 19:22:05 UTC (rev 10937)
+++ trunk/coregrind/m_stacktrace.c 2009-11-12 13:19:41 UTC (rev 10938)
@@ -430,9 +430,9 @@
# endif
if (0 == ip || 1 == ip) break;
- fp = (((UWord*)fp)[0]);
if (sps) sps[i] = fp; /* NB. not sp */
if (fps) fps[i] = fp;
+ fp = (((UWord*)fp)[0]);
ips[i++] = ip - 1; /* -1: refer to calling insn, not the RA */
if (debug)
VG_(printf)(" ipsF[%d]=%#08lx\n", i-1, ips[i-1]);
|