|
|
C/c++ -gdb Linux Debug Tool - Simple Gdb tutorial | ||
Discussion by kanade with 1 Replies.
Last Update: October 8, 2008, 8:21 am ( View Rated (1) ) | |||
![]() |
|
|
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 (6.3.0.0-1.122rh) 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
(gdb)
will add some more command to this at later stage.......
$ 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 (6.3.0.0-1.122rh) 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
(gdb)
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 
Typing:
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.
Typing:
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.
Similar Topics:
Any Tools For Video Tutorial Creati...
Tutorial Build Pure CSS Using Onli...
The next step will be to set up our header with a tab menu a search box and a header image. With these three parts you will be able to be make a somewhat dynamic header, so it can be seen more and not blended within the website and be lost or hard to find within the website. You have to remember t ...more
Web Design Tools
Learning C++ (1)
|
(11) Basic C++ Coding
|
HOME 





C Programming, Disassembly, Debugging, Linux, GDB
Using Skyeye & GDB to debug software for ARM microprocessor
Debugging an AVR under Linux using the JTAG ICE mkII and gdb.

