gdb 常用操作

  • $gdb [file name]
    运行gdb并打开文件

  • $gdb -tui [file name]
    运行带有terminal ui的gdb。注意:若程序有输出,会破坏tui的显示,可使用重定向将程序输出到其他pts

  • focus/layout
    同上

  • tty [files]
    将程序输出重定向,例如:tty /dev/pts/1,如果存在pts-1,程序输出将显示在pts-1,可使用 $ w 查看当前登录用户

  • file
    使用gdb打开文件

  • l [identifier/line number]
    显示某标识符或行号附近的代码

  • l [file name]:[line number], [line number]
    显示某文件某行到某行的代码

  • r
    运行程序

  • b [line number]
    打断点

  • d [break number]
    删除断点

  • p [variable name] 或 p {[variable name], [variable name], ...}
    显示当前一个或多个变量的值

  • display [variable name] 或 display {[variable name], [variable name], ...}
    显示当前一个或多个变量的值,会持续显示

  • undisplay [variable number]
    取消显示变量,参数为变量索引号

  • watch [variable name] 或 watch {[variable name], [variable name], ...}
    显示当前一个或多个变量的值,会在变量发生改变时显示

  • ctrl + C
    发送中断信号给程序,gdb会将程序暂停

  • kill [filename]
    终止当前程序

  • c
    继续执行程序

  • n
    执行下一行,步过

  • s
    执行下一条语句,步进

  • f
    查看当前堆栈

  • set [variable name]
    设置变量值

  • rwatch [variable name]
    如果变量被读取,则暂停程序

  • awatch [variable name]
    如果变量被写入,则暂停程序

  • disable [break number]
    禁用断点

  • enable [break number]
    启用断点

  • return
    强制从当前函数返回

  • q
    退出程序

  • stepi
    执行下一句汇编,步进

  • nexti
    执行下一句汇编,步过

  • ignore [break number] [times]
    设置一个断点忽略册数

  • xbreak
    在当前函数退出点上设置一个断点

  • txbreak
    在当前函数退出点上设置一个一次性断点

  • backtrace/bt
    查看堆栈,可在函数崩溃时调试使用

  • whatis
    显示当前变量的值和类型

  • ptype
    显示变量类型

  • make
    重新make

  • shell
    运行shell,执行exit可回到gdb

  • finish
    继续执行直到当前函数返回

qrcode

创建时间:2020-06-13 10:40:33

最后修改时间:2020-06-13 10:40:33