|
From: <sv...@va...> - 2014-08-30 20:37:56
|
Author: mjw
Date: Sat Aug 30 20:37:40 2014
New Revision: 14398
Log:
Bug 338681 Enable clone backtrace hack for i386-linux in helgrind.
glibc doesn't provide CFI unwind information right after the clone call
(because it would be invalid in the child). Enable the same workaround
for i386-linux that is already used for amd64-linux (subtract 3 from ip).
Modified:
trunk/NEWS
trunk/helgrind/hg_main.c
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Sat Aug 30 20:37:40 2014
@@ -238,6 +238,7 @@
338445 amd64 vbit-test fails with unknown opcodes used by arm64 VEX
338499 --sim-hints parsing broken due to wrong order in tokens
338615 suppress glibc 2.20 optimized strcmp implementation for ARMv7
+338681 Unable to unwind through clone thread created on i386-linux
n-i-bz Fix KVM_CREATE_IRQCHIP ioctl handling
n-i-bz s390x: Fix memory corruption for multithreaded applications
n-i-bz vex arm->IR: allow PC as basereg in some LDRD cases
Modified: trunk/helgrind/hg_main.c
==============================================================================
--- trunk/helgrind/hg_main.c (original)
+++ trunk/helgrind/hg_main.c Sat Aug 30 20:37:40 2014
@@ -1568,7 +1568,7 @@
/* Record where the parent is so we can later refer to this in
error messages.
- On amd64-linux, this entails a nasty glibc-2.5 specific hack.
+ On x86/amd64-linux, this entails a nasty glibc specific hack.
The stack snapshot is taken immediately after the parent has
returned from its sys_clone call. Unfortunately there is no
unwind info for the insn following "syscall" - reading the
@@ -1577,7 +1577,7 @@
is unwind info. Sigh.
*/
{ Word first_ip_delta = 0;
-# if defined(VGP_amd64_linux)
+# if defined(VGP_amd64_linux) || defined(VGP_x86_linux)
first_ip_delta = -3;
# elif defined(VGP_arm64_linux)
first_ip_delta = -1;
|