|
From: <gre...@pl...> - 2004-12-09 22:04:16
|
One of our programs which used to work ok with valgrind has started having problems. Some of our code calls pthread_self and gets a return of zero which (according to the valgrind source) can't happen (no error is printed). We also get this error at pretty much the same time from other threads. ==11835== Thread 2: ==11835== Conditional jump or move depends on uninitialised value(s) ==11835== at 0x1CCA2843: thread_wrapper (vg_libpthread.c:836) ==11835== by 0xB000EFE2: do__quit (vg_scheduler.c:1872) ==11835== ==11835== Thread 2: ==11835== Conditional jump or move depends on uninitialised value(s) ==11835== at 0x1CCA2857: thread_wrapper (vg_libpthread.c:839) ==11835== by 0xB000EFE2: do__quit (vg_scheduler.c:1872) Near as I can tell, the dynamic linker is searching /lib/tls/libc.so before it searches the valgrind pthreads.so. It appears that a lot of pthread calls are satisfied from this libc.so while the pthreads attribute setting/initialization stuff is satisfied from the valgrind library. It has been a while since I tried to valgrind this code, my machine got updated from RedHat 9 to Fedora Core 1. The current kernel is 2.4.22-1.2199.nptlsmp, gcc 3.3.2 Anyone know of a way to fix this? |