Using gdb With GNU Emacs

168 Chapter 5 • Working with GNU Debugger With every finish command, you can see the function that you were into and the return value of that function. When you are back in the main function, you can use the next com- mand to start tracing the execution line by line. Note that when you trace through, the output of the process will appear in the window where you started the program. You will also enter the input values in the same window. All those functions we had to finish were just part of the stan- dard C libraries, and you could actually step into them anytime from this program as well, but you normally wouldnt.

5.11 Installing GDB

GNU debugger is included in all Linux distributions in the development package. In certain cases, you may want to get a new copy in the source code form and build and install it manually. The compilation and building process is similar to other GNU development tools. By this time you have already built and installed the GNU compiler and the C library. With that experience, you should not find the compilation and installation of GNU debugger difficult.

5.11.1 Downloading and Building

You can download the latest version from ftp:ftp.gnu.orggnugdb directory. The current version at the time of writing this book is 5.1.1. The source code is available in the compressed tar format. The file name is gdb-5.1.1.tar.gz. You have to uncompress it using the fol- lowing command. tar zxvf gdb-5.1.1.tar.gz I have untarred this file in opt directory. The tar program will create optgdb- 5.1.1 directory and uncompress all source code tree under this directory. Move into this direc- tory using the cd command. Run the configure script and the make command to build and install the debugger. This is a similar process as with all other GNU tools. The following com- mands will build gdb. cd optgdb-5.1.1 .configure –-prefix=optgcc-3.0.4 make Note that – -prefix shows the directory where the gdb binary and other files will be installed. Usually this is the same directory where your other development tools are installed.

5.11.2 Final Installation

The following command places the gdb binary and other files in the proper location. After running this command, you can start using the new debugger. make install Other Open Source Debuggers 169

5.12 Other Open Source Debuggers

In addition to gdb, there are many other debuggers available to the open source community. Many of these debuggers are built on top of the GNU debugger or they use gdb concepts. Some of these debuggers are introduced in this section. The most popular of these is the ddd debugger. xxgdb is a GUI interface to gdb and many people also use it. The kdbg comes with KDE on Linux. All of these debuggers use the same concepts as used by the gdb debugger.

5.12.1 The kdbg Debugger

KDE debugger comes with KDE desktop development utilities. It is a GUI based upon GNU debugger. You can start it using the kdbg command or from a KDE menu. Using icons in the tool bar or menus, you can open files to be debugged. Once a file is loaded in the debugger window, you can click on a line to set or remove break points. To find out the purpose of an icon, you can move your cursor over the icon on the toolbar to display a short description. The kdbg is a simple debugger but keep in mind that you may not find it as powerful as a native GNU debugger is. The window that appears when you start the debugger is shown in Figure 5-3. In this window the pointer is on the first printf statement where we have a break point set. You can add a variable to the watch list using the watch window. This window can be opened by selecting the “Watched Expressions” option from the View menu. The window is shown in Figure 5-4 where two variables num1 and num2 are added to the watch list. You can click on a variable and then press the “Del” button to remove a variable from the watch list. The kdbg also has an output window that is used to display any output from the program. This output window is actually an input window as well. You can enter input for the program in this window. The output window is started when you start the kdbg debugger. The output win- dow is shown Figure 5-5.