|
From: lemmel <le...@gm...> - 2007-03-03 15:49:14
|
Hi,
I'm a desperate house developper : I can't get the suppression of some errors.
Look at the following step :
I run valgrind in order to find potential problem :
$ valgrind --suppressions=./common_QT_X.supp --gen-suppressions=yes bin/laseqi1
then I have the classical :
==9972== ---- Print suppression ? --- [Return/N/n/Y/y/C/c] ----
I ask the print suppression and I have :
{
<insert a suppression name here>
Memcheck:Addr1
fun:_vgrZU_libcZdsoZa_strlen
fun:archive_read_extract
fun:_ZN16ArchiveManagment17extractionOneFileERK7QStringP7archiveP13archive_entry
fun:_ZN16ArchiveManagment14extractionFileERK7QStringS2_
fun:_ZN11ArchiveFile17uncompressArchiveERK7QString
fun:_ZN8EparFile12openReadFileERK7QString
fun:_ZN20ParadigmFilesManager17addParadigmFileAtERK7QStringj
fun:_ZN11SessionList7addDataERK8QVariantS2_
fun:_ZN13RunListWidget7addDataERK7QStringS2_
fun:_ZN10MainWindow14btnAdd_pressedEv
fun:_ZN10MainWindow11qt_metacallEN11QMetaObject4CallEiPPv
fun:_ZN11QMetaObject8activateEP7QObjectiiPPv
}
and I "cat" this suppression text into a file : test
I hit the "c" key and quit the application. Then I re-run valgrind :
$ valgrind --suppressions=./test --suppressions=./common_QT_X.supp --gen-suppressions=yes bin/laseqi1
and then :
==10100== ---- Print suppression ? --- [Return/N/n/Y/y/C/c] ----
{
<insert a suppression name here>
Memcheck:Addr1
fun:_vgrZU_libcZdsoZa_strlen
fun:archive_read_extract fun:_ZN16ArchiveManagment17extractionOneFileERK7QStringP7archiveP13archive_entry
fun:_ZN16ArchiveManagment14extractionFileERK7QStringS2_
fun:_ZN11ArchiveFile17uncompressArchiveERK7QString
fun:_ZN8EparFile12openReadFileERK7QString
fun:_ZN20ParadigmFilesManager17addParadigmFileAtERK7QStringj
fun:_ZN11SessionList7addDataERK8QVariantS2_
fun:_ZN13RunListWidget7addDataERK7QStringS2_
fun:_ZN10MainWindow14btnAdd_pressedEv
fun:_ZN10MainWindow11qt_metacallEN11QMetaObject4CallEiPPv
fun:_ZN11QMetaObject8activateEP7QObjectiiPPv
}
the same error.
When I use the v flag with valgrind, I can see that the suppression file is correctly loaded :
--10122-- --suppressions=/usr/lib/valgrind/debian-libc6-dbg.supp
--10122-- -v
--10122-- --suppressions=./test
--10122-- --suppressions=./common_QT_X.supp
--10122-- --gen-suppressions=yes
[...]
--10122-- Reading suppressions file: /usr/lib/valgrind/debian-libc6-dbg.supp
--10122-- Reading suppressions file: ./test
--10122-- Reading suppressions file: ./common_QT_X.supp
--10122-- Reading suppressions file: /usr/lib/valgrind/default.supp
Someone has an idea ?
P.S. :
valgrind : 3.2.1-1
==10122== Memcheck, a memory error detector.
==10122== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
==10122== Using LibVEX rev 1658, a library for dynamic binary translation.
==10122== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
==10122== Using valgrind-3.2.1-Debian, a dynamic binary instrumentation framework.
==10122== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
|
|
From: Bart V. A. <bar...@gm...> - 2007-03-03 15:58:48
|
On 3/3/07, lemmel <le...@gm...> wrote: > Hi, > I'm a desperate house developper : I can't get the suppression of some errors. Can you please retest with the latest Valgrind version (3.2.3) ? If I remember correctly there have been some fixes with regard to error suppression. Bart Van Assche. |
|
From: lemmel <le...@gm...> - 2007-03-03 16:39:00
|
> Can you please retest with the latest Valgrind version (3.2.3) ? If I > remember correctly there have been some fixes with regard to error > suppression. Sorry for the buzz. With this version (in unstable at debian), all run perfectly. Thanks :-) |
|
From: Patrick O. <pat...@in...> - 2007-03-05 08:03:55
|
On Sat, 2007-03-03 at 16:48 +0100, lemmel wrote: > Hi, > I'm a desperate house developper : I can't get the suppression of some errors. > > Look at the following step : > > I run valgrind in order to find potential problem : > $ valgrind --suppressions=./common_QT_X.supp --gen-suppressions=yes bin/laseqi1 > > then I have the classical : > ==9972== ---- Print suppression ? --- [Return/N/n/Y/y/C/c] ---- > I ask the print suppression and I have : [...] > and I "cat" this suppression text into a file : test > I hit the "c" key and quit the application. Then I re-run valgrind : > > $ valgrind --suppressions=./test --suppressions=./common_QT_X.supp --gen-suppressions=yes bin/laseqi1 > > and then : > ==10100== ---- Print suppression ? --- [Return/N/n/Y/y/C/c] ---- [...] > > the same error. Are you sure the error is not suppressed? If I remember correctly, the last time I worked on suppressions I noticed that with --gen-suppressions=all valgrind suppressed the error report and then printed a suppression although the error was already suppressed. I'm not sure whether that is intentional. It was easy enough to deal with: only suppressions generated after an error report are really new. If there is a chance to not print redundant suppressions, that's what I would prefer, though. Along the same line is the situation where exactly the same problem is triggered multiple times. Only on the first occasion should the suppression be copied; this has to be detected manually. Perhaps valgrind could make life easier for users by a) not printing suppressions for suppressed problems and b) automatically add a printed suppression to the current run so that future occurrences do not print another redundant suppression? -- Best Regards, Patrick Ohly The content of this message is my personal opinion only and although I am an employee of Intel, the statements I make here in no way represent Intel's position on the issue, nor am I authorized to speak on behalf of Intel on this matter. |