ed39800a83baf5bffbe391f3974eb2af0f415f80 |
|
21-Jun-2017 |
Elliott Hughes <enh@google.com> |
Upgrade to valgrind 3.13.0 (15 June 2017). Release 3.13.0 (15 June 2017) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3.13.0 is a feature release with many improvements and the usual collection of bug fixes. This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux, PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux, MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android, X86/Solaris, AMD64/Solaris and AMD64/MacOSX 10.12. * ==================== CORE CHANGES =================== * The translation cache size has been increased to keep up with the demands of large applications. The maximum number of sectors has increased from 24 to 48. The default number of sectors has increased from 16 to 32 on all targets except Android, where the increase is from 6 to 12. * The amount of memory that Valgrind can use has been increased from 64GB to 128GB. In particular this means your application can allocate up to about 60GB when running on Memcheck. * Valgrind's default load address has been changed from 0x3800'0000 to 0x5800'0000, so as to make it possible to load larger executables. This should make it possible to load executables of size at least 1200MB. * A massive spaceleak caused by reading compressed debuginfo files has been fixed. Valgrind should now be entirely usable with gcc-7.0 "-gz" created debuginfo. * The C++ demangler has been updated. * Support for demangling Rust symbols has been added. * A new representation of stack traces, the "XTree", has been added. An XTree is a tree of stacktraces with data associated with the stacktraces. This is used by various tools (Memcheck, Helgrind, Massif) to report on the heap consumption of your program. Reporting is controlled by the new options --xtree-memory=none|allocs|full and --xtree-memory-file=<file>. A report can also be produced on demand using the gdbserver monitor command 'xtmemory [<filename>]>'. The XTree can be output in 2 formats: 'callgrind format' and 'massif format. The existing visualisers for these formats (e.g. callgrind_annotate, KCachegrind, ms_print) can be used to visualise and analyse these reports. Memcheck can also produce XTree leak reports using the Callgrind file format. For more details, see the user manual. * ================== PLATFORM CHANGES ================= * ppc64: support for ISA 3.0B and various fixes for existing 3.0 support * amd64: fixes for JIT failure problems on long AVX2 code blocks * amd64 and x86: support for CET prefixes has been added * arm32: a few missing ARMv8 instructions have been implemented * arm64, mips64, mips32: an alternative implementation of Load-Linked and Store-Conditional instructions has been added. This is to deal with processor implementations that implement the LL/SC specifications strictly and as a result cause Valgrind to hang in certain situations. The alternative implementation is automatically enabled at startup, as required. You can use the option --sim-hints=fallback-llsc to force-enable it if you want. * Support for OSX 10.12 has been improved. * On Linux, clone handling has been improved to honour CLONE_VFORK that involves a child stack. Note however that CLONE_VFORK | CLONE_VM is handled like CLONE_VFORK (by removing CLONE_VM), so applications that depend on CLONE_VM exact semantics will (still) not work. * The TileGX/Linux port has been removed because it appears to be both unused and unsupported. * ==================== TOOL CHANGES ==================== * Memcheck: - Memcheck should give fewer false positives when running optimised Clang/LLVM generated code. - Support for --xtree-memory and 'xtmemory [<filename>]>'. - New command line options --xtree-leak=no|yes and --xtree-leak-file=<file> to produce the end of execution leak report in a xtree callgrind format file. - New option 'xtleak' in the memcheck leak_check monitor command, to produce the leak report in an xtree file. * Massif: - Support for --xtree-memory and 'xtmemory [<filename>]>'. - For some workloads (typically, for big applications), Massif memory consumption and CPU consumption has decreased significantly. * Helgrind: - Support for --xtree-memory and 'xtmemory [<filename>]>'. - addition of client request VALGRIND_HG_GNAT_DEPENDENT_MASTER_JOIN, useful for Ada gnat compiled applications. * ==================== OTHER CHANGES ==================== * For Valgrind developers: in an outer/inner setup, the outer Valgrind will append the inner guest stacktrace to the inner host stacktrace. This helps to investigate the errors reported by the outer, when they are caused by the inner guest program (such as an inner regtest). See README_DEVELOPERS for more info. * To allow fast detection of callgrind files by desktop environments and file managers, the format was extended to have an optional first line that uniquely identifies the format ("# callgrind format"). Callgrind creates this line now, as does the new xtree functionality. * File name template arguments (such as --log-file, --xtree-memory-file, ...) have a new %n format letter that is replaced by a sequence number. * "--version -v" now shows the SVN revision numbers from which Valgrind was built. * ==================== FIXED BUGS ==================== The following bugs have been fixed or resolved. Note that "n-i-bz" stands for "not in bugzilla" -- that is, a bug that was reported to us but never got a bugzilla entry. We encourage you to file bugs in bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather than mailing the developers (or mailing lists) directly -- bugs that are not entered into bugzilla tend to get forgotten about or ignored. To see details of a given bug, visit https://bugs.kde.org/show_bug.cgi?id=XXXXXX where XXXXXX is the bug number as listed below. 162848 --log-file output isn't split when a program forks 340777 Illegal instruction on mips (ar71xx) 341481 MIPS64: Iop_CmpNE32 triggers false warning on MIPS64 platforms 342040 Valgrind mishandles clone with CLONE_VFORK | CLONE_VM that clones to a different stack. 344139 x86 stack-seg overrides, needed by the Wine people 344524 store conditional of guest applications always fail - observed on Octeon3(MIPS) 348616 Wine/valgrind: noted but unhandled ioctl 0x5390 [..] (DVD_READ_STRUCT) 352395 Please provide SVN revision info in --version -v 352767 Wine/valgrind: noted but unhandled ioctl 0x5307 [..] (CDROMSTOP) 356374 Assertion 'DRD_(g_threadinfo)[tid].pt_threadid != INVALID_POSIX_THREADID' failed 358213 helgrind/drd bar_bad testcase hangs or crashes with new glibc pthread barrier implementation 358697 valgrind.h: Some code remains even when defining NVALGRIND 359202 Add musl libc configure/compile 360415 amd64 instructions ADCX and ADOX are not implemented in VEX == 372828 (vex amd64->IR: 0x66 0xF 0x3A 0x62 0x4A 0x10) 360429 unhandled ioctl 0x530d with no size/direction hints (CDROMREADMODE1) 362223 assertion failed when .valgrindrc is a directory instead of a file 367543 bt/btc/btr/bts x86/x86_64 instructions are poorly-handled wrt flags 367942 Segfault vgPlain_do_sys_sigaction (m_signals.c:1138) 368507 can't malloc chunks larger than about 34GB 368529 Android arm target link error, missing atexit and pthread_atfork 368863 WARNING: unhandled arm64-linux syscall: 100 (get_robust_list) 368865 WARNING: unhandled arm64-linux syscall: 272 (kcmp) 368868 disInstr(arm64): unhandled instruction 0xD53BE000 = cntfrq_el0 (ARMv8) 368917 WARNING: unhandled arm64-linux syscall: 218 (request_key) 368918 WARNING: unhandled arm64-linux syscall: 127 (sched_rr_get_interval) 368922 WARNING: unhandled arm64-linux syscall: 161 (sethostname) 368924 WARNING: unhandled arm64-linux syscall: 84 (sync_file_range) 368925 WARNING: unhandled arm64-linux syscall: 130 (tkill) 368926 WARNING: unhandled arm64-linux syscall: 97 (unshare) 369459 valgrind on arm64 violates the ARMv8 spec (ldxr/stxr) 370028 Reduce the number of compiler warnings on MIPS platforms 370635 arm64 missing syscall getcpu 371225 Fix order of timer_{gettime,getoverrun,settime} syscalls on arm64 371227 Clean AArch64 syscall table 371412 Rename wrap_sys_shmat to sys_shmat like other wrappers 371471 Valgrind complains about non legit memory leaks on placement new (C++) 371491 handleAddrOverrides() is [incorrect] when ASO prefix is used 371503 disInstr(arm64): unhandled instruction 0xF89F0000 371869 support '%' in symbol Z-encoding 371916 execution tree xtree concept 372120 c++ demangler demangles symbols which are not c++ 372185 Support of valgrind on ARMv8 with 32 bit executable 372188 vex amd64->IR: 0x66 0xF 0x3A 0x62 0x4A 0x10 0x10 0x48 (PCMPxSTRx $0x10) 372195 Power PC, xxsel instruction is not always recognized. 372504 Hanging on exit_group 372600 process loops forever when fatal signals are arriving quickly 372794 LibVEX (arm32 front end): 'Assertion szBlg2 <= 3' failed 373046 Stacks registered by core are never deregistered 373069 memcheck/tests/leak_cpp_interior fails with GCC 5.1+ 373086 Implement additional Xen hypercalls 373192 Calling posix_spawn in glibc 2.24 completely broken 373488 Support for fanotify API on ARM64 architecture == 368864 WARNING: unhandled arm64-linux syscall: 262 (fanotify_init) 373555 Rename BBPTR to GSPTR as it denotes guest state pointer only 373938 const IRExpr arguments for matchIRExpr() 374719 some spelling fixes 374963 increase valgrind's load address to prevent mmap failure 375514 valgrind_get_tls_addr() does not work in case of static TLS 375772 +1 error in get_elf_symbol_info() when computing value of 'hi' address for ML_(find_rx_mapping)() 375806 Test helgrind/tests/tc22_exit_w_lock fails with glibc 2.24 375839 Temporary storage exhausted, with long sequence of vfmadd231ps insns == 377159 "vex: the `impossible' happened" still present == 375150 Assertion 'tres.status == VexTransOK' failed == 378068 valgrind crashes on AVX2 function in FFmpeg 376142 Segfaults on MIPS Cavium Octeon boards 376279 disInstr(arm64): unhandled instruction 0xD50320FF 376455 Solaris: unhandled syscall lgrpsys(180) 376518 Solaris: unhandled fast trap getlgrp(6) 376611 ppc64 and arm64 don't know about prlimit64 syscall 376729 PPC64, remove R2 from the clobber list == 371668 376956 syswrap of SNDDRV and DRM_IOCTL_VERSION causing some addresses to be wrongly marked as addressable 377066 Some Valgrind unit tests fail to compile on Ubuntu 16.10 with PIE enabled by default 377376 memcheck/tests/linux/getregset fails with glibc2.24 377427 PPC64, lxv instruction failing on odd destination register 377478 PPC64: ISA 3.0 setup fixes 377698 Missing memory check for futex() uaddr arg for FUTEX_WAKE and FUTEX_WAKE_BITSET, check only 4 args for FUTEX_WAKE_BITSET, and 2 args for FUTEX_TRYLOCK_PI 377717 Fix massive space leak when reading compressed debuginfo sections 377891 Update Xen 4.6 domctl wrappers 377930 fcntl syscall wrapper is missing flock structure check 378524 libvexmultiarch_test regression on s390x and ppc64 378535 Valgrind reports INTERNAL ERROR in execve syscall wrapper 378673 Update libiberty demangler 378931 Add ISA 3.0B additional isnstructions, add OV32, CA32 setting support 379039 syscall wrapper for prctl(PR_SET_NAME) must not check more than 16 bytes 379094 Valgrind reports INTERNAL ERROR in rt_sigsuspend syscall wrapper 379371 UNKNOWN task message [id 3444, to mach_task_self(), reply 0x603] (task_register_dyld_image_infos) 379372 UNKNOWN task message [id 3447, to mach_task_self(), reply 0x603] (task_register_dyld_shared_cache_image_info) 379390 unhandled syscall: mach:70 (host_create_mach_voucher_trap) 379473 MIPS: add support for rdhwr cycle counter register 379504 remove TileGX/Linux port 379525 Support more x86 nop opcodes 379838 disAMode(x86): not an addr! 379703 PC ISA 3.0 fixes: stxvx, stxv, xscmpexpdp instructions 379890 arm: unhandled instruction: 0xEBAD 0x1B05 (sub.w fp, sp, r5, lsl #4) 379895 clock_gettime does not execute POST syscall wrapper 379925 PPC64, mtffs does not set the FPCC and C bits in the FPSCR correctly 379966 WARNING: unhandled amd64-linux syscall: 313 (finit_module) 380200 xtree generated callgrind files refer to files without directory name 380202 Assertion failure for cache line size (cls == 64) on aarch64. 380397 s390x: __GI_strcspn() replacement needed n-i-bz Fix pub_tool_basics.h build issue with g++ 4.4.7. (3.13.0.RC1: 2 June 2017, vex r3386, valgrind r16434) (3.13.0.RC2: 9 June 2017, vex r3389, valgrind r16443) (3.13.0: 14 June 2017, vex r3396, valgrind r16446) Bug: N/A Test: manual Change-Id: Id4498a49f462c3689cbcb35c15f96a8c7e3cea17
/external/valgrind/callgrind/global.h
|
b3a1e4bffbdbbf38304f216af405009868f43628 |
|
21-Aug-2015 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates, to include 2015. No functional change. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15577 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
29582f8170e2de848466a4abf65608598b1912a3 |
|
14-Dec-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove callgrind's percentify and commify functions as well as the assorted buffers that go with them. Part of fixing BZ #337869. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14810 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
cc9480fc9655148bbb120684c2d100eee7748105 |
|
11-Nov-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge r14340,14346-14348,14352,14354-14355 from the BUF_REMOVAL branch to trunk. Convert callgrind to use VG_(fprintf). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14713 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
10ef725f1e8e9f1615c483555348eb75b69c4713 |
|
27-Oct-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge revisions 14255, 14293, and 14294 from the BUF_REMOVAL branch to trunk. The functions VG_(get_filename) and VG_(get_filename_lineno) now return a pointer to filename and directory name instead of copying them into buffers passed in from the caller. The returned strings are persistent as long as the DebugInfo to which they belong is not discarded. The caller therefore needs to stash them away as needed. Function VG_(strncpy_safely) has been removed as it is no longer needed. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14668 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
536e3d733b5fa756266321e14d67b6df742af8de |
|
26-Oct-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge r14289 from the BUF_REMOVAL branch to trunk. Change CLG_(get_debug_info) to not build up an absolute pathname in its 'file' parameter. Instead give it an additional parameter to hold the directory name. Callers can then build up the absolute pathname if needed. This change will come in handy soonish when VG_(get_filename_lineno) will be changed and those buffers will disappear. The change has a bit of ripple to get_fn_node_inseg and CLG_(get_file_node). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14666 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
46cc04521acf2827eb33310fadc119bf2dc039e4 |
|
25-Oct-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge r14202 from the BUF_REMOVAL branch to trunk. This patch changes the interface and behaviour of VG_(demangle) and VG_(maybe_Z_demangle). Instead of copying the demangled name into a fixed sized buffer that is passed in from the caller (HChar *buf, Int n_buf), the demangling functions will now return a pointer to the full-length demangled name (HChar **result). It is the caller's responsiblilty to make a copy if needed. This change in function parameters ripples upward - first: to get_sym_name - then to the convenience wrappers - VG_(get_fnname) - VG_(get_fnname_w_offset) - VG_(get_fnname_if_entry) - VG_(get_fnname_raw) - VG_(get_fnname_no_cxx_demangle) - VG_(get_datasym_and_offset) The changes in foComplete then forces the arguments of - VG_(get_objname) to be changed as well There are some issues regarding the ownership and persistence of character strings to consider. In general, the returned character string is owned by "somebody else" which means the caller must not free it. Also, the caller must not modify the returned string as it possibly points to read only memory. Additionally, the returned string is not necessarily persistent. Here are the scenarios: - the returned string is a demangled function name in which case the memory holding the string will be freed when the demangler is called again. - the returned string hangs off of a DebugInfo structure in which case it will be freed when the DebugInfo is discarded - the returned string hangs off of a segment in the address space manager in which case it may be overwritten when the segment is merged with another segment So the rule of thunb here is: if in doubt strdup the string. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14664 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
6f30631aacfa11891147ae26bf0506b771eb5784 |
|
26-Aug-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Cleanup: remove unused macros. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14360 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
990406896264d0e7b059024aef476e9bf8252ea5 |
|
23-Aug-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove unused functions and prototypes. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14342 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
f247f49736f40794490ecfb9294ad2e5354b814c |
|
22-Aug-2014 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Align header comment with other files git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14330 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
055c7f5f041e1f3b51d6128146ef290b8c017167 |
|
20-Aug-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove unused functions CLG_(get_out_file) and CLG_(get_out_directory). Looks like these were leftovers from early days -- perhaps r7235. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14321 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
2f938d0f2968356d4a2b90136d95625efdc110fe |
|
18-Aug-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove a few unused macro definitions. Move exported global variables to the proper section in the header file. No functional change. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14306 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
d7341d8948ba0082488ea478ec7a6ba15949895b |
|
12-Nov-2013 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix bug 327238. assertion failure in Callgrind: bbcc.c:585 (vgCallgrind_setup_bbcc): Assertion 'passed <= last_bb->cjmp_count' failed Background: We want to detect the jump behavior of code, that is, the side exit from a SB, as there can be many. For that, instrumented code writes the exit number into a global variable (jmps_passed) before an eventual exit. With an exception happening in the first few instructions of an SB, jmps_passed never was written, and still contained an old value. This got saved/restored around the exception handler, and resulted in the failed assertion. Solution: always initialize jmps_passed to zero in setup_bbcc(), which is called at the beginning of every SB. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13712 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
be0c23d1b2fcbfa7e0bfded1e980176fbe32f474 |
|
19-Nov-2012 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove not-used typedef git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13131 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
19f91bbaedb4caef8a60ce94b0f507193cc0bc10 |
|
10-Nov-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix more Char/HChar mixups. Closing in... git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13119 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
dbb3584f591710a15a437918c0fc27e300993566 |
|
27-Oct-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
More Char/HChar fixes and constification. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13088 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
25f6c57962b259a52e3e617eb96fa14d6fdbe364 |
|
21-Oct-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix a few Char/HChar mixups in callgrind. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13069 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
1fda5fe517a976306f0ffdc53eeec293b8e21b45 |
|
02-Sep-2012 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Improve callgrind performance by 4 to 8% using UNLIKELY Performance improvements from 4 to 8% obtained on amd64 on the perf tests by: 1. using UNLIKELY inside tracing macros 2. avoid calling CLG_(switch_thread)(tid) on the hot patch setup_bbcc unless tid differs from CLG_(current_tid). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12939 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
c4ebde3931d3740270b92bea4c85a59443e7c65d |
|
04-Jun-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
If we are doing cache simulation, refuse to start at all if the minimum cache line size is smaller than the maximum guest register size. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12606 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
28a23c05ce81a384283eb6d92d39ace2ff7283ca |
|
14-Nov-2011 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Callgrind: use jmpkind from VEX for side exits. To detect calls and returns, Callgrind's heuristic starts with using the jumpkind got from VEX for a control flow change instruction. However, for side exits, it always assumed a (conditional) jump, which holds true for x86, but e.g. not for ARM. This fixes Callgrind to use the jumpkind found by VEX for all exits, which should help making Callgrind work for ARM. It also moves the check whether a boring jump is actually a fall-through to instrumentation time. This changes (fixes) the result for indirect jumps to the next instruction, which should not be classified as fall-through (anyway, this case is probably very rare). This patch introduces an own enum for jump kinds in Callgrind. This is less confusing than misusing the VEX jump kind type, as Callgrinds wants to distinguish BB fall-throughs from real jumps (which both are Ijk_Boring in VEX). Also, setup_bbcc now stores separately whether the jump kind is conditional or not. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12269 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
add9ec4059bed268713f9f8dac493c7f25baee94 |
|
14-Nov-2011 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
callgrind: remove command file polling This is the last part of moving from command file polling to the vgdb ptrace method for interactive control of Callgrind. VG 3.7.x ported callgrind_control to vgdb (in r11867), but still did command file polling to support existing KCachegrind releases. KCachegrind from upcoming KDE SC 4.8 will use callgrind_control instead of manually writing command files. The main benefit from this is, apart from getting rid of continous file polling activity in Callgrind, that blocked processes can now respond to callgrind_control. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12268 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
d585c923139af976486dd8291f7868fe5a26510e |
|
17-Oct-2011 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix callgrind part of bug 280757. For this, we make VG_(tmpdir) available to tools. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12163 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
bb515c379fb2a1659f748dc6f0ff64cb5f4af7c8 |
|
11-May-2011 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix bug 267383 As suggested by Florian. Cachegrind already does the same. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11746 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
c63ca370759170ce891430374315990c83852ed0 |
|
04-Feb-2011 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix bug 246152 When unwinding needs to be done because the stack pointer is reset (e.g. by a longjmp), it makes no sense to interprete the control flow change as call, but should be seen as a return. This indirectly fixes bug 246152. Unwinding potentially changes the exec state, which is unique for threads, but also for signal handlers. E.g. this is true for a longjmp out of a signal handler. Exec state changes modify members of struct CLG_(current_state), such as CLG_(current_state).bbcc and CLG_(current_state).jmps_passed, which are backed in CLG_(setup_bbcc)() by last_bbcc and passed, respectivly. On a exec state change, these local vars go out of sync, and lead to invalid data passed to CLG_(push_call_stack)() for handling a call, which triggered data corruption, and the symptoms seen in bug 246152. As in the given situation, there is no call anymore, there is no call into CLG_(push_call_stack)(), and the corruption (or since last commit the failed assertion) is not triggered any more. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11524 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
0ecd49e1da934c40c18eb7d4fa044682e4b01084 |
|
04-Oct-2010 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Make sure that string buffers for cost arrays are large enough. 17 64bit values fit into 512 bytes (but not 256...). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11393 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
f3bea49ed9c422cadc086472dc339d65255eabc0 |
|
03-Oct-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
callgrind/main.c, finish(): 'Char buf[RESULTS_BUF_LEN]' can be overrun in some cases. Increase RESULTS_BUF_LEN accordingly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11392 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
320705fdb4ee91a69030d2024eec6e9a613c86c4 |
|
02-Jul-2010 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Callgrind: add branch prediction from Cachegrind Callgrind now uses Cachegrind's command line option to switch on simulation: "--branch-sim=yes/no" for branch prediction, and "--cache-sim=yes/no" for cache simulation (for more consistency and to avoid confusion). However, the previously used "--simulate-cache=yes/no" still is supported but deprecated. Included: according documentation and tests. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11207 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
aeb8622e80e51a04e769b00d07b5eef74baca2c3 |
|
10-Jun-2010 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Callgrind new feature: count global bus lock events "Ge" To count global bus lock events, use "--collect-bus=yes". For x86, this will count the number of executed instructions with a lock prefix; for architectures with LL/SC, this will count the number of executed SC instructions. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11167 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
75a5c2d2de31d2f9dacc67283764a91cb06e062b |
|
10-Jun-2010 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Callgrind: make globals for log_* helpers visible outside sim.c At beginning of each BB, Callgrind inserts a call to setup_bbcc, which (among a lot other things), sets global vars needed for the log_* helpers called afterwards in this BB. These globals, bb_base and cost_base, previously we static declared and only visible in sim.c. Make them visible also in the rest of callgrind to allow for log_* handlers outside sim.c. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11166 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
5bba5258a193d980fb116a8b04f96dc16d96aacf |
|
10-Jun-2010 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Callgrind: event sets now consist of event groups Offsets of groups within event sets are now stored in a offset table as part of the event set, and can be accessed directly. Before, offsets were hardcoded all over the place. This should make addition of further event groups much simpler. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11165 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
0a1951d64df79f98f885426671fc9d3982647a6b |
|
15-Jun-2009 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Callgrind: fix instrumentation for arbitrary events per guest instruction (should fix bug 169505) This uses the same event queue scheme as cachegrind and lackey, and same kind of helpers (1/2/3 Ir events, Ir+Dr, Dr, Ir+Dw, Dw). Note that in contrast to Cachegrind, Callgrind interpretes a modify event as Dw (otherwise the cache model generating write back events would not work). Callgrind uses per-(guest)instruction event sets for cost counters. An per-instruction eventset is incrementally extended as events for the same guest instruction are flushed. Event sets always start with Ir counters, but depending on Dr/Dw order afterwards, there exist IrDr(Dw) and IrDw(Dr). Per-instruction event sets now are consistently named according to event ordering. Event set "sim" is a subset of "full", was never used and was removed. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10321 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
09ee78ec9675201840d895623d49efba1ffe05d8 |
|
24-Feb-2009 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Callgrind: fix a few 'unused parameter' warnings git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9251 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
c4431bfe04c7490ea2d74939d222d87f13f30960 |
|
15-Jan-2009 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Introduce a new type, PtrdiffT. Replace lots of uses of OffT (all those that are memory offsets) with PtrdiffT; OffT should only be used for file sizes and offsets. Change Off64T from a ULong to a Long, as it should be. Replace some uses of ULong in the address space manager with Off64T to match. Also add a comment explaining the meanings of the basic types like Addr, OffT, SizeT, etc. Also fix the prototype for VG_(pread) -- the last arg is an OffT, not an Int. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8959 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
9c606bd8634cd6b67bb41fa645b5c639668cfa2d |
|
18-Sep-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge all remaining changes from branches/PTRCHECK. These are some relatively minor extensions to m_debuginfo, a major overhaul of m_debuginfo/readdwarf3.c to get its space usage under control, and changes throughout the system to enable heap-use profiling. The majority of the merged changes were committed into branches/PTRCHECK as the following revs: 8591 8595 8598 8599 8601 and 8161. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8621 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
b8b79addf04dd5d0b558916e26df0b1927cbd758 |
|
03-Mar-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge in the DATASYMS branch. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7540 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
cbf4e19974ee274e908e1d1f907d2bd3649a27d5 |
|
27-Nov-2007 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
callgrind: support for --callgrind-out-file This removes the --base option, which is replaced by --callgrind-out-file. Plus manual update. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7235 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
5bd7eca3f79dafd6560cdcdf804bcebdf5aaeff5 |
|
26-Feb-2007 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Callgrind: Fix potential buffer overruns with user provided strings This introduces some macros to shorten the code for output of strings to a file descriptor. I could use this a lot, but this commit limits itself to the potential buffer overruns (to ease backporting - provided we want to do this) Heavy use of the macros probably blows up the code. Perhaps it would be better to provide e.g. a VG_(write_str3) function in the tool API. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6618 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
14c7cc5a5fbe9526329f058116f921988efe679e |
|
25-Feb-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Get rid of the type XArrayStrings in m_clientstate and use new generic equivalents in module m_xarray instead. A suprisingly pervasive change. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6616 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
0b9d74abd0a663b530d290b2b788ddeda46e5400 |
|
24-Dec-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Non-functional commit: track IR renaming in vex r1689. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6416 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
4cfea4f9480393ed6799db463b2e0fb8865a1a2f |
|
14-Oct-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Create a new module, m_vki, and move all knowledge about the kernel interface, except for the syscall numbers, into that. Mostly this means moving include/vki-*.h to include/vki/vki-*.h. include/pub_tool_basics.h previously dragged in the entire kernel interface. I've done away with that, so that modules which need to see the kernel interface now have to include pub_{core,tool}_vki.h explicitly. This is why there are many modified .c files -- they have all acquired an extra #include line. This certainly breaks all platforms except x86. Will fix shortly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6225 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
4ce5e79ff39cbdef678e4bd9d2d16fbaba9f7fde |
|
20-Sep-2006 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Callgrind: fix interactive control after fork() This fixes bug 134316: when an program in callgrind does a fork, callgrind_control does show both now, and they can be controlled separately. However, missing in this patch is zeroing of cost centers directly after the clone syscall in the child. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6082 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
90741fb06f058a401af52b3d0963f29bd737c154 |
|
12-Sep-2006 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Callgrind: fix segfault when dumping after toggling instrumentation mode This bug shows up when callgrind dumps data of a BB with 0 instructions (the segfault only appears on x86_64; for x86 we were "lucky"). "BB with 0 instructions" happens when you switch on instrumentation (and callgrinds call graph tracing starts with an emtpy shadow call stack) in the middle of a run: Whenever the shadow callstack is empty, but callgrind sees a return instruction (ie. a shadow callstack underrun), it creates an artifical BB which is faked to have called the function we are returning from. This way, the call arc is noted and will appear in the dump. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6053 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
a762b0f082d37b630c72d1d6388b34f76c851c76 |
|
01-May-2006 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Callgrind: Improve self-hosting with outer callgrind tool This adds an option to change the default handling of jumps between functions. Usually, a jump between functions is interpreted as call, because such jumps are typically generated by compilers on tail recursion optimization, and we want to present this as call to the user. Thus, such a jump pushes a call onto callgrinds shadow stack. The option "--pop-on-jump" changes this to pop+push the shadow callstack: then, a jump between functions is seen as a return to the caller and a new call. The default behaviour is _bad_ for using callgrind with self-hosting. Valgrinds inner loop VG_(run_innerloop) jumps to generated code, and this code jumps back to the inner loop. Thus, every executed BB adds 2 calls to an ever increasing shadow call stack, leading to memory consumption increasing with runtime :-( So: For self-hosting valgrind with an outer callgrind, always use option "--pop-on-jump" for the outer callgrind. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5869 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
9e326b7c9e06d22a868557b8606fc765a2cd6277 |
|
31-Mar-2006 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Option --dump-every-bb now takes a 64bit value on user request. Update/clarify documentation. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5806 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|
a17f2a36b7fde9ee842f92412eacbf94b66af59d |
|
20-Mar-2006 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Callgrind merge: code git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5780 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/callgrind/global.h
|