[ros-users] roscpp and valgrind's helgrind

Josh Faust jfaust at willowgarage.com
Wed Oct 13 18:11:34 UTC 2010


>
>
> This is a cool tool!
>
>
Unfortunately, it doesn't really work for most applications.  While there
are some things we should take a look at (the lock ordering warnings),
everything else appears to be false positives.  Helgrind only really works
if:

 * You're not using any non-pthreads synchronization primitives (such as
atomics) -- we are (shared_ptr uses atomic increment/decrement, shared_mutex
is not pthreads-based, ...)
 * You're not using pthreads condition variables -- we are, in many places
 * You're not using memory pools -- we aren't currently (at least in
roscpp), but probably will be at some point

http://valgrind.org/docs/manual/hg-manual.html#hg-manual.effective-use

Realistically, if you want to use helgrind on your application you need to
design your application around working with helgrind.  Otherwise the signal
to noise ratio is too low to make it worthwhile -- though it can be useful
at times when tracking down a specific bug.

Josh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20101013/5b25d75f/attachment-0003.html>


More information about the ros-users mailing list