| Red Hat Enterprise Linux 3: Developer Tools Guide | ||
|---|---|---|
| Prev | Chapter 3. Developing with Red Hat Enterprise Linux Developer Tools | Next | 
To start GDB, use the following commands:
gdb hello  | 
After the initial copyright and configuration information, GDB returns its own prompt, (gdb). The following is a sample debugging session:
To set a breakpoint, type:
break main  | 
The following output displays:
Breakpoint 1 at 0x132: file hello.c, line 15.  | 
Note the exact address and line number may vary, depending upon the target architecture being debugged and the exact layout of the C code in the hello.c file.
To run the program, type:
run  | 
The following output displays (when the program stops at a breakpoint):
    Starting program: hello
    Breakpoint 1, main () at hello.c:15
    15 a = 3; | 
Again note that the exact line number and instruction displayed is dependent upon the source code layout.
To print the value of variable, a, type:
print a  | 
The following output displays:
$1 = 0  | 
To execute the next command, type next:
next  | 
The following output displays:
16 b = 4;  | 
To display the value of a again, type:
print a  | 
The following output displays:
$2 = 3  | 
To display the program being debugged, type:
list  | 
The following output displays:
12         int
13         main (void)
14         {
15           int b;
16
17           a = 3;
18           b = 4;
19
20           printf ("Hello, world!\n");
21
22           foo (b);
23
24           return 0;
25         } | 
To list a specific function code, use the list command with the name of the function to be display. For example, type:
list foo  | 
The following output displays:
 1          #include <stdio.h>
 2
 3          int a, c;
 4
 5          static void
 6          foo (int b)
 7          {
 8            c = a + b;
 9            printf ("%d + %d = %d\n", a, b, c);
10          } | 
To set a breakpoint at line seven, enter the following input (set a breakpoint at any line by entering break linenumber, where linenumber is the specific line number to break):
break 8  | 
The following output displays:
Breakpoint 2 at 0xf4: file hello.c, line 8.  | 
To resume normal execution of the program until the next breakpoint, type:
continue  | 
The following output displays:
Continuing. Hello, world! Breakpoint 2, foo (b=4) at hello.c:8 8 c = a + b;  | 
To step to the next instruction and execute it, type:
step  | 
The following output displays:
9 printf ("%d + %d = %d\n", a, b, c); | 
To display the value of c, type:
print c  | 
The following output displays:
$3 = 7  | 
To see how you got to where you are, type:
backtrace  | 
The following output displays:
#0 foo (b=4) at hello.c:9 #1 0x15c in main () at hello.c:18  | 
To exit the program and quit the debugger, type:
quit  |