From: Lee, D. <Di...@ch...> - 2008-04-10 01:46:34
|
1. helgrind does not show anything wrong 2. When I using exp-drd to check my program.,it exit at the beginning and report: **************** log start ***************** exp-drd: drd_suppression.c:127 (drd_suppression_stop_using_mem): Assertion 'a1 < a2' failed. ==11890== at 0x3800D32D: report_and_quit (m_libcassert.c:140) ==11890== by 0x3800D631: vgPlain_assert_fail (m_libcassert.c:200) ==11890== by 0x38005A18: drd_suppression_stop_using_mem (drd_suppression.c:127) ==11890== by 0x38004391: drd___builtin_delete (drd_malloc_wrappers.c:146) ==11890== by 0x380292D7: do_client_request (scheduler.c:1269) ==11890== by 0x3802A7CB: vgPlain_scheduler (scheduler.c:979) ==11890== by 0x3803E028: run_a_thread_NORETURN (syswrap-linux.c:89) sched status: running_tid=1 Thread 1: status = VgTs_Runnable ==11890== at 0x4004E2C: operator delete(void*) (vg_replace_malloc.c:342) ==11890== by 0x3DA678: CppUnit::TestSuiteBuilderContextBase::~TestSuiteBuilderContextBase() (in /usr/lib/libcppunit-1.12.so.0.0.0) ==11890== by 0x8061862: ...... ==11890== by 0x805883D: main (main.cpp:22) **************** log end ***************** 3. I found a typo in valgrind-3.3.0/exp-drd/docs/README.txt ********************************* How to use DRD -------------- To use this tool, specify --tool=drd on the Valgrind command line. ********************************* Actually, it should be run as --tool=exp-drd ________________________________________ From: Bart Van Assche [bar...@gm...] Sent: Wednesday, April 09, 2008 3:06 PM To: Lee, Dio Cc: val...@li... Subject: Re: [Valgrind-users] Why valgrind hang-up my program? On Wed, Apr 9, 2008 at 8:30 AM, Lee, Dio <Di...@ch...> wrote: > It's multithreaded. Programs run slower under memcheck than native, which may trigger deadlocks in improperly written programs. Did you already analyze your program via helgrind's locking order checking or via exp-drd's synchronization operation tracing options ? Bart. |