- handle pthread apps better (bnc#599585)
- prefer CFI for better stack unwinding (bnc#559061) OBS-URL: https://build.opensuse.org/package/show/devel:tools/valgrind?expand=0&rev=12
This commit is contained in:
parent
cc17daf109
commit
c625bbc784
46
prefer-cfi.diff
Normal file
46
prefer-cfi.diff
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
--- coregrind/m_stacktrace.c
|
||||||
|
+++ coregrind/m_stacktrace.c
|
||||||
|
@@ -153,11 +153,18 @@
|
||||||
|
/* Try to derive a new (ip,sp,fp) triple from the current
|
||||||
|
set. */
|
||||||
|
|
||||||
|
- /* On x86, first try the old-fashioned method of following the
|
||||||
|
- %ebp-chain. Code which doesn't use this (that is, compiled
|
||||||
|
- with -fomit-frame-pointer) is not ABI compliant and so
|
||||||
|
- relatively rare. Besides, trying the CFI first almost always
|
||||||
|
- fails, and is expensive. */
|
||||||
|
+ /* That didn't work out, so see if there is any CF info to hand
|
||||||
|
+ which can be used. */
|
||||||
|
+ if ( VG_(use_CF_info)( &ip, &sp, &fp, fp_min, fp_max ) ) {
|
||||||
|
+ if (0 == ip || 1 == ip) break;
|
||||||
|
+ if (sps) sps[i] = sp;
|
||||||
|
+ if (fps) fps[i] = fp;
|
||||||
|
+ ips[i++] = ip - 1; /* -1: refer to calling insn, not the RA */
|
||||||
|
+ if (debug)
|
||||||
|
+ VG_(printf)(" ipsC[%d]=0x%08lx\n", i-1, ips[i-1]);
|
||||||
|
+ ip = ip - 1; /* as per comment at the head of this loop */
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
/* Deal with frames resulting from functions which begin "pushl%
|
||||||
|
ebp ; movl %esp, %ebp" which is the ABI-mandated preamble. */
|
||||||
|
if (fp_min <= fp &&
|
||||||
|
@@ -183,19 +190,6 @@
|
||||||
|
ip = ip - 1; /* as per comment at the head of this loop */
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- /* That didn't work out, so see if there is any CF info to hand
|
||||||
|
- which can be used. */
|
||||||
|
- if ( VG_(use_CF_info)( &ip, &sp, &fp, fp_min, fp_max ) ) {
|
||||||
|
- if (0 == ip || 1 == ip) break;
|
||||||
|
- if (sps) sps[i] = sp;
|
||||||
|
- if (fps) fps[i] = fp;
|
||||||
|
- ips[i++] = ip - 1; /* -1: refer to calling insn, not the RA */
|
||||||
|
- if (debug)
|
||||||
|
- VG_(printf)(" ipsC[%d]=0x%08lx\n", i-1, ips[i-1]);
|
||||||
|
- ip = ip - 1; /* as per comment at the head of this loop */
|
||||||
|
- continue;
|
||||||
|
- }
|
||||||
|
|
||||||
|
/* And, similarly, try for MSVC FPO unwind info. */
|
||||||
|
if ( VG_(use_FPO_info)( &ip, &sp, &fp, fp_min, fp_max ) ) {
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Apr 26 16:14:02 CEST 2010 - dmueller@suse.de
|
||||||
|
|
||||||
|
- handle pthread apps better (bnc#599585)
|
||||||
|
- prefer CFI for better stack unwinding (bnc#559061)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Mar 26 13:56:19 CET 2010 - dmueller@suse.de
|
Fri Mar 26 13:56:19 CET 2010 - dmueller@suse.de
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ Patch1: jit-register-unregister.diff
|
|||||||
Patch2: deprecated.diff
|
Patch2: deprecated.diff
|
||||||
Patch3: glibc-211.diff
|
Patch3: glibc-211.diff
|
||||||
Patch4: bnc558964.diff
|
Patch4: bnc558964.diff
|
||||||
|
Patch5: prefer-cfi.diff
|
||||||
Provides: callgrind = %version
|
Provides: callgrind = %version
|
||||||
Obsoletes: callgrind < %version
|
Obsoletes: callgrind < %version
|
||||||
ExclusiveArch: %ix86 x86_64 ppc ppc64
|
ExclusiveArch: %ix86 x86_64 ppc ppc64
|
||||||
@ -122,6 +123,9 @@ cd ..
|
|||||||
%patch2
|
%patch2
|
||||||
%patch3
|
%patch3
|
||||||
%patch4
|
%patch4
|
||||||
|
%if %suse_version >= 1120
|
||||||
|
%patch5
|
||||||
|
%endif
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export CFLAGS="$RPM_OPT_FLAGS"
|
export CFLAGS="$RPM_OPT_FLAGS"
|
||||||
|
Loading…
Reference in New Issue
Block a user