|
From: Christoph B. <bar...@or...> - 2007-06-13 08:09:00
|
Am Mittwoch, 13. Juni 2007 schrieb Stephane Hockenhull: > I dont know if this is a known issue, a problem with our code, or an (up to > now) unknown bug in valgrind. > > on a few projects we're working on that are using both threads and fibers, > valgrind starts to spew tons of error of invalid access in the middle of > allocated objects that has definitely not been freed, such as: > > ==22128== 6 errors in context 51 of 185: > ==22128== Thread 1: > ==22128== Invalid read of size 4 > ==22128== at 0x4047C80: pthread_cond_signal@@GLIBC_2.3.2 > (in /lib/libpthread-2.4.so) > ==22128== by 0x8053D74: DriverProcess(LDI_PATCHER*, unsigned, unsigned) > (patcher.cpp:820) > ==22128== by 0x804C4EC: Main_Loop() (main_loop.cpp:59) > ==22128== by 0x804C967: main (base_kernel.cpp:154) > ==22128== Address 0x6F68D08 is 736 bytes inside a block of size 788 > alloc'd ==22128== at 0x402192C: operator new[](unsigned) > (vg_replace_malloc.c:195) Valgrind does not complain that the objects are already freed. Are you sure that all objects are correctly initialized? For example the mutex and the condition variable used here? Christoph |