一般来说,GDB主要帮助你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3、当程序被停住时,可以检查此时你的程序中所发生的事。 4、你可以改变你的程序,将一个BUG产生的影响修正从而测试其他BUG。GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。
比如一个main.c 先通过运行命令 gcc -g main.c -o main 对main.c 进行编译,参数g的作用是把调试信息加入生成的main可执行文件中,否则GDB就无法对main进行测试。接下来我将介绍一些基本的命令以及功能。 命令 功 能 示例 list (或缩写l) 显示程序(以十行为单位进行显示) (gdb) l run (r) 运行程序 (gdb) r break (b) 设置断点 (gdb) b 7 注:在第七行设置了第一个断点 Info (i) 查看断点情况 (gdb) info b 查看断点情况 print (p) 查变量值 (gdb) p next (n) 单步运行,不会进入子函数 (gdb) n step (s) 单步运行,遇到函数时会进入子函数进一步执行 (gdb) s delete (d) 删除断点 (gdb) delete 1 注;删除第一个断点 break函数名 在调用到某一函数时停止 (gdb) b main continue 运行到下一断点结束,无断点则一运行 (gdb) c finish 执行完当前函数返回到调用它的函数/进入单步执行若进入了某函数,而想退出该函数返回它的调用函数可用finish (gdb) finish quit (q) 退出 (gdb) q