主要参考
http://www.cppblog.com/baby-fly/archive/2011/12/16/121395.html
http://blog.csdn.net/s1234567_89/article/details/7852392
gdb是是GNU下面的一个调试器,应该可以配合不同的编译器使用。
如果配合gcc使用。做单步调试应该按照如下步骤。
1. 首先需要用gcc对源文件进行编译生成可执行文件,并且在编译时加上-g选项,将调试信息加到目标文件中。
2. 假设生成的可执行文件为test,那么gdb test可以用gdb打开test文件,然后通过break linenum设置断点。可以输入list查看源文件和行号,方便设置断点。断点设置好之后可以run来运行到断点处。
3. n命令可以执行吓一跳命令。
基本gdb命令
命令 | 简写 | 功能 |
---|---|---|
file | 装入想要调试的可执行文件 | |
kill | k | 终止正在调试的程序 |
list | l | 列出产生可执行文件的源代码的一部分 |
next | n | 执行一行源代码但不进入函数内部 |
step | s | 执行一行源代码而且进入函数内部 |
continue | c | 继续执行程序 |
run | r | 执行当前被调试的程序 |
quit | q | 终止gdb |
watch | 使你能监视一个变量的值而不管它何时被改变 | |
catch | 设置捕捉点 | |
thread | t | 查看当前运行程序的线程信息 |
break | b | 在代码里设置断点,这将使程序执行到这里时被挂起 |
make | 使你能不退出gdb就可以重新产生可执行文件 | |
shell | 使你能不离开gdb就执行UNIX shell命令 | |
p | 打印数据内容 | |
examine | x | 打印内存内容 |
backtrace | bt | 查看函数调用栈的所有信息 |