The profiling reports

Six profile reports are available, depending on whether the appropriate data exists. The reports generally consist of several columns of information, and a status bar at the bottom of the report. Most of the columns can be sorted by clicking the header. Clicking the same header again will sort in the opposite direction. All of the columns can be resized by dragging the separator to the left or right. All of the columns can also be moved around by dragging the header to the appropriate location. Within each of the reports, clicking a function name (or other program component) moves you to that location in the Debugger source pane; a double click invokes an editing window. You can save, append, or print any report from the File menu.

Status report

This is the report that appears when you first open the profiling window. It is always available. It gives general information about profiling, such as what type of data has been collected. The status bar indicates whether or not profiling is active.

Standard calls report

This report gives a summary of program execution time per function. It is available when any type of program counter sampling is done such as mon.out or gmon.out.

Standard calls
Header Meaning
Percent time
The percentage of the total program time spent in each function.
Time
The amount of time spent in each function. The status bar indicates if this is measured in seconds or milliseconds
# calls
The number of times the function is called.
Time(ms)/call
The number of milliseconds spent on each call to the function. Note that this is always measured in milliseconds, regardless of the contents of the status bar.
Function
The name of the function.

Note that the percentages may not add to 100%, as the profiler only monitors how much time is actually spent in the function.

Call graph report

This report gives a summary of program execution time per function, including functions' descendants. Descendants of a function are all routines called by that function, and all routines called by those routines, and all routines called by those routines, etc. This report is available when the program is compiled with the Graph option and gmon.out file(s) are created.

Call graph
Header Meaning
Function
The name of the function.
Calls by Function
The routines called by the function. This lists each function called by the function, and the percent of the total calls made by this function to each of the listed routines.
Calls to Function
The routines that called the function. This lists all the routines that called the function, and the percent of the total calls made to this function by each of the listed routines.
Self Time
The actual time spent in each function
Self %
The percentage of total time spent in each function.
Child Time
The actual time spent in the all of the children of each function
Child %
The percentage of total time that the children of each function represent
Self+Child Time
The total time spent in each function including its children.
Self+Child %
The percentage of total time spent in each function and its children.

The status bar indicates if the times are listed in seconds or milliseconds.

Block coverage summary

The status bar gives a summary of the coverage of the entire program. It is available when the program is compiled with the Coverage Analysis option on.

Block coverage summary
Header Meaning
Function
The function names.
Blocks
The number of basic blocks in each function.
% Covered
The percentage of basic blocks executed.

The status bar gives a summary of the coverage of the entire program. For more information about coverage within each function, see the Block Coverage Detailed section below.

Detailed block coverage

This report gives the program code coverage per basic block. It is available when the program is compiled with the Coverage Analysis option on.

Block coverage (detailed)
Header Meaning
Function
The function names.
Address
The starting address of each block.
Line Number
The (file-relative) source line corresponding to each block.
Executions
The number of times that block was entered.
Time
The total time spent in each block.
% Total Runtime
The percentage of total time spent in each block

The status bar indicates if the times are listed as seconds or milliseconds.

Source lines report

This report is a listing of all the source lines of the program, along with how long each took to execute. A source line is uniquely determined by the filename and (file-relative) line number. Only lines with positive times are displayed. The time it takes to process this report is proportional to the size of the program and hence may take longer for very large programs. This report is available when any type of program counter sampling is done such as mon.out or gmon.out.
Source lines
Header Meaning
Filename
The file that the source line is in.
Line Number
The (file-relative) line number of the source line.
Function
The function that the source line appears in.
Time
The time spent on the given line. The status bar indicates if this is displayed in seconds or milliseconds.

Related topic:


Previous

Next



Copyright © 1999, Green Hills Software. All rights reserved.