Linux 中包含有一个很有用的调试工具--gdb(GNU Debuger),它可以用来调试C 和 C++程序,功能不亚于Windows 下的许多图形界面的调试工具
和所有常用的调试工具一样,gdb 提供了以下功能: # 监视程序中变量的值 # 在程序中设置断点 # 程序的单步执行 在使用gdb 前,必须先载入可执行文件,因为要进行调试,文件中就必须包含调试信息,所以在用gcc 或 cc 编译时就需要用-g 参数来打开程序的调试选项
调试开始时,必须先载入要进行调试的程序,可以用以下两种方式: * 在启动gdb 后执行以下命令: file 可执行文件路径 * 在 gdb 启动时就载入程序: gdb 可执行文件路径 载入程序后,接下来就是要进行断点的设置,要监视的变量的添加等工作,下面对在这个过程中常会用到的命令逐一进行介绍: * list:显示程序中的代码,常用使用格式有: list 输出从上次调用list 命令开始往后的10 行程序代码
list - 输出从上次调用list 命令开始往前的10 行程序代码
list n 输出第n 行附近的10 行程序代码
list function 输出函数function 前后的10 行程序代码
* forward/search:从当前行向后查找匹配某个字符串的程序行
使用格式: forward/search 字符串 查找到的行号将保存在$_变量中,可以用print $_命令来查看
* reverse-search:和forward/search 相反,向前查找字符串
使用格式同上
* break:在程序中设置断点,当程序运行到指定行上时,会暂停执行
使用格式: break 要设置断点的行号 * tbreak:设置临时断点,在设置之后只起作用一次
使用格式: tbreak 要设置临时断点的行号 * clear:和brea