[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