GDB的基本介绍
GDB是GUN开源组织发布的一个强大的UNIX下的程序调试工具。或许,平时大家更加习惯图形界面的调试,比如VS上的IDE调试;但是如果我们在UNIX或Linux下做软件,我们呢就更加需要熟练GDB这个调试工具。
一般来说,GDB主要能够完成以下的几个功能:
①启动你的程序,可以按照你自己的要求随性所欲的运行程序;
②可以让被调试的程序在你自己所定的位置的断点处挺住;
③当程序被停住时,可以检查此时你的程序中所发生的事情;
④动态的改变你程序的执行环境。
GDB调试使用的是DEBUG版本的,所以我们在生产可执行文件时,我们需要在命令的尾部加上 -g,这样就可以生成的是DEBUG版本下的可执行文件。
调试代码的基本命令
命令 | 作用 |
list或l + 行号 | 显示从行号开始的源代码 |
list或l + 函数名 | 列出某个函数的源代码 |
run或r | 运行程序 |
step或s | 进入函数调用 |
breaktrace或bt | 查看各级函数调用及参数 |
info或i | locals查看当前栈帧局部变量的值 |
info break | 查看断点信息 |
finish | 执行到当前函数返回,然后停下来等待命令 |
print或p | 打印表达式的值,通过表达式可以修改变量的值或者调用函数 |
break或b + 行号 | 在某一行设置断点 |
set var | 修改变量的值 |
quit | 退出调试 |
break + 函数名 | 在某个函数开头设置断点 |
continue或c | 从当前位置开始连续而非单步执行调试程序 |
run或r | 从开头连续执行程序而非单步执行 |
delete breakpoints | 删除断点 |
delete breakpoints n | 删除序号为n的断点 |
disable breakpoints | 禁用断点 |
enable breakpoints | 启用断点 |
info或i breakpoints | 查看当前设置了哪些断点 |
display + 变量名 | 跟踪查看一个变量,每次停下来都显示这个值 |