|
From: Bart V. A. <bar...@gm...> - 2009-05-29 11:19:49
|
On Fri, May 29, 2009 at 12:58 PM, Konstantin Serebryany <kon...@gm...> wrote: > [changed subject] > > Do you plan to support annotations (aka client requests) in Helgrind > and DRD in a compatible way (and possibly, in a way compatible with > ThreadSanitizer)? > Something like http://code.google.com/p/google-perftools/source/browse/trunk/src/base/dynamic_annotations.h, > or completely different. > Our experience shows that even a pure-happens-before race detector is > completely useless w/o annotations if your code has lock-less > synchronization and hundreds of benign races. Regarding the dynamic_annotations.h header file: which parts are generic and which parts are ThreadSanitizer-specific ? I assume that client programs should use the ANNOTATE_*() macro's and not the Annotate*() functions ? I assume that you have already developed unit tests for these macro's in ThreadSanitizer. Are available under the GPL ? One aspect of the dynamic_annotations.h header file that I do not like is that enabling / disabling the ANNOTATE*() macro's is controlled by the NDEBUG macro. IMHO a new macro should be defined that allows to enable / disable the ANNOTATE*() macro's. Adding support for the ANNOTATE_*() macro's in drd/drd.h is probably not too hard. I'll have a look at it. Bart. |