Debugging with GDB Manual The GNU Source-Level Debugger (769148-001, March 2014)
If [start_index] and [end_index] are not specified, the complete table of execution
path entries is displayed.
• info global-exec-path summary
Prints the summary information about all the global execution path entries in the current frame.
This command displays the total number of global execution path entries that can be stored,
the number of global execution path entries in this frame in the last iteration, and the last
executed global execution path number.
• exec-path [up][down][path_index] (aliased to ep)
Enables you to select, print, and navigate through the execution path entries. When no
arguments are specified, it prints the selected execution path entry. You can specify the
argument as an execution path index from the info exec-path or the info
global-exec-path commands. Alternately, you can use the up or down command to
navigate through the execution path entries.
Compiler Dependencies for Printing the Execution Path Entries
The +pathtrace compiler option provides a mechanism to record program execution control
flow into global path tables, local path tables, or both. This saved information enables the debugger
to print the execution path entries in the current thread or frame. To print the execution path entries
in the current thread or frame for programs running on Integrity systems, you can set the required
sub-options for the +pathtrace compiler option.
You must set the following +pathtrace compiler option to enable the debugger to print the
execution path entries:
+pathtrace= [<global|global_fixed_size>:<local>]
For more information on this feature, see the following example.
Example Illustrating Execution Path Recovery
The following example illustrates the use of the execution path recovery feature in HP WDB:
Sample Program:
$cat execpath.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int a = 3, b = 0, c = 4;
if (a)
printf("Value of a greater than 0\n");
if (b)
printf("Value of b greater than 0\n");
if (c)
printf("Value of c greater than 0\n");
printf("All condition checking done\n");
return 0;
}
Sample Debugging Session:
$cc +pathtrace -g execpath.c
$gdb a.out
HP gdb ...
Type "show warranty" for warranty/support.
...
(gdb) b main
Breakpoint 1 at 0x4000a60:0: file execpath.c, line 7 from a.out.
Printing the Execution Path Entries for the Current Frame or Thread 155