The next version of Runtime Flow adds extensive filtering options. Filtering out unneeded functions improves monitoring performance and simplifies monitoring log. It’s now possible to filter by module, class and function creating very specific boolean expressions:
The monitoring filter is applied at the beginning of a monitoring session.
You can use == and != between Module, Class, Function and a filter string. If the filter string contains spaces or special characters it should be quoted:
Module == "C:\Program Files\SurF.exe"
You can use the ! unary operator to negate expression and ||, && for OR and AND operations.
A filter string allows tail matching after delimiter. Thus Module == SurF.exe matches “C:\Program Files\SurF.exe”, but not “C:\Program Files\OverSurF.exe”. During matching class name contains its namespace: Class == FileSystemWatcher matches System.IO.FileSystemWatcher also due to the tail matching.
A filter string allows prefix matching by using * at the end: Module == C:\*. It also allows filter by namespace: Class == System.IO.*.
When monitoring a C++/CLR application, “native” functions are represented as the class <Module> and “native” class included in the function name. For example, to exclude classes and functions in the std namespace use Function != std.*.
true and false constants can be used to quickly enable or disable part of a filter. For example, adding || true at the end of a filter enables monitoring of all functions without deleting the whole filter expression.
All common filtering tasks can be applied just by using the new Include and Exclude buttons in the toolbars:
The buttons in the Runtime Flow toolbar allow filtering by function and the buttons in the Runtime Sumary toolbar allow filtering by function, class, namespace and module.