160Chapter5 • Working with GNU Debugger
(gdb) enab 3
(gdb) info break
Num Type Disp Enb Address What
1 breakpoint keep y 0x08048496 in main at sum.c:6
breakpoint already hit 1 time
2 breakpoint keep y 0x080484ba in main at sum.c:8
3 breakpoint keep y 0x080484ca in main at sum.c:9
6 breakpoint keep y 0x08048496 in main at sum.c:5
(gdb)
Enabling and disabling break points is useful when you want to cycle quickly through
loops for a certain number of times and then start tracing once again.
5.6.4Deleting Break Points
You can also delete break points using the
delete
command. The following session
shows that you have four break points present. You delete two of these and then you can again
display break points to make sure that these break points are actually deleted.
(gdb) info break
Num Type Disp Enb Address What
1 breakpoint keep y 0x08048496 in main at sum.c:6
breakpoint already hit 1 time
2 breakpoint keep y 0x080484ba in main at sum.c:8
3 breakpoint keep y 0x080484ca in main at sum.c:9
6 breakpoint keep y 0x08048496 in main at sum.c:5
(gdb) del 1
(gdb) del 2
(gdb) info break
Num Type Disp Enb Address What
3 breakpoint keep y 0x080484ca in main at sum.c:9
6 breakpoint keep y 0x08048496 in main at sum.c:5
(gdb)
Note that there is a difference between deleting and disabling a break point. The disabled
break point stays there although it has no impact on execution of the program being debugged.
The deleted break point is gone forever and you have to create it again if needed.
5.7Debugging Optimized Code
You can use multiple levels of optimization while building the output binaries. The generated exe-
cutable code may be different for each level of optimization. If you step through the optimized
code in
gdb
, the
gdb
may not step as you expected in some cases. Let us compile the
sumopt.c
program and see how optimization does affect. Listing below is the program source code:
#include
main ()
{
Next Page >>
<< Previous Page
Back to the Table of Contents