# tcollect-filter, Qtcollect-filter

Lets you enable or disable the instrumentation of specified functions. You must also specify option [Q]tcollect.

## Syntax

Linux: | -tcollect-filter filename

macOS: | None

Windows: | /Qtcollect-filter:filename

## Arguments

filename | Is a configuration file that lists filters, one per line. Each filter consists of a regular expression string and a switch. Strings with leading or trailing white spaces must be quoted. Other strings do not have to be quoted. The switch value can be ON, on, OFF, or off.

## Default

OFF | Functions are not instrumented. However, if option -tcollect (Linux) or /Qtcollect (Windows) is specified, the filter setting is ".* ON" and all functions get instrumented.

## Description

This option lets you enable or disable the instrumentation of specified functions.

To get instrumentation with a specified filter (or filters), you must specify both option [Q]tcollect and option [Q]tcollect-filter.

During instrumentation, the regular expressions in the file are matched against the function names. The switch specifies whether matching functions are to be instrumented or not. Multiple filters are evaluated from top to bottom with increasing precedence.

The names of the functions to match against are formatted as follows:

- C++ function names are demangled and the C++ class hierarchy is used. Function parameters are stripped to keep the function names shorter.

- The source file name is followed by a colon-separated function name. Source file names should contain the full path, if available. For example:

      /home/joe/src/foo.c:FOO_bar

- Classes and function names are separated by double colons. For example:

      /home/joe/src/foo.cpp:app::foo::bar

You can use option [q or Q]opt-report to get a full list of file and function names that the compiler recognizes from the compilation unit. This list can be used as the basis for filtering in the configuration file.

This trace analyzing/collecting feature requires installation of another product. For more information, see Feature Requirements.

## IDE Equivalent

None

## Alternate Options

None

Consider the following filters in a configuration file:

    '.*' OFF '.*vector.*' ON

The above will cause instrumentation of only those functions having the string 'vector' in their names. No other function will be instrumented. Note that reversing the order of the two lines will prevent instrumentation of all functions.

To get a list of the file or routine strings that can be matched by the regular expression filters, generate an optimization report with tcollect information. For example:

    Windows: icl /Qtcollect /Qopt-report /Qopt-report-phase:tcollect

    Linux: icc -tcollect -qopt-report -qopt-report-phase=tcollect

Parent topic: Optimization Report Options

## See Also

tcollect, Qtcollect compiler option
qopt-report, Qopt-report compiler option