The DLLs tab displays source file coverage information for each DLL that contains hooked functions.
Read on, or click a part of the image below to jump straight to the help for that area.
The DLLs view is largely similar to the Coverage view except that the file list is structured as a hierarchy of DLLs and files rather than just a flat list of files.
As with many of the tab views, the display is split into two resizable panes.
•the left side lists a summary of the DLL and file coverage data
•the right side shows source code for any file selected on the left
We'll cover the file list and its popup menu first, and then the source code view.
Each line in the view displays the following:
•the DLL or file name
•the percentage of hookable lines that have been visited
•the number of hooked lines in the DLL or file
This is not the same as the total number of lines in a file, which may include comments, declarations and white space.
Neither is it the same as the number of hookable lines since some lines or functions can be excluded from hooking.
The count also includes lines which should have been hooked but failed, for example because the instrumentation level was set low.
•the number of different lines that have been visited
•the total visit count for the file
This may be equal to the number of different lines visited unless you're counting each visit separately as seen below:
The statistics for each DLL is an aggregated view of all the files within it.
Files in a DLL are ordered by their full paths, not by the directories in which they are found.
Each line in the list is colour coded to indicate one of the following:
•the file has not been visited at all
•the file has been visited to some extent
•every hookable line in the file has been visited, i.e. 100% file coverage
•none of the lines in the file could be hooked
Depending on what file or DLLs hook filters are set up, not all the hookable lines in a header file may attempt to be hooked.
Only those that are actually used (e.g. via macros or inlines) in the program may actually be hooked.
By default, lines that could not be hooked don't stop the coverage from reaching 100%, but you can change this.
In this example below, the instrumentation level was set low ('incomplete but faster') to force significant numbers of unhooked lines.
To the right of each pane, beside the vertical scrollbars, you'll see a coloured area which represents the coverage.
For the DLL and file list, the visualisation shows the coverage of each item in the list - reflecting the progress meters in the second column.
For the source code view, the visualisation shows the coverage of each line in the file
These visualisations provide a snapshot view of the whole list of files or the whole source file.
Irrespective of how much you can see in the DLL and file list or in the source code view, you can still get a global overview of the coverage distribution.
The horizontal or vertical orientation of the statistics and source code panes can be toggled with the orientation button.
•Refresh updates the display - as does the button on the Tools menu and toolbar
•Descending reverses the direction of the data, sorted by the names in first column
•Expand All / Collapse All switches any hierarchical view from collapsed to expanded view
•Highlight unvisited lines highlights rows for any functions that have not been visited (on by default)
If switched off, unvisited lines appear white - or whatever colour you've set as the unselected colour.
The popup menu is identical to that for the Branch Coverage and Functions view.
The following popup menu is available over the data area to add filters, edit code, or expand and collapse the view.
The instrumentation filter lets you add filters at different levels of granularity:
•Exclude Filename adds a new filter to the Source Files Filter settings, excluding it from the results of subsequent sessions
•Exclude Directory excludes all files in the same directory as the selected file
From the sub menu, choose the directory level at which you want to exclude files, right up to the drive specifier if you need to
•Exclude DLL excludes all files belonging to the same executable or DLL as the selected file
This adds a filter to the Hooked DLLs settings.
Filters become effective at the start of the next session. Adding a filter during a session will show the relevant rows in grey so that you can see which items would be filtered, but the coverage results will continue to be included for the rest of the current session.
•Edit Source Code... opens the default or preferred editor to edit the source code
•Expand or Collapse Entry shows and hides the selected section in the view, the same as using the or buttons
•Collapse All completely collapses all sections
•Expand All expands all the sections
Clicking on a file in the DLL and file list, shows that file in the source code view on the right.
The source code uses syntax highlighting by default, with the background colour of the line indicating if the line has been visited, is unvisited or could not be hooked.
Icons are displayed next to hooked and unhooked lines indicating visit and hook status and visit counts are shown in-line with the code.
Hovering over a line for a short period of time shows a tooltip with the number of visits to the line.
Contiguous groups of lines can be collapsed and hidden from view.
On the right hand panel, above the source code, you'll find some information about the source file
The details shown include the following:
•'quick view' details for visited and unvisited lines, pink for unvisited, light green for partial visited, and dark green for 100% visited
•the source code filename and the executable or DLL to which it belongs
•the same statistics as seen in the left hand panel
• show the previous and next unvisited line of code in the file
and + also navigate forwards and backwards when the source code has focus.
• show previous and next visited line of code in the file
The arrows are grey when disabled.
and + also navigate forwards and backwards through the visited lines.
•Line step by individual lines of code
•Group step by groups of contiguous visited or unvisited lines
When the data view or the source code view has focus, some keyboard access is available to search for DLLs, source code, or to navigate to numbered lines.
In the data view, + displays a dialog that will allow you to search by full or partial match for a DLL path
In the source code view + lets you search by full or partial match anywhere in the file
In the source code view, + displays a goto-line dialog