HOME       >>       Programming

C/c++ -gdb Linux Debug Tool Simple Gdb tutorial


To run the C/C++ file use


$ gcc –g –o test sample.cpp


To debug the code use following command


$ gdb test --- you will get following messages


GNU gdb Red Hat Linux ( Copyright 2004 Free Software Foundation, Inc.

GDB is free software, covered by the GNU General Public License, and you are

welcome to change it and/or distribute copies of it under certain conditions.

Type "show copying" to see the conditions.

There is absolutely no warranty for GDB. Type "show warranty" for details.

This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1".


(gdb) b 4 -- Set the break point for your code, here I have set for 4th line of the code


Breakpoint 1 at 0x8048384: file test2.c, line 4.


(gdb) r -- once the break point is set use “r “ to run the code


Starting program: /home/tests/test

Reading symbols from shared object read from target memory...done.

Loaded system supplied DSO at 0x8b5000

Breakpoint 1, main () at test2.c:5

5 {


(gdb) n -----press “n” to go to next line


main () at test2.c:7

7 max=MAX(5,4,3);


(gdb) n -----press “n” to go to next line


8 printf("\n%d",max);


(gdb) print max -----use “print” command to print any variables


$1 = 5




will add some more command to this at later stage.......


It would be great if you added some info on debugging programs with threads. I'll take your turn now



info threads


will result in displaying which threads exist in the moment. The numbers in the first column (1, 2 etc.) represent the threads' ids. Once you know these ids, you can switch to corresponding threads like this:


thread 2


GDB will now be executing that thread in the front, while other threads will continue working in the background. You can use the usual techniques described above (next, quit, step, continue etc.) in this thread.


Debugging with threads tends to be complicated since multiple things happen at the same time. One might consider using sleep() in a thread so it doesn't "run away" before you switch to it in the debugger.


Xisto.com offers Free Web Hosting to its Members for their participation in this Community. We moderate all content posted here but we cannot warrant full correctness of all content. While using this site, you agree to have read and accepted our terms of use, cookie and privacy policy. Copyright 2001-2019 by Xisto Corporation. All Rights Reserved.