From: Julian Seward Date: Tue, 4 Nov 2008 01:38:02 +0000 (+0000) Subject: Update documentation on suppressions following addition of frame-level X-Git-Tag: svn/VALGRIND_3_4_0~168 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=279a7e01cfb4fa47ee745c621b51c0209723c467;p=thirdparty%2Fvalgrind.git Update documentation on suppressions following addition of frame-level wildcarding in suppressions (r8725). Also clarify a couple of bits of wording. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8726 --- diff --git a/docs/xml/manual-core.xml b/docs/xml/manual-core.xml index 7d556fc7f7..a413c37ff2 100644 --- a/docs/xml/manual-core.xml +++ b/docs/xml/manual-core.xml @@ -436,8 +436,8 @@ tool_name1,tool_name2:suppression_name]]> the chain of function calls that led to it. There can be up to 24 of these lines. - Locations may be either names of shared objects/executables or - wildcards matching function names. They begin + Locations may be names of either shared objects or + functions. They begin obj: and fun: respectively. Function and object names to match against may use the wildcard characters @@ -447,7 +447,22 @@ tool_name1,tool_name2:suppression_name]]> Important note: C++ function names must be mangled. If you are writing suppressions by hand, use the option to get the - mangled names in your error messages. + mangled names in your error messages. An example of a mangled + C++ name is _ZN9QListView4showEv. + This is the form that the GNU C++ compiler uses internally, and + the form that must be used in suppression files. The equivalent + demangled name, QListView::show(), + is what you see at the C++ source code level. + + + A location line may also be + simply "..." (three dots). This is + a frame-level wildcard, which matches zero or more frames. Frame + level wildcards are useful because they make it easy to ignore + varying numbers of uninteresting frames in between frames of + interest. That is often important when writing suppressions which + are intended to be robust against variations in the amount of + function inlining done by compilers. @@ -496,7 +511,7 @@ on the specifics of Memcheck's suppression kinds.) obj:/usr/X11R6/lib/libXaw.so.7.0 }]]> -Suppress any size 4 uninitialised-value error which occurs +This suppresses any size 4 uninitialised-value error which occurs anywhere in libX11.so.6.2, when called from anywhere in the same library, when called from anywhere in libXaw.so.7.0. The inexact specification of @@ -508,6 +523,28 @@ was made have had their symbol tables removed. freely mix obj: and fun: lines in a suppression. +Finally, here's an example using three frame-level wildcards: + + +This suppresses Memcheck memory-leak errors, in the case where +the allocation was done by main +calling (though any number of intermediaries, including zero) +ccc, +calling onwards via +ddd and eventually +to malloc..