Profiling and logging tools - release notes


1.0 Limitations
   1.1 Profiling filters fail under certain conditions

1.0 Limitations

1.1 Profiling filters fail under certain conditions

The Problem:

Filter A will fail to function if there exists a filter B such that:

B is placed before A and, the classes matching B also match A.

For instance, if the filters look like:

ClassA* method* INCLUDE * * EXCLUDE

then method initialize() from ClassABC will be erroneously included by the first filter, because its class name matches the pattern classA*, even though the method name does not match the method pattern. This also implies that the following will cause all methods starting with ClassA to be included:

ClassA* method* INCLUDE ClassA* * EXCLUDE

as the second filter is always ignored.

Workaround:

By default, if a class or method does not match any filter, it is included. So, never use an INCLUDE filter, and use EXCLUDE filters only. Since only the first matching class pattern matters, only one EXCLUDE filter can be specified per class, and in this filter, a method pattern can be used to specify which methods to exclude, as follows:

ClassA method* EXCLUDE ClassB call* EXCLUDE

Return to the main readme file