| Summary: | Valgrind does not display debug information about stack variables on powerpc-linux | ||
|---|---|---|---|
| Product: | [Developer tools] valgrind | Reporter: | Bart Van Assche <bart.vanassche+kde> |
| Component: | general | Assignee: | Julian Seward <jseward> |
| Status: | CONFIRMED --- | ||
| Severity: | normal | CC: | will_schmidt |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | openSUSE | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
Version: (using KDE 4.1.4) Compiler: gcc 4.1.2 gcc version 4.1.2 20070502 (Red Hat 4.1.2-12) OS: Linux Installed from: SuSE RPMs One of the new features in Valgrind 3.4.0 is that tools can obtain debug information about variables through VG_(get_data_description)(). Apparently this information is available on x86 but not on ppc. $ uname -a Linux cell11 2.6.22-5.20070920bsc #1 SMP Tue Sep 25 10:49:16 CEST 2007 ppc64 ppc64 ppc64 GNU/Linux $ perl tests/vg_regtest helgrind/tests/hg05_race2 hg05_race2: valgrind --read-var-info=yes ./hg05_race2 *** hg05_race2 failed (stderr) *** == 1 test, 1 stderr failure, 0 stdout failures, 0 post failures == helgrind/tests/hg05_race2 (stderr) $ cat helgrind/tests/hg05_race2.stderr.diff --- hg05_race2.stderr.exp 2009-07-26 03:19:11.000000000 -0400 +++ hg05_race2.stderr.out 2009-07-26 03:55:29.000000000 -0400 @@ -17,8 +17,6 @@ at 0x........: th (hg05_race2.c:17) by 0x........: mythread_wrapper (hg_intercepts.c:...) ... - Location 0x........ is 0 bytes inside foo.poot[5].plop[11], - declared at hg05_race2.c:24, in frame #x of thread x Possible data race during write of size 4 at 0x........ by thread #x at 0x........: th (hg05_race2.c:17) @@ -28,7 +26,5 @@ at 0x........: th (hg05_race2.c:17) by 0x........: mythread_wrapper (hg_intercepts.c:...) ... - Location 0x........ is 0 bytes inside foo.poot[5].plop[11], - declared at hg05_race2.c:24, in frame #x of thread x ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) $ ./vg-in-place -v --tool=helgrind --read-var-info=yes helgrind/tests/hg05_race2 ==16108== Helgrind, a thread error detector. ==16108== Copyright (C) 2007-2009, and GNU GPL'd, by OpenWorks LLP et al. ==16108== Using Valgrind-3.5.0.SVN and LibVEX; rerun with -h for copyright info ==16108== --16108-- Command line --16108-- helgrind/tests/hg05_race2 --16108-- Startup, with flags: --16108-- -v --16108-- --tool=helgrind --16108-- --read-var-info=yes --16108-- Contents of /proc/version: --16108-- Linux version 2.6.22-5.20070920bsc (jordics@blade.bsc.es) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-51)) #1 SMP Tue Sep 25 10:49:16 CEST 2007 --16108-- Arch and hwcaps: PPC64, ppc64-int-flt-vmx-FX-GX --16108-- Page sizes: currently 65536, max supported 65536 --16108-- Valgrind library directory: /home/bart/software/valgrind-ppc/./.in_place --16108-- Reading syms from /net/home/bart/software/valgrind-ppc/helgrind/tests/hg05_race2 (0x10000000) --16108-- Reading syms from /net/home/bart/software/valgrind-ppc/helgrind/helgrind-ppc64-linux (0x38000000) --16108-- object doesn't have a dynamic symbol table --16108-- Reading syms from /lib64/ld-2.6.so (0x8081110000) --16108-- Reading suppressions file: /home/bart/software/valgrind-ppc/./.in_place/default.supp --16108-- Reading syms from /net/home/bart/software/valgrind-ppc/coregrind/vgpreload_core-ppc64-linux.so (0x4000000) --16108-- Reading syms from /net/home/bart/software/valgrind-ppc/helgrind/vgpreload_helgrind-ppc64-linux.so (0x4020000) --16108-- REDIR: 0x8081133eb0 (strcmp) redirected to 0x402975c (strcmp) --16108-- REDIR: 0x8081135020 (memcpy) redirected to 0x4029a40 (memcpy) --16108-- Reading syms from /lib64/libpthread-2.6.so (0x8081410000) --16108-- Reading syms from /lib64/libc-2.6.so (0x8081160000) --16108-- REDIR: 0x8081211e20 (memcpy) redirected to 0x40297d8 (memcpy) --16108-- REDIR: 0x808120f4a4 (index) redirected to 0x4029360 (index) --16108-- REDIR: 0x808141ad60 (pthread_create@@GLIBC_2.3) redirected to 0x402ad60 (pthread_create@*) --16108-- REDIR: 0x808120a540 (calloc) redirected to 0x4024790 (calloc) --16108-- REDIR: 0x808120c140 (realloc) redirected to 0x402587c (realloc) --16108-- REDIR: 0x808120be90 (free) redirected to 0x40252e0 (free) ==16108== Thread #3 was created ==16108== at 0x8081277A94: clone (in /lib64/libc-2.6.so) ==16108== by 0x808141ABCB: do_clone (in /lib64/libpthread-2.6.so) ==16108== by 0x808141B0CF: pthread_create@@GLIBC_2.3 (in /lib64/libpthread-2.6.so) ==16108== by 0x402AC9B: pthread_create_WRK (hg_intercepts.c:218) ==16108== by 0x402AD77: pthread_create@* (hg_intercepts.c:249) ==16108== by 0x100006E3: main (hg05_race2.c:29) ==16108== ==16108== Thread #2 was created ==16108== at 0x8081277A94: clone (in /lib64/libc-2.6.so) ==16108== by 0x808141ABCB: do_clone (in /lib64/libpthread-2.6.so) ==16108== by 0x808141B0CF: pthread_create@@GLIBC_2.3 (in /lib64/libpthread-2.6.so) ==16108== by 0x402AC9B: pthread_create_WRK (hg_intercepts.c:218) ==16108== by 0x402AD77: pthread_create@* (hg_intercepts.c:249) ==16108== by 0x100006B7: main (hg05_race2.c:27) ==16108== ==16108== Possible data race during read of size 4 at 0x7ff00ee08 by thread #3 ==16108== at 0x10000650: th (hg05_race2.c:17) ==16108== by 0x402AE63: mythread_wrapper (hg_intercepts.c:194) ==16108== by 0x808141B917: start_thread (in /lib64/libpthread-2.6.so) ==16108== by 0x8081277ADB: clone (in /lib64/libc-2.6.so) ==16108== This conflicts with a previous write of size 4 by thread #2 ==16108== at 0x10000664: th (hg05_race2.c:17) ==16108== by 0x402AE63: mythread_wrapper (hg_intercepts.c:194) ==16108== by 0x808141B917: start_thread (in /lib64/libpthread-2.6.so) ==16108== by 0x8081277ADB: clone (in /lib64/libc-2.6.so) ==16108== ==16108== Possible data race during write of size 4 at 0x7ff00ee08 by thread #3 ==16108== at 0x10000664: th (hg05_race2.c:17) ==16108== by 0x402AE63: mythread_wrapper (hg_intercepts.c:194) ==16108== by 0x808141B917: start_thread (in /lib64/libpthread-2.6.so) ==16108== by 0x8081277ADB: clone (in /lib64/libc-2.6.so) ==16108== This conflicts with a previous write of size 4 by thread #2 ==16108== at 0x10000664: th (hg05_race2.c:17) ==16108== by 0x402AE63: mythread_wrapper (hg_intercepts.c:194) ==16108== by 0x808141B917: start_thread (in /lib64/libpthread-2.6.so) ==16108== by 0x8081277ADB: clone (in /lib64/libc-2.6.so) --16108-- REDIR: 0x808141bdf0 (pthread_join) redirected to 0x40268e0 (pthread_join) --16108-- REDIR: 0x808141d290 (pthread_mutex_lock) redirected to 0x4026c10 (pthread_mutex_lock) --16108-- REDIR: 0x808141f170 (pthread_mutex_unlock) redirected to 0x40271d4 (pthread_mutex_unlock) ==16108== ==16108== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 11 from 2) ==16108== ==16108== 1 errors in context 1 of 2: ==16108== Possible data race during write of size 4 at 0x7ff00ee08 by thread #3 ==16108== at 0x10000664: th (hg05_race2.c:17) ==16108== by 0x402AE63: mythread_wrapper (hg_intercepts.c:194) ==16108== by 0x808141B917: start_thread (in /lib64/libpthread-2.6.so) ==16108== by 0x8081277ADB: clone (in /lib64/libc-2.6.so) ==16108== This conflicts with a previous write of size 4 by thread #2 ==16108== at 0x10000664: th (hg05_race2.c:17) ==16108== by 0x402AE63: mythread_wrapper (hg_intercepts.c:194) ==16108== by 0x808141B917: start_thread (in /lib64/libpthread-2.6.so) ==16108== by 0x8081277ADB: clone (in /lib64/libc-2.6.so) ==16108== ==16108== 1 errors in context 2 of 2: ==16108== Possible data race during read of size 4 at 0x7ff00ee08 by thread #3 ==16108== at 0x10000650: th (hg05_race2.c:17) ==16108== by 0x402AE63: mythread_wrapper (hg_intercepts.c:194) ==16108== by 0x808141B917: start_thread (in /lib64/libpthread-2.6.so) ==16108== by 0x8081277ADB: clone (in /lib64/libc-2.6.so) ==16108== This conflicts with a previous write of size 4 by thread #2 ==16108== at 0x10000664: th (hg05_race2.c:17) ==16108== by 0x402AE63: mythread_wrapper (hg_intercepts.c:194) ==16108== by 0x808141B917: start_thread (in /lib64/libpthread-2.6.so) ==16108== by 0x8081277ADB: clone (in /lib64/libc-2.6.so) ==16108== --16108-- supp: 9 helgrind-glibc2X-001 --16108-- supp: 2 helgrind-glibc2X-112 ==16108== ==16108== IN SUMMARY: 2 errors from 2 contexts (suppressed: 11 from 2) ==16108== WordSet "univ_tsets": addTo 0 (0 uncached) delFrom 0 (0 uncached) union 0 intersect 0 (0 uncached) [nb. incl isSubsetOf] minus 0 (0 uncached) elem 0 doubleton 0 isEmpty 0 isSingleton 0 anyElementOf 0 isSubsetOf 0 WordSet "univ_lsets": addTo 32 (1 uncached) delFrom 32 (1 uncached) union 0 intersect 1 (0 uncached) [nb. incl isSubsetOf] minus 0 (0 uncached) elem 16 doubleton 0 isEmpty 16 isSingleton 0 anyElementOf 0 isSubsetOf 1 WordSet "univ_laog": addTo 0 (0 uncached) delFrom 0 (0 uncached) union 0 intersect 0 (0 uncached) [nb. incl isSubsetOf] minus 0 (0 uncached) elem 0 doubleton 0 isEmpty 0 isSingleton 0 anyElementOf 0 isSubsetOf 0 locksets: 2 unique lock sets threadsets: 1 unique thread sets univ_laog: 1 unique lock sets LockN-to-P map: 0 queries (0 map size) string table map: 0 queries (0 map size) LAOG: 0 map size LAOG exposition: 0 map size locks: 16 acquires, 16 releases sanity checks: 1 <<< BEGIN libhb stats >>> secmaps: 2,945 allocd ( 24,125,440 g-a-range) linesZ: 376,960 allocd ( 18,094,080 bytes occupied) linesF: 0 allocd ( 0 bytes occupied) secmaps: 0 iterator steppings secmaps: 389,047 searches ( 7,061 slow) cache: 70,770 totrefs (2,794 misses) cache: 2,794 Z-fetch, 0 F-fetch cache: 80 Z-wback, 0 F-wback cache: 1 invals, 0 flushes cache: 24,963,828 arange_New 24,878,400 direct-to-Zreps cline: 2,794 normalises cline: c rds 8/4/2/1: 12,769 1,409 524 6,207 cline: c wrs 8/4/2/1: 17,125 899 16 735 cline: s wrs 8/4/2/1: 31,094 1 0 0 cline: s rd1s 0, s copy1s 0 cline: splits: 8to4 78 4to2 73 2to1 141 cline: pulldowns: 8to4 3,579 4to2 3,127 2to1 3,770 libhb: 20,634 msmcread (2,674 changed) libhb: 18,758 msmcwrite (906 changed) libhb: 3,282 cmpLEQ queries (108 misses) libhb: 2,718 join2 queries (126 misses) libhb: 45 entries in vts_table (approximately 1080 bytes) libhb: 45 entries in vts_set libhb: ctxt__rcdec: 1=1565(607 eq), 2=2, 3=0 libhb: ctxt__rcdec: calls 1567, discards 0 libhb: contextTab: 196613 slots, 1537 max ents libhb: contextTab: 3580 queries, 2051 cmps <<< END libhb stats >>> --16108-- translate: fast SP updates identified: 0 ( 0.0%) --16108-- translate: generic_known SP updates identified: 112 ( 71.3%) --16108-- translate: generic_unknown SP updates identified: 45 ( 28.6%) --16108-- tt/tc: 3,694 tt lookups requiring 3,719 probes --16108-- tt/tc: 3,694 fast-cache updates, 4 flushes --16108-- transtab: new 1,735 (52,580 -> 558,908; ratio 106:10) [0 scs] --16108-- transtab: dumped 0 (0 -> ??) --16108-- transtab: discarded 8 (400 -> ??) --16108-- scheduler: 31,342 jumps (bb entries). --16108-- scheduler: 0/2,124 major/minor sched events. --16108-- sanity: 1 cheap, 1 expensive checks. --16108-- exectx: 769 lists, 290 contexts (avg 0 per list) --16108-- exectx: 378 searches, 150 full compares (396 per 1000) --16108-- exectx: 0 cmp2, 63 cmp4, 0 cmpAll --16108-- errormgr: 11 supplist searches, 111 comparisons during search --16108-- errormgr: 13 errlist searches, 63 comparisons during search