1.GDB
GDB(the GNU Project Debugger)是 GNU 发布的一个功能强大的 UNIX 程序调试工具,可以调试 Ada、C、C++、Objective-C 和 Pascal 等多种语言的程序,可以在大多数 UNIX 和Microsoft Windows 变种上运行。GDB 既可以在本地调试,也可以进行远程调试。
通过 GDB 能够对程序进行如下调试:
● 运行程序,还可以给程序加上某些参数,指定程序的行为。
● 使程序在特定的条件下停止。
● 检查程序停止时的运行状态。
● 改变程序的参数,以纠正程序中的错误。
2.GDB 基本命令
需要使用 GDB 调试的程序,在编译的时候必须加-g 参数,开启调试信息。运行 GDB调试程序通常使用如下方式:
$ gdb <程序名称>
在 GDB 的命令提示符,输入 help,能够得到 GDB 命令的分类,主要有:
● aliases 命令别名
● breakpoints 断点设置
● data 数据查看
● files 指定和检查文件
● internals 维护命令
● running 运行程序
● stack 检查堆栈
● status 状态查看
● tracepoints 跟踪程序
基本命令:
break ----------------设置断点:break + 要设置断点的行号
clear -----------------清除断点:clear + 要清除断点的行号
delete ---------------用于清除断点和自动显示的表达式的命令
disable -------------让所设断点暂时失效。如果要让多个编号处的断点失效可将编号用空格隔开
enable -------------- 与 disable 相对
run -------------------运行调试程序
countinue ----------继续执行正在调试的程序
file --------------------装入想要调试的可执行文件
kill --------------------终止正在调试的程序
list --------------------列出产生执行文件的源代码的一部分
next ------------------执行一行源代码但不进入函数内部
step ------------------执行一行源代码而且进入函数内部
run -------------------执行当前被调试的程序
quit ------------------终止 gdb
watch ---------------监视一个变量的值而不管它何时被改变
make ---------------在 GDB 中重新产生可执行文件
shell -----------------在 gdb 中执行 UNIX shell 命令
where ----------------查看程序可能出错的地方