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 |