[Insight-developers] valgrind & ITK
Matt McCormick
matt.mccormick at kitware.com
Thu Feb 2 13:06:04 EST 2012
On Thu, Feb 2, 2012 at 12:53 PM, Sean McBride <sean at rogue-research.com> wrote:
> On Fri, 27 Jan 2012 13:08:55 -0500, Sean McBride said:
>
>>We've been setting up a valgrind dashboard, but the execution times of
>>ITK tests range across several orders of magnitude.
>>
>>This makes choosing a timeout difficult, and especially so with
>>valgrind, where execution takes so much longer.
>>
>>Could maybe the slowest ITK tests be broken up into several tests? Or is
>>there a way to specify different timeouts for with and without valgrind?
>
> No one has any thoughts on this?...
>
I think we need to start adding labels to slow tests,
http://www.cmake.org/cmake/help/cmake-2-8-docs.html#prop_test:LABELS
maybe, "LONG_RUNNING".
Then they can be excluded in the ctest script with the EXCLUDE_LABEL
option to ctest_memcheck.
>
> Our next problem is that there are many thousands of valgrind warnings from python. From the logs:
>
> 100: MemCheck command: /usr/local/bin/valgrind "--trace-children=yes" "--quiet" "--tool=memcheck" "--leak-check=yes" "--show-reachable=yes" "--num-callers=50" "--verbose" "--demangle=yes" "--gen-suppressions=all" "--suppressions=/home/builder/external/ITK/CMake/InsightValgrind.supp" "/usr/bin/python" "/home/builder/external/ITK/Utilities/Doxygen/mcdoc.py" "check" "ITKCommon" "/home/builder/external/ITK/Modules/Core/Common/include"
>
> As you can see valgrind is invoked on python itself, therefore flagging issues within python itself.
>
> The valgrind docs discuss this:
>
> <http://valgrind.org/docs/manual/manual-core.html>
>
> "Note that you should run the real (machine-code) executable here. If your application is started by, for example, a shell or Perl script, you'll need to modify it to invoke Valgrind on the real executables. Running such scripts directly under Valgrind will result in you getting error reports pertaining to /bin/sh, /usr/bin/perl, or whatever interpreter you're using. This may not be what you want and can be confusing. You can force the issue by giving the option --trace-children=yes, but confusion is still likely."
>
> Should this be fixed with suppressions? I see some python 2.6 suppressions in InsightValgrind.supp already....
That sounds good. They keep a suppressions file in the Python repository:
http://svn.python.org/projects/python/trunk/Misc/valgrind-python.supp
Thanks,
Matt
>
> Thanks,
>
> --
> ____________________________________________________________
> Sean McBride, B. Eng sean at rogue-research.com
> Rogue Research www.rogue-research.com
> Mac Software Developer Montréal, Québec, Canada
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-developers
More information about the Insight-developers
mailing list