概述
Linux包含了一个叫gdb的GNU调试程序。gdb是一个用来调试C和C++程序的强有力调试器。它使你能在程序运行时观察程序的内部结构和内存的使用情况。它具有一下一些功能:
- 监视程序中变量的值;
- 设置断点以使程序在指定的代码上停止运行;
- 一行行的执行代码
GDB常用命令
命令 | 描述 |
---|---|
file | 装入想要调试的可执行文件 |
kill | 终止正在调试的程序 |
list | 列出产生执行文件的源代码的一部分 |
next | 执行一行源代码但不进入函数内部 |
step | 执行一行源代码而且进入函数内部 |
run | 执行当前被调试的程序 |
quit | 终止gdb |
watch | 使你能监视一个变量的值而不管它何时被改变 |
break | 在代码里设置断点,这将使程序执行到这里时被挂起 |
make | 是你能不退出gdb就可以重新产生可执行文件 |
shell | 使你能不离开gdb就执行unix shell 命令 |
注:在使用gdb调试代码的时候,必须在生成可执行文件的时候加入-g选项,只有这样生成的可运行文件中才包含可调试的信息。
其他命令
- 结束当前函数运行finish
- 结束当前for循环jump
- 查看变量类型ptype
- 列出当前程序存活的栈帧bt
- 根据栈帧编号,切换栈帧frame
- 退出gdb用quit或q