- update to 3.6.0 snapshot:
- Valgrind runs much faster when the --smc-check=all option is given. - Cachegrind has a new processing script, cg_diff, which finds the difference between two profiles. It's very useful for evaluating the performance effects of a change in a program. Related to this change, the meaning of cg_annotate's (rarely-used) --threshold option has changed; this is unlikely to affect many people, if you do use it please see the user manual for details. - Callgrind now can do branch prediction simulation, similar to Cachegrind. In addition, it optionally can count the number of executed global bus events. Both can be used for a better approximation of a "Cycle Estimation" as derived event (you need to update the event formula in KCachegrind yourself). - Cachegrind and Callgrind now refer to the LL (last-level) cache rather than the L2 cache. This is to accommodate machines with three levels of caches -- if Cachegrind/Callgrind auto-detects the cache configuration of such a machine it will run the simulation as if the L2 cache isn't present. This means the results are less likely to match the true result for the machine, but Cachegrind/Callgrind's results are already only approximate, and should not be considered authoritative. The results are still useful for giving a general idea about a program's locality. - Massif has a new option, --pages-as-heap, which is disabled by default. When enabled, instead of tracking allocations at the level of heap blocks (as allocated with malloc/new/new[]), it instead tracks memory allocations at the level of memory pages (as mapped by mmap, brk, etc). Each mapped page is treated as its own block. Interpreting the page-level output is harder than the heap-level output, but this option is useful if you want to account for every byte of memory used by a program. - Added new memcheck command-line option --show-possibly-lost. OBS-URL: https://build.opensuse.org/package/show/devel:tools/valgrind?expand=0&rev=17
This commit is contained in:
parent
74442d7fd1
commit
a3155bc151
@ -1,101 +0,0 @@
|
||||
------------------------------------------------------------------------
|
||||
r11215 | sewardj | 2010-07-21 11:49:27 +0200 (Mi, 21. Jul 2010) | 6 Zeilen
|
||||
|
||||
Increase Valgrind's (per-thread) stack size from 64kB to 1MB,
|
||||
so as to avoid demangler crashes on very long names. Fixes
|
||||
#197988 (possibly only temporary; the demangler could overflow
|
||||
the stack again, given extremely long names.)
|
||||
|
||||
|
||||
------------------------------------------------------------------------
|
||||
Index: coregrind/pub_core_aspacemgr.h
|
||||
===================================================================
|
||||
--- coregrind/pub_core_aspacemgr.h (Revision 11214)
|
||||
+++ coregrind/pub_core_aspacemgr.h (Revision 11215)
|
||||
@@ -373,10 +373,10 @@ extern Bool VG_(am_relocate_nooverlap_cl
|
||||
|
||||
#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
|
||||
# define VG_STACK_GUARD_SZB 65536 // 1 or 16 pages
|
||||
-# define VG_STACK_ACTIVE_SZB 131072 // 2 or 32 pages
|
||||
+# define VG_STACK_ACTIVE_SZB (4096 * 256) // 1Mb
|
||||
#else
|
||||
# define VG_STACK_GUARD_SZB 8192 // 2 pages
|
||||
-# define VG_STACK_ACTIVE_SZB 65536 // 16 pages
|
||||
+# define VG_STACK_ACTIVE_SZB (4096 * 256) // 1Mb
|
||||
#endif
|
||||
|
||||
typedef
|
||||
------------------------------------------------------------------------
|
||||
r11343 | sewardj | 2010-09-08 10:30:31 +0200 (Mi, 08. Sep 2010) | 7 Zeilen
|
||||
|
||||
Don't scan the entire Valgrind stack to check for impending
|
||||
stack-overflow situations. This causes an immense number of L2 misses
|
||||
which are completely pointless, and the recent increase of the
|
||||
Valgrind per-thread stack size from 64k to 1M greatly aggravates the
|
||||
situation.
|
||||
|
||||
|
||||
------------------------------------------------------------------------
|
||||
Index: coregrind/m_aspacemgr/aspacemgr-common.c
|
||||
===================================================================
|
||||
--- coregrind/m_aspacemgr/aspacemgr-common.c (Revision 11342)
|
||||
+++ coregrind/m_aspacemgr/aspacemgr-common.c (Revision 11343)
|
||||
@@ -432,15 +432,18 @@ VgStack* VG_(am_alloc_VgStack)( /*OUT*/A
|
||||
/* Figure out how many bytes of the stack's active area have not
|
||||
been used. Used for estimating if we are close to overflowing it. */
|
||||
|
||||
-Int VG_(am_get_VgStack_unused_szB)( VgStack* stack )
|
||||
+SizeT VG_(am_get_VgStack_unused_szB)( VgStack* stack, SizeT limit )
|
||||
{
|
||||
- Int i;
|
||||
+ SizeT i;
|
||||
UInt* p;
|
||||
|
||||
p = (UInt*)&stack->bytes[VG_STACK_GUARD_SZB];
|
||||
- for (i = 0; i < VG_STACK_ACTIVE_SZB/sizeof(UInt); i++)
|
||||
+ for (i = 0; i < VG_STACK_ACTIVE_SZB/sizeof(UInt); i++) {
|
||||
if (p[i] != 0xDEADBEEF)
|
||||
break;
|
||||
+ if (i * sizeof(UInt) >= limit)
|
||||
+ break;
|
||||
+ }
|
||||
|
||||
return i * sizeof(UInt);
|
||||
}
|
||||
Index: coregrind/m_scheduler/scheduler.c
|
||||
===================================================================
|
||||
--- coregrind/m_scheduler/scheduler.c (Revision 11342)
|
||||
+++ coregrind/m_scheduler/scheduler.c (Revision 11343)
|
||||
@@ -1753,9 +1753,11 @@ void VG_(sanity_check_general) ( Bool fo
|
||||
stack
|
||||
= (VgStack*)
|
||||
VG_(get_ThreadState)(tid)->os_state.valgrind_stack_base;
|
||||
+ SizeT limit
|
||||
+ = 4096; // Let's say. Checking more causes lots of L2 misses.
|
||||
remains
|
||||
- = VG_(am_get_VgStack_unused_szB)(stack);
|
||||
- if (remains < VKI_PAGE_SIZE)
|
||||
+ = VG_(am_get_VgStack_unused_szB)(stack, limit);
|
||||
+ if (remains < limit)
|
||||
VG_(message)(Vg_DebugMsg,
|
||||
"WARNING: Thread %d is within %ld bytes "
|
||||
"of running out of stack!\n",
|
||||
Index: coregrind/pub_core_aspacemgr.h
|
||||
===================================================================
|
||||
--- coregrind/pub_core_aspacemgr.h (Revision 11342)
|
||||
+++ coregrind/pub_core_aspacemgr.h (Revision 11343)
|
||||
@@ -396,10 +396,10 @@ typedef
|
||||
|
||||
extern VgStack* VG_(am_alloc_VgStack)( /*OUT*/Addr* initial_sp );
|
||||
|
||||
-/* Figure out how many bytes of the stack's active area have not
|
||||
- been used. Used for estimating if we are close to overflowing it. */
|
||||
-
|
||||
-extern Int VG_(am_get_VgStack_unused_szB)( VgStack* stack );
|
||||
+/* Figure out how many bytes of the stack's active area have not been
|
||||
+ used. Used for estimating if we are close to overflowing it. If
|
||||
+ the free area is larger than 'limit', just return 'limit'. */
|
||||
+extern SizeT VG_(am_get_VgStack_unused_szB)( VgStack* stack, SizeT limit );
|
||||
|
||||
// DDD: this is ugly
|
||||
#if defined(VGO_darwin)
|
@ -1,89 +0,0 @@
|
||||
--- coregrind/m_syswrap/priv_syswrap-linux.h
|
||||
+++ coregrind/m_syswrap/priv_syswrap-linux.h
|
||||
@@ -116,6 +116,7 @@
|
||||
DECL_TEMPLATE(linux, sys_get_mempolicy);
|
||||
|
||||
DECL_TEMPLATE(linux, sys_inotify_init);
|
||||
+DECL_TEMPLATE(linux, sys_inotify_init1);
|
||||
DECL_TEMPLATE(linux, sys_inotify_add_watch);
|
||||
DECL_TEMPLATE(linux, sys_inotify_rm_watch);
|
||||
|
||||
--- coregrind/m_syswrap/syswrap-amd64-linux.c
|
||||
+++ coregrind/m_syswrap/syswrap-amd64-linux.c
|
||||
@@ -1374,8 +1374,8 @@
|
||||
LINX_(__NR_eventfd2, sys_eventfd2), // 290
|
||||
LINXY(__NR_epoll_create1, sys_epoll_create1), // 291
|
||||
// (__NR_dup3, sys_ni_syscall) // 292
|
||||
- LINXY(__NR_pipe2, sys_pipe2) // 293
|
||||
- // (__NR_inotify_init1, sys_ni_syscall) // 294
|
||||
+ LINXY(__NR_pipe2, sys_pipe2), // 293
|
||||
+ LINXY(__NR_inotify_init1, sys_inotify_init1) // 294
|
||||
};
|
||||
|
||||
const UInt ML_(syscall_table_size) =
|
||||
--- coregrind/m_syswrap/syswrap-linux.c
|
||||
+++ coregrind/m_syswrap/syswrap-linux.c
|
||||
@@ -1526,6 +1526,24 @@
|
||||
}
|
||||
}
|
||||
|
||||
+PRE(sys_inotify_init1)
|
||||
+{
|
||||
+ PRINT("sys_inotify_init ( %ld )", ARG1);
|
||||
+ PRE_REG_READ1(long, "inotify_init", int, flag);
|
||||
+}
|
||||
+
|
||||
+POST(sys_inotify_init1)
|
||||
+{
|
||||
+ vg_assert(SUCCESS);
|
||||
+ if (!ML_(fd_allowed)(RES, "inotify_init", tid, True)) {
|
||||
+ VG_(close)(RES);
|
||||
+ SET_STATUS_Failure( VKI_EMFILE );
|
||||
+ } else {
|
||||
+ if (VG_(clo_track_fds))
|
||||
+ ML_(record_fd_open_nameless) (tid, RES);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
PRE(sys_inotify_add_watch)
|
||||
{
|
||||
PRINT( "sys_inotify_add_watch ( %ld, %#lx, %lx )", ARG1,ARG2,ARG3);
|
||||
--- coregrind/m_syswrap/syswrap-ppc32-linux.c
|
||||
+++ coregrind/m_syswrap/syswrap-ppc32-linux.c
|
||||
@@ -1866,8 +1866,8 @@
|
||||
LINX_(__NR_eventfd2, sys_eventfd2), // 314
|
||||
LINXY(__NR_epoll_create1, sys_epoll_create1), // 315
|
||||
// (__NR_dup3, sys_ni_syscall) // 316
|
||||
- LINXY(__NR_pipe2, sys_pipe2) // 317
|
||||
- // (__NR_inotify_init1, sys_ni_syscall) // 318
|
||||
+ LINXY(__NR_pipe2, sys_pipe2), // 317
|
||||
+ LINXY(__NR_inotify_init1, sys_inotify_init1), // 318
|
||||
};
|
||||
|
||||
const UInt ML_(syscall_table_size) =
|
||||
--- coregrind/m_syswrap/syswrap-ppc64-linux.c
|
||||
+++ coregrind/m_syswrap/syswrap-ppc64-linux.c
|
||||
@@ -1506,8 +1506,8 @@
|
||||
LINX_(__NR_eventfd2, sys_eventfd2), // 314
|
||||
LINXY(__NR_epoll_create1, sys_epoll_create1), // 315
|
||||
// (__NR_dup3, sys_ni_syscall) // 316
|
||||
- LINXY(__NR_pipe2, sys_pipe2) // 317
|
||||
- // (__NR_inotify_init1, sys_ni_syscall) // 318
|
||||
+ LINXY(__NR_pipe2, sys_pipe2), // 317
|
||||
+ LINXY(__NR_inotify_init1, sys_inotify_init1), // 318
|
||||
};
|
||||
|
||||
const UInt ML_(syscall_table_size) =
|
||||
--- coregrind/m_syswrap/syswrap-x86-linux.c
|
||||
+++ coregrind/m_syswrap/syswrap-x86-linux.c
|
||||
@@ -2253,8 +2253,8 @@
|
||||
LINXY(__NR_epoll_create1, sys_epoll_create1), // 329
|
||||
|
||||
// (__NR_dup3, sys_ni_syscall) // 330
|
||||
- LINXY(__NR_pipe2, sys_pipe2) // 331
|
||||
- // (__NR_inotify_init1, sys_ni_syscall) // 332
|
||||
+ LINXY(__NR_pipe2, sys_pipe2), // 331
|
||||
+ LINXY(__NR_inotify_init1, sys_inotify_init1), // 332
|
||||
};
|
||||
|
||||
const UInt ML_(syscall_table_size) =
|
@ -1,43 +0,0 @@
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -656,6 +656,17 @@
|
||||
],
|
||||
GLIBC_VERSION="2.10")
|
||||
|
||||
+AC_EGREP_CPP([GLIBC_211], [
|
||||
+#include <features.h>
|
||||
+#ifdef __GNU_LIBRARY__
|
||||
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 11)
|
||||
+ GLIBC_211
|
||||
+ #endif
|
||||
+#endif
|
||||
+],
|
||||
+GLIBC_VERSION="2.11")
|
||||
+
|
||||
+
|
||||
AC_EGREP_CPP([AIX5_LIBC], [
|
||||
#include <standards.h>
|
||||
#if defined(_AIXVERSION_510) || defined(_AIXVERSION_520) || defined(_AIXVERSION_530)
|
||||
@@ -742,6 +753,13 @@
|
||||
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
|
||||
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
|
||||
;;
|
||||
+ 2.11)
|
||||
+ AC_MSG_RESULT(2.11 family)
|
||||
+ AC_DEFINE([GLIBC_2_11], 1, [Define to 1 if you're using glibc 2.11.x])
|
||||
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
|
||||
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
|
||||
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
|
||||
+ ;;
|
||||
aix5)
|
||||
AC_MSG_RESULT(AIX 5.1 or 5.2 or 5.3)
|
||||
AC_DEFINE([AIX5_LIBC], 1, [Define to 1 if you're using AIX 5.1 or 5.2 or 5.3])
|
||||
@@ -755,7 +773,7 @@
|
||||
|
||||
*)
|
||||
AC_MSG_RESULT(unsupported version)
|
||||
- AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.10])
|
||||
+ AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.11])
|
||||
AC_MSG_ERROR([or AIX 5.1 or 5.2 or 5.3 GLIBC_VERSION])
|
||||
AC_MSG_ERROR([or Darwin libc])
|
||||
;;
|
@ -1,22 +1,21 @@
|
||||
Index: include/valgrind.h
|
||||
===================================================================
|
||||
--- include/valgrind.h (revision 10894)
|
||||
+++ include/valgrind.h (working copy)
|
||||
@@ -3648,7 +3648,11 @@
|
||||
VG_USERREQ__STACK_CHANGE = 0x1503,
|
||||
--- include/valgrind.h
|
||||
+++ include/valgrind.h
|
||||
@@ -4306,7 +4306,12 @@ typedef
|
||||
VG_USERREQ__LOAD_PDB_DEBUGINFO = 0x1601,
|
||||
|
||||
/* Wine support */
|
||||
- VG_USERREQ__LOAD_PDB_DEBUGINFO = 0x1601
|
||||
+ VG_USERREQ__LOAD_PDB_DEBUGINFO = 0x1601,
|
||||
/* Querying of debug info. */
|
||||
- VG_USERREQ__MAP_IP_TO_SRCLOC = 0x1701
|
||||
+ VG_USERREQ__MAP_IP_TO_SRCLOC = 0x1701,
|
||||
+
|
||||
+ /* JIT support */
|
||||
+ VG_USERREQ__JIT_REGISTER_MAP = 0x1701,
|
||||
+ VG_USERREQ__JIT_UNREGISTER_MAP = 0x1702
|
||||
+ VG_USERREQ__JIT_REGISTER_MAP = 0x1702,
|
||||
+ VG_USERREQ__JIT_UNREGISTER_MAP = 0x1703
|
||||
+
|
||||
} Vg_ClientRequest;
|
||||
|
||||
#if !defined(__GNUC__)
|
||||
@@ -4009,7 +4013,21 @@
|
||||
fd, ptr, total_size, delta, 0); \
|
||||
@@ -4758,6 +4763,19 @@ VALGRIND_PRINTF_BACKTRACE(const char *fo
|
||||
addr, buf64, 0, 0, 0); \
|
||||
}
|
||||
|
||||
+#define VALGRIND_JIT_REGISTER_MAP(name, start, end) \
|
||||
@ -25,23 +24,19 @@ Index: include/valgrind.h
|
||||
+ VG_USERREQ__JIT_REGISTER_MAP, \
|
||||
+ name, start, end, 0, 0); \
|
||||
+ }
|
||||
|
||||
+
|
||||
+#define VALGRIND_JIT_UNREGISTER_MAP(name, start) \
|
||||
+ {unsigned int _qzz_res; \
|
||||
+ VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
|
||||
+ VG_USERREQ__JIT_REGISTER_MAP, \
|
||||
+ start, 0, 0, 0, 0); \
|
||||
+ }
|
||||
+
|
||||
+
|
||||
|
||||
#undef PLAT_x86_linux
|
||||
#undef PLAT_amd64_linux
|
||||
#undef PLAT_ppc32_linux
|
||||
Index: coregrind/m_debuginfo/debuginfo.c
|
||||
===================================================================
|
||||
--- coregrind/m_debuginfo/debuginfo.c (revision 10894)
|
||||
+++ coregrind/m_debuginfo/debuginfo.c (working copy)
|
||||
@@ -47,6 +47,7 @@
|
||||
--- coregrind/m_debuginfo/debuginfo.c
|
||||
+++ coregrind/m_debuginfo/debuginfo.c
|
||||
@@ -48,6 +48,7 @@
|
||||
#include "pub_core_oset.h"
|
||||
#include "pub_core_stacktrace.h" // VG_(get_StackTrace) XXX: circular dependency
|
||||
#include "pub_core_ume.h"
|
||||
@ -49,7 +44,7 @@ Index: coregrind/m_debuginfo/debuginfo.c
|
||||
|
||||
#include "priv_misc.h" /* dinfo_zalloc/free */
|
||||
#include "priv_d3basics.h" /* ML_(pp_GX) */
|
||||
@@ -1131,6 +1132,132 @@
|
||||
@@ -1201,6 +1202,132 @@ ULong VG_(di_aix5_notify_segchange)(
|
||||
#endif /* defined(VGO_aix5) */
|
||||
|
||||
|
||||
@ -182,7 +177,7 @@ Index: coregrind/m_debuginfo/debuginfo.c
|
||||
/*------------------------------------------------------------*/
|
||||
/*--- ---*/
|
||||
/*--- TOP LEVEL: QUERYING EXISTING DEBUG INFO ---*/
|
||||
@@ -1263,8 +1390,19 @@
|
||||
@@ -1336,8 +1463,19 @@ Bool get_sym_name ( Bool do_cxx_demangli
|
||||
PtrdiffT offset;
|
||||
|
||||
search_all_symtabs ( a, &di, &sno, match_anywhere_in_sym, findText );
|
||||
@ -203,26 +198,24 @@ Index: coregrind/m_debuginfo/debuginfo.c
|
||||
|
||||
VG_(demangle) ( do_cxx_demangling, do_z_demangling,
|
||||
di->symtab[sno].name, buf, nbuf );
|
||||
Index: coregrind/pub_core_debuginfo.h
|
||||
===================================================================
|
||||
--- coregrind/pub_core_debuginfo.h (revision 10894)
|
||||
+++ coregrind/pub_core_debuginfo.h (working copy)
|
||||
@@ -106,6 +106,10 @@
|
||||
--- coregrind/pub_core_debuginfo.h
|
||||
+++ coregrind/pub_core_debuginfo.h
|
||||
@@ -106,6 +106,12 @@ Bool VG_(get_fnname_raw) ( Addr a, Char*
|
||||
extern
|
||||
Bool VG_(get_fnname_no_cxx_demangle) ( Addr a, Char* buf, Int nbuf );
|
||||
|
||||
+/* Register/deregister symbols created by JITs. */
|
||||
+extern void VG_(register_jited_code)( Char* name, Addr start, SizeT len );
|
||||
+extern void VG_(unregister_jited_code)( Addr start );
|
||||
+extern
|
||||
+void VG_(register_jited_code)( Char* name, Addr start, SizeT len );
|
||||
+
|
||||
/* Use DWARF2/3 CFA information to do one step of stack unwinding. */
|
||||
extern Bool VG_(use_CF_info) ( /*MOD*/Addr* ipP,
|
||||
/*MOD*/Addr* spP,
|
||||
Index: coregrind/m_scheduler/scheduler.c
|
||||
===================================================================
|
||||
--- coregrind/m_scheduler/scheduler.c (revision 10894)
|
||||
+++ coregrind/m_scheduler/scheduler.c (working copy)
|
||||
@@ -1478,6 +1478,16 @@
|
||||
+extern
|
||||
+void VG_(unregister_jited_code)( Addr start );
|
||||
|
||||
/* Use DWARF2/3 CFA information to do one step of stack unwinding.
|
||||
D3UnwindRegs holds the current register values, and is
|
||||
--- coregrind/m_scheduler/scheduler.c
|
||||
+++ coregrind/m_scheduler/scheduler.c
|
||||
@@ -1585,6 +1585,16 @@ void do_client_request ( ThreadId tid )
|
||||
goto my_default;
|
||||
}
|
||||
|
||||
|
@ -1,46 +0,0 @@
|
||||
--- 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 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:743a5132bbebc247169aefae6e17657677fdf0961aba1668dd4ee7028d27ba80
|
||||
size 5482423
|
3
valgrind-3.5.90.svn11414.tar.bz2
Normal file
3
valgrind-3.5.90.svn11414.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:457913240401bf61b8b72d5b4d7573d589553dec43a5d5724bc012a95282c736
|
||||
size 5187901
|
@ -1,3 +1,59 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 13 13:42:05 CEST 2010 - dmueller@suse.de
|
||||
|
||||
- update to 3.6.0 snapshot:
|
||||
- Valgrind runs much faster when the --smc-check=all option is given.
|
||||
|
||||
- Cachegrind has a new processing script, cg_diff, which finds the
|
||||
difference between two profiles. It's very useful for evaluating the
|
||||
performance effects of a change in a program.
|
||||
|
||||
Related to this change, the meaning of cg_annotate's (rarely-used)
|
||||
--threshold option has changed; this is unlikely to affect many people, if
|
||||
you do use it please see the user manual for details.
|
||||
|
||||
- Callgrind now can do branch prediction simulation, similar to Cachegrind.
|
||||
In addition, it optionally can count the number of executed global bus events.
|
||||
Both can be used for a better approximation of a "Cycle Estimation" as
|
||||
derived event (you need to update the event formula in KCachegrind yourself).
|
||||
|
||||
- Cachegrind and Callgrind now refer to the LL (last-level) cache rather
|
||||
than the L2 cache. This is to accommodate machines with three levels of
|
||||
caches -- if Cachegrind/Callgrind auto-detects the cache configuration of
|
||||
such a machine it will run the simulation as if the L2 cache isn't
|
||||
present. This means the results are less likely to match the true result
|
||||
for the machine, but Cachegrind/Callgrind's results are already only
|
||||
approximate, and should not be considered authoritative. The results are
|
||||
still useful for giving a general idea about a program's locality.
|
||||
|
||||
- Massif has a new option, --pages-as-heap, which is disabled by default.
|
||||
When enabled, instead of tracking allocations at the level of heap blocks
|
||||
(as allocated with malloc/new/new[]), it instead tracks memory allocations
|
||||
at the level of memory pages (as mapped by mmap, brk, etc). Each mapped
|
||||
page is treated as its own block. Interpreting the page-level output is
|
||||
harder than the heap-level output, but this option is useful if you want
|
||||
to account for every byte of memory used by a program.
|
||||
|
||||
- Added new memcheck command-line option --show-possibly-lost.
|
||||
|
||||
- Support for analyzing programs running under Wine with has been improved.
|
||||
The header files <valgrind/valgrind.h>, <valgrind/memcheck.h> and
|
||||
<valgrind/drd.h> can now be used in Windows-programs compiled with MinGW
|
||||
or one of the Microsoft Visual Studio compilers.
|
||||
|
||||
- DRD does now have two new command-line options: --free-is-write and
|
||||
--trace-alloc. The former allows to detect reading from already freed
|
||||
memory, and the latter allows to trace all memory allocations and
|
||||
deallocations.
|
||||
|
||||
- Several new annotations have been added in DRD: custom barrier
|
||||
implementations can now be annotated and benign races on static variables
|
||||
too.
|
||||
|
||||
- The happens before / happens after annotations in DRD have been made more
|
||||
powerful such that these can now also be used to annotate e.g. a smart
|
||||
pointer implementation.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 23 13:16:16 CEST 2010 - dmueller@suse.de
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
|
||||
Name: valgrind
|
||||
BuildRequires: gcc-c++ glibc-devel-32bit xorg-x11-devel
|
||||
BuildRequires: gcc-c++ glibc-devel-32bit xorg-x11-devel docbook-xsl-stylesheets docbook_4 libxslt
|
||||
%ifarch x86_64 ppc64
|
||||
BuildRequires: gcc-32bit
|
||||
%endif
|
||||
@ -27,17 +27,13 @@ License: GPLv2
|
||||
Group: Development/Tools/Debuggers
|
||||
Summary: Valgrind Suite of Tools for Debugging and Profiling
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Version: 3.5.0
|
||||
Release: 12
|
||||
Version: 3.5.90.svn11414
|
||||
Release: 1
|
||||
Source0: %{name}-%{version}.tar.bz2
|
||||
# svn di svn://svn.valgrind.org/valgrind/tags/VALGRIND_3_5_0 svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_5_BRANCH > 3_5_BRANCH.diff
|
||||
# svn di svn://svn.valgrind.org/vex/tags/VEX_3_5_0 svn://svn.valgrind.org/vex/branches/VEX_3_5_BRANCH > VEX_3_5_BRANCH.diff
|
||||
Patch1: jit-register-unregister.diff
|
||||
Patch2: deprecated.diff
|
||||
Patch3: glibc-211.diff
|
||||
Patch4: bnc558964.diff
|
||||
Patch5: prefer-cfi.diff
|
||||
Patch6: bigger-default-stack.diff
|
||||
Provides: callgrind = %version
|
||||
Obsoletes: callgrind < %version
|
||||
ExclusiveArch: %ix86 x86_64 ppc ppc64
|
||||
@ -121,13 +117,8 @@ Authors:
|
||||
cd VEX
|
||||
cd ..
|
||||
%patch1
|
||||
%patch2
|
||||
%patch3
|
||||
%patch4
|
||||
%if %suse_version >= 1120
|
||||
%patch5
|
||||
%endif
|
||||
%patch6
|
||||
# probably no longer needed, kept around already for a long time (2010-10-12)
|
||||
#%patch2
|
||||
|
||||
%build
|
||||
export CFLAGS="$RPM_OPT_FLAGS"
|
||||
@ -136,6 +127,10 @@ autoreconf -fi
|
||||
export GDB=/usr/bin/gdb
|
||||
%configure
|
||||
make %{?jobs:-j%jobs}
|
||||
pushd docs
|
||||
#make all-docs
|
||||
make FAQ.txt man-pages html-docs
|
||||
popd
|
||||
|
||||
%install
|
||||
make DESTDIR=$RPM_BUILD_ROOT install
|
||||
@ -147,7 +142,7 @@ mv $RPM_BUILD_ROOT/usr/share/doc/valgrind $RPM_BUILD_ROOT/usr/share/doc/packages
|
||||
%doc README* NEWS AUTHORS COPYING COPYING.DOCS
|
||||
/usr/bin/*
|
||||
%_libdir/valgrind
|
||||
%doc %_mandir/*/*
|
||||
%doc %_mandir/*/*
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
|
Loading…
Reference in New Issue
Block a user