The TRACE-FILTER attribute controls how the "Tracing Data" section is populated. TRACE-FILTER specifies a comma-separated string that uses wildcard matching for any procedure or class you want the profiler to write timing data for. The setting provides a quick way to find out timing data about specific procedures or classes in an ABL application. Because TRACE-FILTER has a performance impact, Progress does not recommend enabling it in production systems.

Data type: CHARACTER

Access: Readable/Writable

Applies to: PROFILER system handle

The initial value is an empty string ("").

The expression patterns are interpreted in the same way as the ABL built-in MATCHES operator. If a procedure name matches one of the patterns on the list, then the profiler records detailed timing information for every executable line in that procedure. The pattern matching is not case-sensitive.

In addition to recording summary timing data for each executable line, TRACE-FILTER records timing information each time a statement is executed. With this detailed information, a complete execution trace for the application can be established.

If the value of TRACE-FILTER is " ", then the pattern does not match any procedure names. When no procedure names are matched, the only tracing information the profiler records is what is specified by the PROFILER:TRACING attribute. If the value is "*", then the pattern matches all procedure names.

Set the TRACE-FILTER pattern before turning on profiling (that is, before setting PROFILER:PROFILING=TRUE).

Redundant entries in the PROFILER:TRACE-FILTER list are automatically removed.

Separate timing data is generated for each ABL statement in the procedure. Therefore, if your procedure contains a loop, your output file will contain a line of timing data for each executable statement of each iteration of the loop.

CAUTION: Tracing can significantly slow down the AVM execution.

Examples

To get tracing information for all enable_UI procedures, set TRACE-FILTER to:
"enable_UI *"
To get tracing information for all enable_UI procedures and also all executable lines in the procedure hello.p, set TRACE-FILTER to:
"enable_UI*,*hello.p"

See also

PROFILER:TRACING