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/coregrind/m_stacktrace.c
|
a0664b9ca67b594bd6f570a61d3301167a24750c |
|
19-Apr-2017 |
Elliott Hughes <enh@google.com> |
Upgrade to valgrind 3.12.0. Release 3.12.0 (20 October 2016) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3.12.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, X86/MacOSX 10.10 and AMD64/MacOSX 10.10. There is also preliminary support for X86/MacOSX 10.11/12, AMD64/MacOSX 10.11/12 and TILEGX/Linux. * ================== PLATFORM CHANGES ================= * POWER: Support for ISA 3.0 has been added * mips: support for O32 FPXX ABI has been added. * mips: improved recognition of different processors * mips: determination of page size now done at run time * amd64: Partial support for AMD FMA4 instructions. * arm, arm64: Support for v8 crypto and CRC instructions. * Improvements and robustification of the Solaris port. * Preliminary support for MacOS 10.12 (Sierra) has been added. Whilst 3.12.0 continues to support the 32-bit x86 instruction set, we would prefer users to migrate to 64-bit x86 (a.k.a amd64 or x86_64) where possible. Valgrind's support for 32-bit x86 has stagnated in recent years and has fallen far behind that for 64-bit x86 instructions. By contrast 64-bit x86 is well supported, up to and including AVX2. * ==================== TOOL CHANGES ==================== * Memcheck: - Added meta mempool support for describing a custom allocator which: - Auto-frees all chunks assuming that destroying a pool destroys all objects in the pool - Uses itself to allocate other memory blocks - New flag --ignore-range-below-sp to ignore memory accesses below the stack pointer, if you really have to. The related flag --workaround-gcc296-bugs=yes is now deprecated. Use --ignore-range-below-sp=1024-1 as a replacement. * DRD: - Improved thread startup time significantly on non-Linux platforms. * DHAT - Added collection of the metric "tot-blocks-allocd" * ==================== OTHER CHANGES ==================== * Replacement/wrapping of malloc/new related functions is now done not just for system libraries by default, but for any globally defined malloc/new related function (both in shared libraries and statically linked alternative malloc implementations). The dynamic (runtime) linker is excluded, though. To only intercept malloc/new related functions in system libraries use --soname-synonyms=somalloc=nouserintercepts (where "nouserintercepts" can be any non-existing library name). This new functionality is not implemented for MacOS X. * The maximum number of callers in a suppression entry is now equal to the maximum size for --num-callers (500). Note that --gen-suppressions=yes|all similarly generates suppressions containing up to --num-callers frames. * New and modified GDB server monitor features: - Valgrind's gdbserver now accepts the command 'catch syscall'. Note that you must have GDB >= 7.11 to use 'catch syscall' with gdbserver. * New option --run-cxx-freeres=<yes|no> can be used to change whether __gnu_cxx::__freeres() cleanup function is called or not. Default is 'yes'. * Valgrind is able to read compressed debuginfo sections in two formats: - zlib ELF gABI format with SHF_COMPRESSED flag (gcc option -gz=zlib) - zlib GNU format with .zdebug sections (gcc option -gz=zlib-gnu) * Modest JIT-cost improvements: the cost of instrumenting code blocks for the most common use case (x86_64-linux, Memcheck) has been reduced by 10%-15%. * Improved performance for programs that do a lot of discarding of instruction address ranges of 8KB or less. * The C++ symbol demangler has been updated. * More robustness against invalid syscall parameters on Linux. * ==================== 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. 191069 Exiting due to signal not reported in XML output 199468 Suppressions: stack size limited to 25 while --num-callers allows more frames 212352 vex amd64 unhandled opc_aux = 0x 2, first_opcode == 0xDC (FCOM) 278744 cvtps2pd with redundant RexW 303877 valgrind doesn't support compressed debuginfo sections. 345307 Warning about "still reachable" memory when using libstdc++ from gcc 5 348345 Assertion fails for negative lineno 351282 V 3.10.1 MIPS softfloat build broken with GCC 4.9.3 / binutils 2.25.1 351692 Dumps created by valgrind are not readable by gdb (mips32 specific) 351804 Crash on generating suppressions for "printf" call on OS X 10.10 352197 mips: mmap2() not wrapped correctly for page size > 4096 353083 arm64 doesn't implement various xattr system calls 353084 arm64 doesn't support sigpending system call 353137 www: update info for Supported Platforms 353138 www: update "The Valgrind Developers" page 353370 don't advertise RDRAND in cpuid for Core-i7-4910-like avx2 machine == 365325 == 357873 353384 amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x62 (pcmpXstrX $0x62) 353398 WARNING: unhandled amd64-solaris syscall: 207 353660 XML in auxwhat tag not escaping reserved symbols properly 353680 s390x: Crash with certain glibc versions due to non-implemented TBEGIN 353727 amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x72 (pcmpXstrX $0x72) 353802 ELF debug info reader confused with multiple .rodata sections 353891 Assert 'bad_scanned_addr < VG_ROUNDDN(start+len, sizeof(Addr))' failed 353917 unhandled amd64-solaris syscall fchdir(120) 353920 unhandled amd64-solaris syscall: 170 354274 arm: unhandled instruction: 0xEBAD 0x0AC1 (sub.w sl, sp, r1, lsl #3) 354392 unhandled amd64-solaris syscall: 171 354797 Vbit test does not include Iops for Power 8 instruction support 354883 tst->os_state.pthread - magic_delta assertion failure on OSX 10.11 == 361351 == 362920 == 366222 354933 Fix documentation of --kernel-variant=android-no-hw-tls option 355188 valgrind should intercept all malloc related global functions 355454 do not intercept malloc related symbols from the runtime linker 355455 stderr.exp of test cases wrapmalloc and wrapmallocstatic overconstrained 356044 Dwarf line info reader misinterprets is_stmt register 356112 mips: replace addi with addiu 356393 valgrind (vex) crashes because isZeroU happened == 363497 == 364497 356676 arm64-linux: unhandled syscalls 125, 126 (sched_get_priority_max/min) 356678 arm64-linux: unhandled syscall 232 (mincore) 356817 valgrind.h triggers compiler errors on MSVC when defining NVALGRIND 356823 Unsupported ARM instruction: stlex 357059 x86/amd64: SSE cvtpi2ps with memory source does transition to MMX state 357338 Unhandled instruction for SHA instructions libcrypto Boring SSL 357673 crash if I try to run valgrind with a binary link with libcurl 357833 Setting RLIMIT_DATA to zero breaks with linux 4.5+ 357871 pthread_spin_destroy not properly wrapped 357887 Calls to VG_(fclose) do not close the file descriptor 357932 amd64->IR: accept redundant REX prefixes for {minsd,maxsd} m128, xmm. 358030 support direct socket calls on x86 32bit (new in linux 4.3) 358478 drd/tests/std_thread.cpp doesn't build with GCC6 359133 Assertion 'eltSzB <= ddpa->poolSzB' failed 359181 Buffer Overflow during Demangling 359201 futex syscall "skips" argument 5 if op is FUTEX_WAIT_BITSET 359289 s390x: popcnt (B9E1) not implemented 359472 The Power PC vsubuqm instruction doesn't always give the correct result 359503 Add missing syscalls for aarch64 (arm64) 359645 "You need libc6-dbg" help message could be more helpful 359703 s390: wire up separate socketcalls system calls 359724 getsockname might crash - deref_UInt should call safe_to_deref 359733 amd64 implement ld.so strchr/index override like x86 359767 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 1/5 359829 Power PC test suite none/tests/ppc64/test_isa_2_07.c uses uninitialized data 359838 arm64: Unhandled instruction 0xD5033F5F (clrex) 359871 Incorrect mask handling in ppoll 359952 Unrecognised PCMPESTRM variants (0x70, 0x19) 360008 Contents of Power vr registers contents is not printed correctly when the --vgdb-shadow-registers=yes option is used 360035 POWER PC instruction bcdadd and bcdsubtract generate result with non-zero shadow bits 360378 arm64: Unhandled instruction 0x5E280844 (sha1h s4, s2) 360425 arm64 unsupported instruction ldpsw == 364435 360519 none/tests/arm64/memory.vgtest might fail with newer gcc 360571 Error about the Android Runtime reading below the stack pointer on ARM 360574 Wrong parameter type for an ashmem ioctl() call on Android and ARM64 360749 kludge for multiple .rodata sections on Solaris no longer needed 360752 raise the number of reserved fds in m_main.c from 10 to 12 361207 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 2/5 361226 s390x: risbgn (EC59) not implemented 361253 [s390x] ex_clone.c:42: undefined reference to `pthread_create' 361354 ppc64[le]: wire up separate socketcalls system calls 361615 Inconsistent termination for multithreaded process terminated by signal 361926 Unhandled Solaris syscall: sysfs(84) 362009 V dumps core on unimplemented functionality before threads are created 362329 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3/5 362894 missing (broken) support for wbit field on mtfsfi instruction (ppc64) 362935 [AsusWRT] Assertion 'sizeof(TTEntryC) <= 88' failed 362953 Request for an update to the Valgrind Developers page 363680 add renameat2() support 363705 arm64 missing syscall name_to_handle_at and open_by_handle_at 363714 ppc64 missing syscalls sync, waitid and name_to/open_by_handle_at 363858 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 4/5 364058 clarify in manual limitations of array overruns detections 364413 pselect sycallwrapper mishandles NULL sigmask 364728 Power PC, missing support for several HW registers in get_otrack_shadow_offset_wrk() 364948 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 5/5 365273 Invalid write to stack location reported after signal handler runs 365912 ppc64BE segfault during jm-insns test (RELRO) 366079 FPXX Support for MIPS32 Valgrind 366138 Fix configure errors out when using Xcode 8 (clang 8.0.0) 366344 Multiple unhandled instruction for Aarch64 (0x0EE0E020, 0x1AC15800, 0x4E284801, 0x5E040023, 0x5E056060) 367995 Integration of memcheck with custom memory allocator 368120 x86_linux asm _start functions do not keep 16-byte aligned stack pointer 368412 False positive result for altivec capability check 368416 Add tc06_two_races_xml.exp output for ppc64 368419 Perf Events ioctls not implemented 368461 mmapunmap test fails on ppc64 368823 run_a_thread_NORETURN assembly code typo for VGP_arm64_linux target 369000 AMD64 fma4 instructions unsupported. 369169 ppc64 fails jm_int_isa_2_07 test 369175 jm_vec_isa_2_07 test crashes on ppc64 369209 valgrind loops and eats up all memory if cwd doesn't exist. 369356 pre_mem_read_sockaddr syscall wrapper can crash with bad sockaddr 369359 msghdr_foreachfield can crash when handling bad iovec 369360 Bad sigprocmask old or new sets can crash valgrind 369361 vmsplice syscall wrapper crashes on bad iovec 369362 Bad sigaction arguments crash valgrind 369383 x86 sys_modify_ldt wrapper crashes on bad ptr 369402 Bad set/get_thread_area pointer crashes valgrind 369441 bad lvec argument crashes process_vm_readv/writev syscall wrappers 369446 valgrind crashes on unknown fcntl command 369439 S390x: Unhandled insns RISBLG/RISBHG and LDE/LDER 369468 Remove quadratic metapool algorithm using VG_(HT_remove_at_Iter) 370265 ISA 3.0 HW cap stuff needs updating 371128 BCD add and subtract instructions on Power BE in 32-bit mode do not work n-i-bz Fix incorrect (or infinite loop) unwind on RHEL7 x86 and amd64 n-i-bz massif --pages-as-heap=yes does not report peak caused by mmap+munmap n-i-bz false positive leaks due to aspacemgr merging heap & non heap segments n-i-bz Fix ppoll_alarm exclusion on OS X n-i-bz Document brk segment limitation, reference manual in limit reached msg. n-i-bz Fix clobber list in none/tests/amd64/xacq_xrel.c [valgrind r15737] n-i-bz Bump allowed shift value for "add.w reg, sp, reg, lsl #N" [vex r3206] n-i-bz amd64: memcheck false positive with shr %edx n-i-bz arm3: Allow early writeback of SP base register in "strd rD, [sp, #-16]" n-i-bz ppc: Fix two cases of PPCAvFpOp vs PPCFpOp enum confusion n-i-bz arm: Fix incorrect register-number constraint check for LDAEX{,B,H,D} n-i-bz DHAT: added collection of the metric "tot-blocks-allocd" (3.12.0.RC1: 20 October 2016, vex r3282, valgrind r16094) (3.12.0.RC2: 20 October 2016, vex r3282, valgrind r16096) (3.12.0: 21 October 2016, vex r3282, valgrind r16098) Bug: http://b/37470713 Bug: http://b/29251682 Test: ran runtests-arm(64)?.sh and the bug reporter's specific binary (32- and 64-bit) Change-Id: I43ccbea946d89fc4ae9f355181ac5061d6ce4453
/external/valgrind/coregrind/m_stacktrace.c
|
ba0f0541efceb398184d137caa4da16d2d2a6c91 |
|
24-Sep-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Factorise condition to do recursive merge in the macro git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15681 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
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/coregrind/m_stacktrace.c
|
a7d291dabeedf369af475acec3478c82af33aa98 |
|
08-Aug-2015 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix two more format inconsistencies found on s390. The one in m_stacktrace.c also existed for other architectures. Fixed as well. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15508 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
a5e06c36bf9d93461bc8c4351e960888020ea1c4 |
|
05-Aug-2015 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix printf format inconsistencies as pointed out by gcc -Wformat-signedness. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15499 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
8eb8bab992e3998c33770b0cdb16059a8b918a06 |
|
21-Jul-2015 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Bug 345248 - add support for Solaris OS in valgrind Authors of this port: Petr Pavlu setup@dagobah.cz Ivo Raisr ivosh@ivosh.net Theo Schlossnagle theo@omniti.com git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15426 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
418f6b3b62574d2514ccc10c976693f69c72a0d6 |
|
07-Jul-2015 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
VG_(get_StackTrace_wrk) for x86-{linux,darwin}: when following frame-pointer chains (via EBP), don't continue if EBP doesn't contain a 4-aligned value. A misaligned EBP is almost certainly invalid -- hence, no loss in unwind capability here -- and the misaligned access causes gcc 5.1 ubsan alignment checks to fail. So avoid them. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15400 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
8695a65b13ae489851df901453af872984962685 |
|
06-Jun-2015 |
rhyskidd <rhyskidd@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Resolve clang warning on OS X: m_stacktrace.c:542:7: warning: implicit declaration of function 'vgPlain_is_in_syscall' is invalid in C99 [-Wimplicit-function-declaration] git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15324 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
01c353ef7577b4f45d680ecc9c773275fce2af0f |
|
04-Jun-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
On platforms that have an accessible redzone below the SP, the unwind logic should be able to access the redzone. So, when computing fp_min, substract the redzone. Currently, only amd64 and ppc64 have a non 0 redzone. Regtested on amd64 and ppc64le, no regression. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15309 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
30fb2d37c1524e88fd5fd4efefd329cb0e98d7fa |
|
31-May-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
unwind amd64 trace: improve also the fp chain unwind trace git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15301 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
2d207aa37a64ab74da74eb06b148f62246e30f1d |
|
31-May-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Improve tracing in amd64 unwind git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15300 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
f7bbd7982397fb73477bdc21bf236cf9100cee44 |
|
26-May-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Slightly improve x86 unwind intensive workload. e.g. perf/memrw is improved by 2% to 3% with this patch. The unwinding code on x86 is trying to unwind using either the %ebp-chain or CFI unwinding. If these 2 techniques fail, then it tries to unwind using FPO (PDB) debug info. However, unless running wine or similar, there will never be such FPO/PDB info. The function VG_(use_FPO_info) is thus called for nothing for each 'end of stack'. This function scans all the loaded di to find a debug info that has some FP, to not find anything. With this patch, the unwind code on x86 will only call VG_(use_FPO_info) if some FPO/PDB info was loaded. The fact that FPO/PDB info was loaded is cached and updated similarly to cfi cache : each time new debug info is loaded, the cache value is refreshed using the debuginfo generation. The patch also changes the name of VG_(CF_info_generation) to VG_(debuginfo_generation), as this generation is changed for any kind of load or unload of debug info, not only for CFI based debug info git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15293 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
a6954a446da2daa9eebc65e17e4e0674c4e7519f |
|
06-May-2015 |
carll <carll@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Patch 1 in a series of cleanup patches from Will Schmidt Update ifdefs around the bogus-LR-value-handling code to allow ppc64le to behave as ppc64 (BE) does. This fixes the overlap test case, where the stack unwinding code was otherwise coming up with bad instruction pointers. This patch fixes Vagrind bugzilla 347322. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15183 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
75712710b9c49eedcf4f9caa7d7e17494ac3acf8 |
|
30-Apr-2015 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove a few embarassing comments. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15169 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
112711afefcfcd43680c7c4aa8d38ef180e8811e |
|
10-Apr-2015 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add a port to Linux/TileGx. Zhi-Gang Liu (zliu@tilera.com) Valgrind aspects, to match vex r3124. See bug 339778 - Linux/TileGx platform support to Valgrind git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15080 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
bc3770e4f6c8fe86d5baee6e874df5bb6dbe1292 |
|
07-Mar-2015 |
rhyskidd <rhyskidd@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix stack traces missing penultimate frame bz#344560 - Also fixes memcheck/tests/badpoll test on OS X - Problem occurs because the guest stack seen in a system call pre or post function happens to not have a correct topmost stack frame, as Darwin system call stubs do not start with the usual function prolog. - New regression test case added. - Thanks to Greg Banks for research, patch and test case. Before: == 587 tests, 240 stderr failures, 22 stdout failures, 0 stderrB failures, 0 stdoutB failures, 31 post failures == After: == 588 tests, 239 stderr failures, 22 stdout failures, 0 stderrB failures, 0 stdoutB failures, 31 post failures == git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14985 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
ddd61ff058f02059064e083a8accaefed23d5548 |
|
04-Jan-2015 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Change most remaining use of Addr64 in coregrind and the tools to Addr. Tracking VEX r3056. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14846 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
30e866ec72bb970337843a36c2e29bc26b213c63 |
|
05-Nov-2014 |
weidendo <weidendo@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Compile (arm). Fix typo from r14664 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14693 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
770a8d23e40b980b5745e59ecb8e4037d81af357 |
|
03-Nov-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge r14308 from the BUF_REMOVAL branch to trunk Changes VG_(describe_IP) to return the untruncated result in a statically allocated local buffer. Fix call sites and update two .exp files who had truncated names. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14685 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
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/coregrind/m_stacktrace.c
|
518850bf0da07ed3e2244e307268ae0fd80e93a8 |
|
23-Oct-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Constify coregrind. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14656 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
38a74d2cc4670e3eb559adff51a376cd6ec98005 |
|
30-Aug-2014 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
The semantic of the stack bounds is not consistent or is not described. At various places, there were either some assumption that the 'end' boundary (highest address) was either not included, included, or was the highest addressable word, or the highest addressable byte. This e.g. was very visible when doing: ./vg-in-place -d -d ./helgrind/tests/tc01_simple_race|&grep regi giving --24040:2:stacks register 0xBEDB4000-0xBEDB4FFF as stack 0 --24040:2:stacks register 0x402C000-0x4A2C000 as stack 1 showing that the main stack end was (on x86) not the highest word but the highest byte, while for the thread 1, the registered end was a byte not part of the stack. The attached patch ensures that stack bounds semantic are documented and consistent. Also, some of the stack handling code is factorised. The convention that the patch ensures and documents is: start is the lowest addressable byte, end is the highest addressable byte. (the words 'min' and 'max' have been kept when already used, as this wording is consistent with the new semantic of start/end). In various debug log, used brackets [ and ] to make clear that both bounds are included. The code to guess and register the client stack was duplicated in all the platform specific syswrap-<plat>-<os>.c files. Code has been factorised in syswrap-generic.c The patch has been regression tested on x86, amd64, ppc32/64, s390x. It has been compiled and one test run on arm64. Not compiled/not tested on darwin, android, mips32/64, arm More in details, the patch does the following: coregrind/pub_core_aspacemgr.h include/valgrind.h include/pub_tool_machine.h coregrind/pub_core_scheduler.h coregrind/pub_core_stacks.h - document start/end semantic in various functions also in pub_tool_machine.h: - replaces unclear 'bottommost address' by 'lowest address' (unclear as stack bottom is or at least can be interpreted as the 'functional' bottom of the stack, which is the highest address for 'stack growing downwards'). coregrind/pub_core_initimg.h replace unclear clstack_top by clstack_end coregrind/m_main.c updated to clstack_end coregrind/pub_core_threadstate.h renamed client_stack_highest_word to client_stack_highest_byte coregrind/m_scheduler/scheduler.c computes client_stack_highest_byte as the highest addressable byte Update comments in call to VG_(show_sched_status) coregrind/m_machine.c coregrind/m_stacktrace.c updated to client_stack_highest_byte, and switched stack_lowest/highest_word to stack_lowest/highest_byte accordingly coregrind/m_stacks.c clarify semantic of start/end, added a comment to indicate why we invert start/end in register call (note that the code find_stack_by_addr was already assuming that end was included as the checks were doing e.g. sp >= i->start && sp <= i->end coregrind/pub_core_clientstate.h coregrind/m_clientstate.c renames Addr VG_(clstk_base) to Addr VG_(clstk_start_base) (start to indicate it is the lowest address, base suffix kept to indicate it is the initial lowest address). coregrind/m_initimg/initimg-darwin.c updated to VG_(clstk_start_base) replace unclear iicii.clstack_top by iicii.clstack_end updated clstack_max_size computation according to both bounds included. coregrind/m_initimg/initimg-linux.c updated to VG_(clstk_start_base) updated VG_(clstk_end) computation according to both bounds included. replace unclear iicii.clstack_top by iicii.clstack_end coregrind/pub_core_aspacemgr.h extern Addr VG_(am_startup) : clarify semantic of the returned value coregrind/m_aspacemgr/aspacemgr-linux.c removed a copy of a comment that was already in pub_core_aspacemgr.h (avoid double maintenance) renamed unclear suggested_clstack_top to suggested_clstack_end (note that here, it looks like suggested_clstack_top was already the last addressable byte) * factorisation of the stack guessing and registration causes mechanical changes in the following files: coregrind/m_syswrap/syswrap-ppc64-linux.c coregrind/m_syswrap/syswrap-x86-darwin.c coregrind/m_syswrap/syswrap-amd64-linux.c coregrind/m_syswrap/syswrap-arm-linux.c coregrind/m_syswrap/syswrap-generic.c coregrind/m_syswrap/syswrap-mips64-linux.c coregrind/m_syswrap/syswrap-ppc32-linux.c coregrind/m_syswrap/syswrap-amd64-darwin.c coregrind/m_syswrap/syswrap-mips32-linux.c coregrind/m_syswrap/priv_syswrap-generic.h coregrind/m_syswrap/syswrap-x86-linux.c coregrind/m_syswrap/syswrap-s390x-linux.c coregrind/m_syswrap/syswrap-darwin.c coregrind/m_syswrap/syswrap-arm64-linux.c Some files to look at more in details: syswrap-darwin.c : the handling of sysctl(kern.usrstack) looked buggy to me, and has probably be made correct by the fact that VG_(clstk_end) is now the last addressable byte. However,unsure about this, as I could not find any documentation about sysctl(kern.usrstack). I only find several occurences on the web, showing that the result of this is page aligned, which I guess means it must be 1+ the last addressable byte. syswrap-x86-darwin.c and syswrap-amd64-darwin.c I suspect the code that was computing client_stack_highest_word was wrong, and the patch makes it correct. syswrap-mips64-linux.c not sure what to do for this code. This is the only code that was guessing the stack differently from others. Kept (almost) untouched. To be discussed with mips maintainers. coregrind/pub_core_libcassert.h coregrind/m_libcassert.c * void VG_(show_sched_status): renamed Bool valgrind_stack_usage to Bool stack_usage if stack_usage, shows both the valgrind stack usage and the client stack boundaries coregrind/m_scheduler/scheduler.c coregrind/m_gdbserver/server.c coregrind/m_gdbserver/remote-utils.c Updated comments in callers to VG_(show_sched_status) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14392 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
cae0cc22b83ffb260ee8379e92099c5a701944cb |
|
08-Aug-2014 |
carll <carll@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This commit is for Bugzilla 334384. The Bugzilla contains patch 1 of 3 to add PPC64 LE support. The other two patches can be found in Bugzillas 334834 and 334836. The commit does not have a VEX commit associated with it. POWER PC, add initial Little Endian support The IBM POWER processor now supports both Big Endian and Little Endian. This patch renames the #defines with the name ppc64 to ppc64be for the BE specific code. This patch adds the Little Endian #define ppc64le to the Additionally, a few functions are renamed to remove BE from the name if the function is used by BE and LE. Functions that are BE specific have BE put in the name. The goals of this patch is to make sure #defines, function names and variables consistently use PPC64/ppc64 if it refers to BE and LE, PPC64BE/ppc64be if it is specific to BE, PPC64LE/ppc64le if it is LE specific. The patch does not break the code for PPC64 Big Endian. The test files memcheck/tests/atomic_incs.c, tests/power_insn_available.c and tests/power_insn_available.c are also updated to the new #define definition for PPC64 BE. Signed-off-by: Carl Love <carll@us.ibm.com> git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14238 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
a0a73939b0398b6608fd6dbde49820ce6530d12c |
|
15-Jun-2014 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This patch implements the support needed for stacktraces showing inlined function calls. See 278972 valgrind stacktraces and suppression do not handle inlined function call debuginfo Reading the inlined dwarf call info is activated using the new clo --read-inline-info=yes Default is currently no but an objective is to optimise the performance and memory in order to possibly set it on by default. (see below discussion about performances). Basically, the patch provides the following pieces: 1. Implement a new dwarf3 reader that reads the inlined call info 2. Some performance improvements done for this new parser, and on some common code between the new parser and the var info parser. 3. Use the parsed inlined info to produce stacktrace showing inlined calls 4. Use the parsed inlined info in the suppression matching and suppression generation 5. and of course, some reg tests 1. new dwarf3 reader: --------------------- Two options were possible: add the reading of the inlined info in the current var info dwarf reader, or add a 2nd reader. The 2nd approach was preferred, for the following reasons: The var info reader is slow, memory hungry and quite complex. Having a separate parsing phase for the inlined information is simpler/faster when just reading the inlined info. Possibly, a single parser would be faster when using both --read-var-info=yes and --read-inline-info=yes. However, var-info being extremely memory/cpu hungry, it is unlikely to be used often, and having a separate parsing for inlined info does in any case make not much difference. (--read-var-info=yes is also now less interesting thanks to commit r13991, which provides a fast and low memory "reasonable" location for an address). The inlined info parser reads the dwarf info to make calls to priv_storage.h ML_(addInlInfo). 2. performance optimisations ---------------------------- * the abbrev cache has been improved in revision r14035. * The new parser skips the non interesting DIEs (the var-info parser has no logic to skip uninteresting DIEs). * Some other minor perf optimisation here and there. In total now, on a big executable, 15 seconds CPU are needed to create the inlined info (on my slow x86 pentium). With regards to memory, the dinfo arena: with inlined info: 172281856/121085952 max/curr mmap'd without : 157892608/106721280 max/curr mmap'd, So, basically, inlined information costs about 15Mb of memory for my big executable (compared to first version of the patch, this is already using less memory, thanks to the strpool deduppoolalloc. The needed memory can probably be decreased somewhat more. 3. produce better stack traces ------------------------------ VG_(describe_IP) has a new argument InlIPCursor *iipc which allows to describe inlined function calls by doing repetitive calls to describe_IP. See pub_tool_debuginfo.h for a description. 4. suppression generation and matching -------------------------------------- * suppression generation now also uses an InlIPCursor *iipc to generate a line for each inlined fn call. * suppression matching: to allow suppression matching to match one IP to several function calls in a suppression entry, the 'inputCompleter' object (that allows to lazily generate function or object names for a stacktrace when matching an error with a suppression) has been generalised a little bit more to also lazily generate the input sequence. VG_(generic_match) has been updated so as to be more generic with respect to the input completer : when providing an input completer, VG_(generic_match) does not need anymore to produce/compute any input itself : this is all delegated to the input completer. 5. various regtests ------------------- to test stack traces with inlined calls, and suppressions of (some of) these errors using inlined fn calls matching. Work still to do: ----------------- * improve parsing performance * improve the memory overhead. * handling the directory name for files of the inlined function calls is not yet done. (probably implies to refactor some code) * see if m_errormgr.c *offsets arrays cannot be managed via xarray git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14036 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
493455406ef1b48b9a63e17bb8f9fc700711f97b |
|
15-Jun-2014 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
small improvement in x86 unwind debug tracing git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14034 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
dcef54c4c2bb59747fa83bf877490b60984c19a5 |
|
14-Jun-2014 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Enhance slightly the x86 debug trace unwind code git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14028 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
821283b2110420321fd3f60afcc799b287788c68 |
|
13-Jan-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Initial implementation of CFI based stack unwinding for arm64-linux. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13774 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
f0c1250e324f6684757c6a15545366447ef1d64f |
|
12-Jan-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add support for ARMv8 AArch64 (the 64 bit ARM instruction set). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13770 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
0f157ddb404bcde7815a1c5bf2d7e41c114f3d73 |
|
18-Oct-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates (20XY-2012 ==> 20XY-2013) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13658 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
49984eadbda78d8edea43f7839f4651a04ca419a |
|
18-Oct-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
arm-linux only: make unwinding by stack scanning (a nasty hack) be controllable from the command line. Fixes (kind of) #289578. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13657 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
c996326bd994fc60ed47b014d6b9897465c90f0a |
|
01-Mar-2013 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
allow compile time tracing to be enabled using the stats counters (so put first the static stats counters). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13300 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
4df0bfc0614379192c780c944415dc420d9cfe8e |
|
28-Feb-2013 |
petarj <petarj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
mips: adding MIPS64LE support to Valgrind Necessary changes to Valgrind to support MIPS64LE on Linux. Minor cleanup/style changes embedded in the patch as well. The change corresponds to r2687 in VEX. Patch written by Dejan Jevtic and Petar Jovanovic. More information about this issue: https://bugs.kde.org/show_bug.cgi?id=313267 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13292 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
522d4d3019b173e9d2211b792816277db1d88040 |
|
31-Jan-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Line-wrap a comment and put in some #undefs. Non-functional change. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13283 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
c4feec176fcbba09c2bf0d7ee6336ddb97db5c89 |
|
31-Jan-2013 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Bypass warning reported by gcc gcc reports a warning: m_stacktrace.c:183: warning: ‘xip_verified’ may be used uninitialized in this function This warning is a false positive: xip_verified is assigned in the following branch: if (UNLIKELY(xip_verif >= CFUNWIND)) { if (xip_verif == CFUNWIND) { ... } else { <<<< here xip_verified is initialised >>>> } } xip_verified is then used only if xip_verif > CFUNWIND. Assign a rubish value to xip_verified to silence gcc. (??? there are GCC pragmas that can be used to disable a warning only on a specific line e.g. something like: #pragma GCC diagnostic ignored "-Wuninitialized" Addr xip_verified; // xip for which we have calculated fpverif_uregs #pragma GCC diagnostic warning "-Wuninitialized" instead of Addr xip_verified = 0; // xip for which we have calculated fpverif_uregs // 0 assigned to silence false positive -Wuninitialized warning but the #pragma technique seems not used currently. So, using the bypass by assigning a rubbish value git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13282 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
20ede3a4f086d4a4b1e0969b1098dcb244ffb6b4 |
|
31-Jan-2013 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Improves stacktrace unwinding on x86 * other platforms (e.g. amd64) are first trying to unwind with cfi info, then with the fp chain. * fp unwind when code is compiled without frame pointer can fail and give incomplete stack traces (often terminating with a random program counter, causing a huge amount of recorded stack traces). This patch improves unwinding on x86 by: * first time an IP is unwound, do the unwind both with CFI technique and with fp technique. If results are identical, IP is inserted in a cache of 'fp unwindable' IP * following unwind of the same IP are then done directly either with fp unwind or with cfi, depending on the cached result of the check done during first unwind. The cache is needed so as to avoid as much as possible cfi unwind, as this is significantly slower than fp unwind. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13280 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
46207652a0c99a2c8b0f05eafce3ca3ec533c121 |
|
20-Jan-2013 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Implement --merge-recursive-frames + provide VALGRIND_MONITOR_COMMAND client req. In a big applications, some recursive algorithms have created hundreds of thousands of stacktraces, taking a lot of memory. Option --merge-recursive-frames=<number> tells Valgrind to detect and merge (collapse) recursive calls when recording stack traces. The value is changeable using the monitor command 'v.set merge-recursive-frames'. Also, this provides a new client request: VALGRIND_MONITOR_COMMAND allowing to execute a gdbsrv monitor command from the client program. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13246 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
e8c31155a9ef6266c4670c751c5e68b2b92b290a |
|
08-Jan-2013 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
remove useless undef of MYBUF_LEN git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13217 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
1472ad4445693973136e6a7a181fc607c664236f |
|
22-Nov-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Another signedness fix. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13134 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
ea395fa739ff23592fe268d54a450903d908e051 |
|
22-Nov-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix up another char-signedness straggler. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13133 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
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/coregrind/m_stacktrace.c
|
9228067d09e9f889ea9658c4769442448ff5bff3 |
|
09-Sep-2012 |
petarj <petarj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Restore unwind regs structure if VG_(use_CF_info) fails on MIPS. If VG_(use_CF_info) fails to find the next frame using loaded debug symbols, it will still change the data in uregs. Thus, we need to have uregs_copy before calling VG_(use_CF_info), and restore uregs if the call returns wrong data. This fixes drd/tests/tc04_free_lock on MIPS. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12962 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
03f8d3fc25f5a45c5826259d1b33b7f310117279 |
|
05-Aug-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates to include 2012. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12843 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
e947ce1530bb9dd2c4651d6267e6e1214ab960e0 |
|
15-Jun-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add a hack (disabled by default) that attempts to unwind the stack on ARM by simply scanning up and looking for words that look like they might be return addresses. Last-ditch hack for when the CFI trail goes cold. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12641 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
5db15403e889d4db339b342bc2a824ef0bfaa654 |
|
07-Jun-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge in a port for mips32-linux, by Petar Jovanovic and Dejan Jevtic, mips-valgrind@rt-rk.com, Bug 270777. Valgrind: changes to existing files. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12616 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
ec062e8d96a361af9905b5447027819dfbfee01a |
|
23-Oct-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update all copyright dates, from 20xy-2010 to 20xy-2011. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12206 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
6e9de463ef677f093e9f24f126e1b11c28cf59fd |
|
28-Jun-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Delete the AIX5 port. The last release this worked for is 3.4.1, and then only on AIX 5.2 and 5.3. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11842 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
6c591e15c1d6402a2a755310f005f795b68e7e38 |
|
11-Apr-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Create new module m_libcsetjmp, which wraps up uses of __builtin_setjmp and __builtin_longjmp so that they can be selectively replaced, on a platform by platform basis. Does not change any functionality. Related to #259977. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11687 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
b5b87408c0c99f9f6938d8cd921e2a5f420577c4 |
|
07-Mar-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add a port to IBM z/Architecture (s390x) running Linux -- Valgrind side components. (Florian Krohm <britzel@acm.org> and Christian Borntraeger <borntraeger@de.ibm.com>). Fixes #243404. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11604 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
f252299f95af007e6e94061e4d44a01421b3eb11 |
|
07-Oct-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
The amd64-linux unwinder rejects stacks of smaller than 512 bytes as bogus, and produces essentially useless traces from them. With gcc-4.4 and later, some valid thread stacks really are smaller than this. Hence change the limit down to 256 bytes. Investigated by Evgeniy Stepanov, eugeni.stepanov@gmail.com. See bug 243270 comment 21. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11403 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
fa5ce5616a17e79828fbc79f30b02b5085151e3c |
|
24-Sep-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
On arm-linux, add r7 to the set of registers that the CFI unwinder knows how to unwind. This is important when unwinding Thumb code the CFA is often stated as being at some offset from r7. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11377 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
9eecbbb9a9cbbd30b903c09a9e04d8efc20bda33 |
|
03-May-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates to 2010. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11121 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
f5f1e12bd89408917c1ffeb22ec23a1fd11b7a23 |
|
02-Jan-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Various minor fixups to make ppc32/64-linux work again following recent ARM-Linux merge. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10992 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
9365e3f48bc3efe2486bf4bc04111a2d89db5520 |
|
01-Jan-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Unbreak stack unwinding on x86-linux and amd64-linux following merge of ARM CFI unwinding in r10986. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10987 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
3026f71684a930286186aa10fef266c304672e8f |
|
01-Jan-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Make the Dwarf3 CFI stack unwinding machinery work on arm-linux too. This is a first step towards making not be completely x86/amd64-linux specific, and so replaces some x86/amd64-specific stuff with more general constructions: * structure 'DiCfSI', into which the info is summarised, has been made target-specific (ugh), since the sets of registers to be unwound differ on different targets. * enum CfiReg and the CFIC_ constants have been expanded accordingly, to handle both arm and x86/amd64 registers. The abbreviation "IA" (Intel Architecture) has been used in a few places where the x86 and amd64 definitions are shared. * the CFI reader/summariser in readdwarf.c has been expanded & generalised appropriately. * the DiCfSI evaluator in debuginfo.c, VG_(use_CFI_info), has also been generalised appropriately. The main change is that instead of passing around triples of (IP, SP, BP) values, a new structure 'D3UnwindRegs' is passed around instead. This is defined differently for IA and ARM and succeeds in hiding at least some of the differences where we don't care about them. Note also, D3UnwindRegs duplicates, in purpose and structure, structure 'RegSummary' in priv_d3basics.h. This will be tidied up in due course. This commit almost certainly breaks stack unwinding on amd64-linux. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10986 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
59570ffbe31930ab4d678754daaeec0715117a3d |
|
01-Jan-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge from branches/ARM, all parts of the ARM-Linux port except for the changes to do with reading and using ELF and DWARF3 info. This breaks all targets except amd64-linux and x86-linux. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10982 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
88053266d843d6868865d2b07b2fea52029d6fbd |
|
12-Nov-2009 |
tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
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. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10938 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
588adeffafa8102adcfa7a1c035ae272b35cf86d |
|
16-Aug-2009 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
When generating XML output for suppressions, print the suppression both wrapped up in XML tags (as before) but also in plain text in a sequence of CDATA blocks. Normally only one, but in the worst case the raw data will have ]]> in it, in which case it needs to be split across two CDATA blocks. This apparently simple change involved a lot of refactoring of the suppression printing machinery: * in the core-tool iface, change "print_extra_suppression_info" (which prints any auxiliary info) to "get_extra_suppression_info", which parks the text in a caller-supplied buffer. Adjust tools to match. * VG_(apply_StackTrace): accept a void* argument, which is passed to each invokation of the functional parameter (a poor man's closure implementation). * move PRINTF_CHECK into put_tool_basics.h, where it should have been all along * move private printf-into-an-XArray-of-character functions from m_debuginfo into m_xarray, and make them public * gen_suppression itself: use all the above changes. Basically we always generate the plaintext version into an XArray. In text mode that's just printed. In XML mode, we print the XMLery as before, but the plaintext version is dumped into a CDATA block too. * update the Protocol 4 specification to match all this. This still isn't 100% right in the sense that the CDATA block data needs to be split across multiple blocks if it should ever contain the CDATA end mark "]]>". The Protocol 4 spec has this right even though the implementation currently doesn't. Fixes #191189. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10822 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
738856f99eea33d86ce91dcb1d6cd5b151e307ca |
|
15-Jul-2009 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge coregrind/ changes from branches/MESSAGING_TIDYUP r10464. This commit tidies up and rationalises what could be called the "messaging" system -- that part of V to do with presenting output to the user. In particular it brings significant improvements to XML output. Changes are: * XML and normal text output now have separate file descriptors, which solves longstanding problems for XML consumers caused by the XML output getting polluted by unexpected non-XML output. * This also means that we no longer have to hardwire all manner of output settings (verbosity, etc) when XML is requested. * The XML output format has been revised, cleaned up, and made more suitable for use by error detecting tools in general (various Memcheck-specific features have been removed). XML output is enabled for Ptrcheck and Helgrind, and Memcheck is updated to the new format. * One side effect is that the behaviour of VG_(message) has been made to be consistent with printf: it no longer automatically adds a newline at the end of the output. This means multiple calls to it can be used to build up a single line message; or a single call can write a multi-line message. The ==pid== preamble is automatically inserted at each newline. * VG_(message)(Vg_UserMsg, ..args..) now has the abbreviated form VG_(UMSG)(..args..); ditto VG_(DMSG) for Vg_DebugMsg and VG_(EMSG) for Vg_DebugExtraMsg. A couple of other useful printf derivatives have been added to pub_tool_libcprint.h, most particularly VG_(vcbprintf). * There's a small change in the core-tool interface to do with error handling: VG_(needs_tool_errors) has a new method void (*before_pp_Error)(Error* err) which, if non-NULL, is called just before void (*pp_Error)(Error* err). This is to give tools the chance to look at errors before any part of them is printed, so they can print any XML preamble they like. * coregrind/m_errormgr.c has been overhauled and cleaned up, and is a bit simpler and more commented. In particular pp_Error and VG_(maybe_record_error) are significantly changed. The diff is huge, but mostly very boring. Most of the changes are of the form - VG_(message)(Vg_UserMsg, "this is a message %d", n); + VG_(message)(Vg_UserMsg, "this is a message %d\n", n); Unfortunately as a result of this, it touches a large number of source files. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10465 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
f76d27a697a7b0bf3b84490baf60623fc96a23af |
|
28-May-2009 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge the DARWIN branch onto the trunk. I tried using 'svn merge' to do the merge but it did a terrible job and there were bazillions of conflicts. So instead I just took the diff between the branch and trunk at r10155, applied the diff to the trunk, 'svn add'ed the added files (no files needed to be 'svn remove'd) and committed. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10156 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
3a4b58f812bb0dd4cdb20b2869629845a683191d |
|
08-May-2009 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix up some stack trace inconsistencies: - When printing suppressions, never print more entries than there are in the stack. This avoids bogus suppressions in some cases! (I haven't seen them on Linux, but I have seen them on Darwin.) - When getting a stack trace, stop if we get an IP of zero or one; that means we've hit the end of the stack. And don't include that entry in the stack trace, because it's a guaranteed "???" if it's ever printed which is useless. - In VG_(apply_StackTrace), we can now rely entirely on the n_ip parameter rather than looking for 0 or -1, because that check is done when the stack trace is first obtained. In other words, stack traces all use an n_ip parameter to record their size, whereas previously they used an odd mixture of n_ip and null-termination. - Rename 'n_ips' variables as 'max_n_ips' where appropriate; those left as 'n_ips' truly describe how many IPs there are in the stack trace. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9793 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
c8259b85b701d25d72aabe9dc0a8154517f96913 |
|
23-Apr-2009 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add support for reading Windows PDB debug info (symbols and line numbers) when Valgrind is running Wine. Modified version of a patch by John Reiser (vgsvn+wine-load-pdb-debuginfo.patch) with extensions to read a second format of line number tables. Wine uses a new client request, VG_USERREQ__LOAD_PDB_DEBUGINFO, to tell Valgrind when to read PDB info. Wine's implementation of module loading is vastly different from that used by ld-linux.so, and it is too difficult to recognize what is going on just by observing the calls to mmap and mprotect. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9580 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
9f207460d70d38c46c9e81996a3dcdf90961c6db |
|
10-Mar-2009 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Updated copyright years. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9344 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
6b7611bf42a0fbb62e047d8c43b008205bd21e75 |
|
11-Feb-2009 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Cleaned up the demangling mess: - Now more clearly distinguishing between C++-demangling, Z-demangling, and below-main renaming, particularly in 'get_sym_name'. - --demangle=no no longer prevents Z-demangling, which makes more sense, although it's unlikely to affect anyone. - Broke the circular dependency between m_demangle and m_debuginfo by moving below-main renaming into m_debuginfo. - Renamed some get_fnname_* functions to make their effect clearer, and improved their comments. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9138 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
6882443ef154bca367bc591287de641e43a9e108 |
|
10-Feb-2009 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Cleaned up the mess that was the treatment of "below main" functions such as '__libc_start_main', in Massif, m_debuginfo and m_stacktrace. As part of this, --show-below-main is now visible to tools, and Massif pays attention to it. Improved the description of --show-below-main=yes in the manual. Replaced some instances of "__libc_start_main" in the test *.exp files with "(below main)", which is what will actually be seen. Also updated scalar.stderr.exp*, which should make it get closer to actually passing. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9131 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
d68d3cf7419188b24899929c07e6ef6561e3665d |
|
24-Jan-2009 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
VG_(apply_StackTrace): following r8818, we should regard an entry of -1 as denoting the logical end of the stack. This change stops printing of a lot of junk below the logical "-1" end mark. See added comments for details. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9051 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
b1ae15d5c3ca2fb57cf1545debd62fc653ad2abf |
|
12-Dec-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This commit subtly changes the meaning of the values obtained via the stack unwind mechanism (the function VG_(record_ExeContext) et al), clears up some associated kludges, and makes suppression matching work more reliably. Prior to this commit, a stack snapshot contained, at [0], the IP of the relevant thread, and at all positions [1] and above, the return addresses for the open calls. When showing a snapshot to the user (in VG_(apply_StackTrace)), and searching the stack for stack blocks (in VG_(get_data_description)), 1 is subtracted from positions [1] and above, so as to move these return addresses back to the last byte of the calling instruction. This subtraction is also done even in VG_(get_StackTrace_wrk) itself, in order to make the stack unwinding work at all. It turns out that suppression-vs-function-name matching requires the same hack, and sometimes failed to match suppressions that should match, because of this self-same problem. So the commit changes the stack unwinder itself, so that entries [1] and above point to the last byte of the call instruction, rather than the return address. The associated kludges in VG_(apply_StackTrace) and VG_(get_StackTrace_wrk) are removed, and suppression matching is observed to work in a case where it failed before. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8818 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
f98e1c03ce4bea1fb092cdea5571c41f29f6df9b |
|
25-Oct-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge Helgrind from branches/YARD into the trunk. Also includes some minor changes to make stack unwinding on amd64-linux approximately twice as fast as it was before. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8707 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
a0b6b2cf9abc7b0d87be1215a245eaccc0452af9 |
|
07-Jul-2008 |
bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merged FORMATCHECK branch (r8368) to trunk. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8369 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
5fa87802b2b0934807a776d62ef5900177938cad |
|
03-May-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Make sure sp[0] and fp[0] are set in a rarely-taken path. Thanks to Bart for spotting this. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7994 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
d0c0ea6a15226a9895771e6038c530553c1e1b18 |
|
03-Mar-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
VG_(get_strace_wrk): don't segfault in the degenerate case fp_min = fp_max_orig = 0. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7551 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
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/coregrind/m_stacktrace.c
|
4d474d086188fd1f29fa97dbd84d8ea2e589a9b8 |
|
11-Feb-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates ("200X-2007" --> "200X-2008"). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7398 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
9084de7593a0c22f7aaeade0da5eb8a141a4e81f |
|
11-Feb-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Include headers for VG_(register_stack) calls. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7396 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
690c3c807be3571951400b98d5136437dd957b65 |
|
08-Feb-2008 |
tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Make the clone system call wrappers call VG_(register_stack) to record the new thread's stack, then make the stack unwinder use that information to make a better guess at the stack bounds. This helps avoid crashes trying to unwind the stack under wine when the starting point is a routine without a proper stack frame. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7383 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
5bdfbd29e26bc536c0779ec2e6b85bbb0ebd622c |
|
15-Dec-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
When allocating space for the client stack on Linux, take notice of the --max-stackframe value. This makes it possible to run programs with very large (primary) stack requirements simply by specifying --max-stackframe. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7300 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
39f3423cd68c385be301e6b44848b4c6276da7b5 |
|
10-Nov-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge (from branches/THRCHECK) the following amd64-linux stack unwind kludges^H^H^H^H^H^H^Henhancements: r6802: For VG_(record_ExeContext) et al, add a new parameter (first_ip_delta) which is added to the initial IP value before the stack is unwound. A safe value to pass is zero, which causes the existing behaviour to be unchanged. This is a kludge needed to work around the incomplete amd64 stack unwind info in glibc-2.5's clone() routine. r7059: Add a last-ditch heuristic-hack to the amd64-linux stack unwinder, which is used when all other methods fail. Seems like GDB has something similar. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7118 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
e4067233948a2d318838ad895702c26d780e5788 |
|
04-Oct-2007 |
dirk <dirk@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
readd right adjustment. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6948 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
6178038c23ffb8758886da3c47db7f6f1fcb110d |
|
01-Oct-2007 |
dirk <dirk@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
fix a few format string warnings git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6928 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
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/coregrind/m_stacktrace.c
|
9ebd6e0c607fa30301b1325874eb8de871c21cc5 |
|
08-Jan-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6488 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
15338c5237c0026aa0d87fc2c9cd7e665eea8fe2 |
|
17-Oct-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge r6123: Extensions for unwinding stacks on ppc32-aix5 and ppc64-aix5. Also, extend the mechanism developed for ppc64-linux for fishing return addresses out of the thread's redirection-stack when needed. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6261 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
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/coregrind/m_stacktrace.c
|
88d3ba8dff317169236d9776bfd8fb851e9346db |
|
13-Aug-2006 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Don't print more lines of a stack-trace than were obtained. Thanks to Bart Van Assche for spotting. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5999 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
e4b0bf07b0ee0a18eacc5aba91686ab5fc1d327b |
|
06-Jun-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5954 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
a672ea31b733495acf8aabe18a702d53d771f80e |
|
29-Apr-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Get rid of VG_(x86_linux_REDIR_FOR__dl_sysinfo_int80) and do the x86-linux stack unwind kludge another way. This is believed to fix #108258. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5868 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
eadcd86d1b0f59efed44c162ef4378ccfb528290 |
|
04-Apr-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Cleanup/restructure m_debuginfo, as described in coregrind/m_debuginfo/README.txt. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5823 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
cfb5e2bbc1675eceb9a644423a7216bebbd39886 |
|
19-Jan-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
ppc64-linux: apply the bogus-LR kludge in a second place. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5555 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
dfbaa229a894e121daa6bd143742222c2b3b68e9 |
|
18-Jan-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Make VG_(get_StackTrace2) aware of bogus LR values in replacement/wrapper functions on ppc64-linux, which otherwise mess up the backtraces. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5549 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
774453b46a65cecfd232f560c468d53293c39bcb |
|
17-Jan-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
The symbol table reader hides all that dot crazyness on ppc64-linux now. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5538 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
1a85f4f4e5e1ec2518137ffa9a6a9bf7d9c50df9 |
|
12-Jan-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix more ppc64-linux function wrapping and symbol-table bits and pieces. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5523 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
c0ec8e926d9676ec4c696899b9a8a467438149e6 |
|
25-Dec-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge in r5435 from COMPVBITS. Also added a note to docs/internals/performance.txt about it. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5438 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
db2ac81bd9aa4d57027cf0e416852664e18ec683 |
|
24-Dec-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Make ppc64-linux stack unwinding work. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5424 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
bcd75fcb80c13b9828a4c33b0d7acf1499e14135 |
|
19-Dec-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove all remaining profiling gunk. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5388 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
2c48c7b0a453d32375a4df17e153011b797ef28c |
|
29-Nov-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add framework for ppc64 support. Apologies in advance for the inevitable breakage to other platforms. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5250 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
2683716832a3ccb775364127a9315b0048bc4f9e |
|
17-Nov-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
I couldn't resist git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5177 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
73cf4c695bda486bb54a92e376eb0c12fa58d307 |
|
17-Nov-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Make VG_(apply_StackTrace) stop if it looks like we've overshot main(). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5170 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
75ea798c1eabd31eb50d13f77cf751c378eb8c10 |
|
14-Nov-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Separate the stack unwind logic for amd64 and x86, so that they can be differently performance-tuned. amd64 needs to consult CFI first and then if that fails (unlikely) follow the %rbp chain. On x86, the CFI is almost never helpful, but consulting it first wastes significant time in allocation-intensive programs. This commit pulls the two archs apart and puts the CFI check second on x86. This reduces start time for ktuberling on x86 on memcheck from 78 seconds to 75. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5126 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
525e23205e44eeac190500c7d7c842339b711460 |
|
13-Nov-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
ppc32 stack unwind: if the initial FP looks bad, don't use it. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5111 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
ac35f10efd696c5a0a3e80e3d15cd7af846ea531 |
|
05-Nov-2005 |
tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add a comment documenting the reason for subtracting one from the IP value after each pass of the loop. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5012 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
121d1d082678d9f50ac50f66c93f23122c31739b |
|
04-Nov-2005 |
tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
When unwinding the stack on x86/amd64 subtract one from the value of ip before starting a new pass of the loop. The reason for this is that (except for the first pass of the loop) the value of ip is actually a return address, which is therefore after the instruction that was executing at the time. This means that if there is a boundary in the CFI information at that point we can wind up using the wrong CFI data to do the next unwind if we do it based on the return address. This most commonly happens with a tail call where we wind up using the data for the next function to do the unwind and getting hopelessly lost. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4996 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
45f4e7c91119c7d01a59f5e827c67841632c9314 |
|
27-Sep-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This commit merges in changes from branches/ASPACEM (specifically, changes from r4341 through r4787 inclusive). That branch is now dead. Please do not commit anything else to it. For the most part the merge was not troublesome. The main areas of uncertainty are: - build system: I had to import by hand Makefile.core-AM_CPPFLAGS.am and include it in a couple of places. Building etc seems to still work, but I haven't tried building the documentation. - syscall wrappers: Following analysis by Greg & Nick, a whole lot of stuff was moved from -generic to -linux after the branch was created. I think that is satisfactorily glued back together now. - Regtests: although this appears to work, no .out files appear, which is strange, and makes it hard to diagnose regtest failures. In particular memcheck/tests/x86/scalar.stderr.exp remains in a conflicted state. - amd64 is broken (slightly), and ppc32 will be unbuildable. I'll attend to the former shortly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4789 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
2a3b92963529fdaedec08fcedf54cb4008ccde39 |
|
24-Aug-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
avoid compiler warning git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4484 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
64ab429accde03f7f7435202514971eb89d268bf |
|
19-Aug-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
rm now-redundant macros. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4465 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
acaec5fd0a53ebd20fded3651169085bc7e90e78 |
|
19-Aug-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Incorporate a patch from Craig Chaney which gives better stack snapshots on ppc32-linux in the presence of functions subject to leaf-function optimisations. At the same time, simplify the stack unwinding logic by basically implementing it separately for each target. Having a single piece of logic for amd64 and x86 was tenable, but merging ppc32 into it is too confusing. So now there is an x86/amd64 unwinder and a ppc32 unwinder. This requires plumbing a link-register value into VG_(get_StackTrace2), and that in turn requires passing it around several other stack-trace-related functions. Hence 7 changed files. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4464 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
49b45ba90382fd313e40555559f5f5aaa23033b4 |
|
20-Jul-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Reinstate stack trace printing on assertion failures. It's terrible for the module dependency graph, but it's very useful. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4205 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
6bb0d35cbace84ea7e4f7646f13ed7c6ac75cb87 |
|
19-Jul-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove unneeded #ifdef. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4175 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
9680ed942dfb0356f79fbb643f3b5732a8b78d12 |
|
10-Jul-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix up ppc32-linux stack unwinding. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4141 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
88c5148fdd9c4315038de8b15f51b633fbc69bfe |
|
25-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Made m_debuginfo not depend on m_aspacemgr, breaking the direct circular dependence between them. (There's still an indirect one via m_libcmman.) As a result, I was able to move the Segment type declaration into pub_core_aspacemgr.h, which is a much better spot. I was also able to remove a couple of #includes. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4025 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
5953c10f80350fc2b2749a7444362fb382d95295 |
|
25-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
avoid compiler warning git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4022 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
af839f52d74df156d655201a889954133ab01be7 |
|
23-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Removed the VGA_/VGO_/VGP_ prefixes for arch/OS/platform-specific things. These made sense when the arch/OS/platform-specific code was in one module, but as that code got mixed in with generic code the boundary between generic and non-generic blurred, and the distinction made less sense. So let's get rid of them. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4002 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
b9bce63768e46a4db0e09c7bc5279fcdd054d19d |
|
21-Jun-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Simplify the implementation of m_trampoline and the stuff that refers to it. Now there are no more offsets and no copying of code into the stack. We just redirect directly to entry points in m_syscalls.S. This will mess up pointercheck, since the redirect targets are now in Valgrind's address space, not the client's. But pointercheck is hosed anyway, and I'd rather back off to something simple whilst ppc32 is stabilised. When the address space management stuff is overhauled then pointercheck may or may not get reinstated, and if it does then the trampoline stuff will need revisiting. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3977 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
899ce73b9eb1f679562e93f8e5c162aa049413f1 |
|
21-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Don't #include pub_core_debuginfo.h in pub_core_aspacemgr.h. So have to #include it explicitly in lots of other places, but at least the dependency is clear now. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3974 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
85665ca6fa29dd64754dabe50eb98f25896e752a |
|
20-Jun-2005 |
cerion <cerion@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Finally, valgrind on ppc32. Plenty still to do, but simple programs like ls seem to run ok Thanks, Paul, for having your ppc port of valgrind 2.4 to work from! git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3969 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
24a6efb2f94eb0cb5d53174d580e1dc00893a6d6 |
|
20-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove some unnecessary #includes, comment some others. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3966 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
7d2a9c418d3a17079d3ea30a987b07456b803dc2 |
|
19-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Put VG_(client_trampoline_code) in m_trampoline. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3961 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
c7561b931e249acf3768ead77638545b0ccaa8f1 |
|
19-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Final commit for the initial modularisation pass: - Broke part of m_scheduler off into a new module m_threadstate. It contains ThreadState, VG_(threads)[] and some basic operations on the thread table. All simple stuff, the complex stuff stays in m_scheduler. This avoids lots of circular dependencies between m_scheduler and other modules. - Managed to finally remove core.h and tool.h, double hurrah! - Introduced pub_tool_basics.h and pub_core_basics.h, one of which is include by every single C file. - Lots of little cleanups and changes related to the above. - I even did a small amount of documentation updating. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3944 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
a7598f6889c553cc35d7d774c465a2bef7414350 |
|
18-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Moved the code trampoline stuff into a new module, m_trampoline. Not certain this was the right thing to do, but that stuff sure as hell didn't fit in any of the existing modules. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3929 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
f536bbbd4bf2024926574c5ed99b3e6251c6ff44 |
|
13-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Created m_machine, for various machine-related things. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3903 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
83f9e797e6b131b47bc729b0277e4383548394a7 |
|
11-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove VG_ERRTXT_LEN from core.h. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3886 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
132bfccd21960e462352175f8553a5bdce8a210c |
|
04-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Modularised assertions and panics in m_libcassert. As part of this, killed the VG_STRINGIFY macro, which was used to expand out names like "VG_(foo)" and "vgPlain_foo" in assertion failure messages. This is good since we actually want the "VG_(foo)" form used in these messages. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3842 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
36a20fa5f779a0a6fb7b4a90dcaa6376481f1faa |
|
03-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Modularise printing functions in m_libcprint. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3840 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
97405b2d134b52880d6dbec3eb2929e2002c2542 |
|
02-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Started modularising vg_mylibc. Put all the standalone stuff -- ie. not relying on any other modules -- in m_libcbase. Also converted the 'size' parameters to functions like VG_(memcpy) and VG_(strncpy) from Int to SizeT, as they should be. Also removed VG_(atoll16) and VG_(toupper), which weren't being used. Also made VG_(atoll36) less flexible -- it now only does base-36 numbers instead of any base in the range 2..36, since base-36 is the only one we need. As part of that, I fixed a horrible bug in it which caused it to return incorrect answers for any number containing the digits 'A'..'I'! (Eg. for "A; it would return 17 instead of 10!) Had to disable the assertions in VG_(string_match), since this module can't see vg_assert, which wasn't ideal but also isn't a disaster. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3838 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
31513b4ab8477029517f07f0dcf1b441cb818548 |
|
01-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Modularised the profiling stuff as m_profile.c. It's much more sensible now -- no vg_dummy_profile.c, no silly #including of vg_profile.c from tools. Unfortunately, it still doesn't work, due to bad interactions with signal handling that I don't understand. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3833 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
04e1698d9f92df36742be7c1e0fefb9af1c5b1bd |
|
31-May-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Modularised vg_main.c as m_main.c. Moved some stuff out of it to reduce the number of files that depend on it, but there are still some which should be removed in the future. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3819 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
71bc3cbb1b6da72fe1d3a9fea90e53847c5b0a6f |
|
19-May-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
First pass at adding ability for Memcheck to print all output in XML form. The relevant flag is --xml=yes. Currently this only works with Memcheck. Specifying this flag fixes various other options relating to verbosity and behaviour of the leak checker, so that the resulting output is in a relatively fixed form suitable for parsing by GUIs. Still to do: * Add mechanism to show error counts * Add regression test * Document the resulting format git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3773 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
2024234c590f408994b373abfb00bc2cd2a90c48 |
|
17-May-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Added module m_options for holding all the command-line option stuff. Perhaps parts of process_cmd_line_option() should go in here, but I've not done that for now. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3751 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
0b954fda7fb47664affffcabee4b48e01a8feecb |
|
16-May-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix comment. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3737 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
88b5a984dacf137023184de51c6f2ffa6783249e |
|
16-May-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Moved the stack-walking macros into m_stacktrace. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3732 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
a60a7c1e253ae622f18530386a1ff5f545b835ac |
|
08-May-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Rename some _SIZE macros as _SZB to make their units clear. This change is in response to a mixed-units (bytes and words) error we had involving VGA_STACK_REDZONE_SIZE (which is now VGA_STACK_REDZONE_SZB). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3639 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
520e349d5db7eac94a172dcbfc0135fbbbcd1678 |
|
02-May-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
rm debug printing git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3593 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
35165537cfa2da18220e55e23f21228c1e2591fe |
|
30-Apr-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Get the CFI-based frame-unwinder to the point where it works at least for small examples on x86. Still messy, slow, amd64 specifics not done, and non-null cie.augmentations are not handled. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3582 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|
267100d2a8495dd214d4f55351c469c23a18391d |
|
24-Apr-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Rename the first three modules as per naming scheme. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3555 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_stacktrace.c
|