Welcome My Friend

gdb instruction

About GDB

GDB, the GNU Project debugger, allows you to see what is going on `inside’ another program while it executes – or what another program was doing at the moment it crashed.

g++相关:https://www.cnblogs.com/lidan/archive/2011/05/25/2239517.html

基本指令:

list/l 列出源代码(十行)
next/n 跳过直接执行不进入函数内部(像OD里面的F8)
step/s 进入函数体(像OD里面的F7)
backtrace/bt 查看函数调用的栈帧,可以看到栈帧号
info/i 查看函数局部变量值,一般可写i locals
也可以先bt然后再输入i locals
还可以f [栈帧号]然后i locals看这个函数里面的局部变量值
frame/f [栈帧号] 可产看其他函数体的局部变量值,配合i locals使用
finish 结束
set $var 修改变量值
display $var 每次停下的时候显示var值,使用undisplay取消
break [行号] 在某行设置断点
i breakpoints 显示断点信息
delete breakpoints [号] 删除断点,不加断点号就是删除所有
disable breakpoints [号] 禁用某个断点,不加断点号就是禁用所有
continue 继续运行
run 执行
x 查看输入
x/7b input表示每个字节一组(b),7表示打印7组
watch 设置观察点
例如watch input[i] 每次运行查看input数组里面i的值
i watch查看设置了哪些断点
p print

一些注意事项:1.如果某个函数的变量发生越界错误,可能不会立刻发生错误,而是在函数返回时产生段错误

-------------本文结束-------------

文章作者: Summary
文章链接: http://noblestaspiration.net/2018/09/29/gdb-instruction/
版权声明:博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议,转载请注明出处!

想要分我一杯羹吗