gdb的学习使用
gdb一般调试使用一般十个左右足矣
加载被调试文件的可执行文件
一般都跳到被执行文件的当前目录下。然后使用gdb 文件名即可,也可以使用根目录的形式
运行程序
r 是run的缩写,会自动运行程序到第一个断点处,若无断点,跑完整个程序
继续执行程序
c 是continue的缩写,会继续执行程序,直到遇到下一个断点
设置断点
b是breakpoint的缩写
b 行号例如b 8可在第八行设置一个断点
b 函数名称例如b main 可以在main函数位置设置一个断点
删除断点
d是Delete breakpoint的缩写
d 编号:例如d 1可删除我设置的第一个断点
单步执行源代码
s和n:两者都会执行下一步的程序源代码,不同的是,若下一步是一个函数,s会进入该函数中,等待你的指令。而n则会直接把这个函数一起执行完毕
单步执行汇编
si和ni跟s和n的功能类似,只不过执行的是汇编指令
显示变量的值
p是print的缩写
p 变量名例如p a会显示出变量a的值,如果查看变量地址使用 p &变量名
退出
q:quit的缩写,也可以使用Ctrl+D
显示函数对应的汇编代码
disas
disas 函数名例如disas main 会显示出main对应的汇编代码