gdb 常用命令总结(精优)

格式说明:

  • [xxx]:可选参数,即可以指定可以不指定,实际输入的内容是 xxx
  • <xxx>:占位参数,即必须指定的参数,实际输入的内容是 xxx

gdb 常用命令:

  • gdb [file]:进入 gdb 调试环境 / 进入 gdb 调试环境,并加载被调试被调试文件 file
  • file <file>:加载被调试文件 file
  • r [运行时参数]r=run,运行被调试程序。如果没有设置断点,则运行完整个程序,如果有断点,运行到第一个断点处
  • start:开始调试,停在第一行代码处
  • l [line_number]l=list,查看第 1 行附近的源代码 / 查看第 line_number 行附近的源代码
  • b <line_number>b=breakpoint,在第 line_number 行设置断点
  • b <function>:让程序在调用函数时触发断点,e.g. b fun1。如果希望将断点设置在 C++ 类的成员函数上,可以使用 类名::函数名 的形式设置断点,e.g. b TestClass::testFunc(int)
  • i bi b=info break,查看所有的断点信息
  • d [break_number]d=delete,删除所有断点 / 删除编号为 break_number 的断点
  • btbt=backtrack,查看栈信息
  • f <x>f=frame,切换到第 x 帧。其中 x 会在 bt 命令中显示,从 0 开始,0 表示栈顶。
  • up/down <x>:往栈顶/栈底移动 x 帧,当省略 x 时默认为 1
  • condition:可以在设置的条件成立时,自动停止当前的程序,先使用 b 或者 watch 设置断点,然后用 condition 来修改这个断点的停止的条件。e.g. condition <break_number> <expression> 修改当前断点的停止条件为 expression 为真值,condition <break_number> 清除断点的停止条件,恢复为一般断点
  • ignore <break_number> <count>:忽略该断点的前 count 次停止。e.g. ignore 1 100 忽略断点 1 的前 100 次停止,直到 101 次程序才停住
  • ss=step,执行一行源程序代码,如果此行代码中有函数调用,则进入该函数
  • finish:函数结束,s 进入到函数后,可用该命令跳出被调函数,返回调用函数
  • nn=next,执行一行源程序代码,不管该行有没有函数调用
  • cc=continue,继续执行被调试程序,直至下一个断点或程序结束
  • uu=until,直到当前循环完成
  • p <变量名>p=print,临时显示某个变量
  • display <变量名>:跟踪某个变量,一直显示
  • undisplay <已被跟踪的某个变量编号的编号>:取消跟踪某个变量
  • watch <expression>:expression 可以是变量、地址、表达式。监视 expression 的值,一旦值有变化,程序停住。取消监视:先用 i b 查看所有断点信息,其中包含监视 expression,然后 d <expression 的编号> 取消监视
  • set args <argv1> <argv2> ...:设置运行时参数
  • show args:查看运行时参数
  • qq=quit,退出 gdb 调试环境
  • help <cmd>:gdb 帮助命令
  • 回车:重复上次命令


未完 ......

点击访问原文(进入后根据右侧标签,快速定位到本文)

猜你喜欢

转载自www.cnblogs.com/sinicheveen/p/11997724.html