gdb调试的入门技巧

gdb是Linux下单步调试的利器

首先想要调试代码 必须要在编译的时候加上 -g,例如:gcc -g test.c -o test

这个时候就在生成的可执行文件加入了调试信息

怎么调试代码呢   gdb test (gdb加上需要调试可执行文件名)

gdb调试的入门技巧_第1张图片gdb调试的入门技巧_第2张图片

上面第一个图是我贴的用来测试的源代码,第二图是我开始调试的命令。

可以看到 run(r)这个命令,这个命令是遇到断点会停止运行

可以用continue(c)继续运行,直到遇到下一个断点

 可以用list(l)查看调试的源代码,

设置断点:break(b) + 行号,这种设置断点是最常用的,还有一种条件断点 b 20 if a == 10(当a等于10的时候,在20行设置一个断点),info b:查看所有断点信息 ,delete b (断点编号),括号里面的是可选的,加了是删除某个断点,没加是删除所有断点

设置观察点:watch varname:观察某个变量值的变化, info watch:查看所有观察点信息

start:开始调试  

next(n):单步执行   

step(s):当前执行到函数,进入函数里执行

bt:显示当前堆栈信息, frame(f) +编号:切换堆栈, 切换到对应编号的堆栈

info args:显示当前函数传入的参数信息

info locals:显示当前局部变量信息 

info register(info r):打印所有寄存器的信息

finish:运行到当前函数返回, quit:退出调试

p varname:打印某个变量的值    

p &varname 打印变量的地址   

x/x address:打印某个地址中的值,以16进制

disassemble 某个函数名    反汇编某个函数

display /i $pc :用16进制的方式显示当前指令的汇编 ,undisplay:取消显示

你可能感兴趣的:(gdb)