一些Linux中gdb的调试命令

了解某命令的用法 help 命令名

例如 显示 list 命令的用法:help list

加载指定的可执行文件 file

例如 file./hello 注意路径名要正确

显示 list 或 l

用来显示一段源程序代码,后面可加的指定显示对象的参数如下

行号:显示指定行号前后若干行源码
正偏移量(如“+n”):显示当前行的后面n行源码
负偏移量(如“-n”):显示当前行的前面n行源码
文件:行号:显示指定文件中指定行号前后若干行源码
函数名:显示指定函数的源码
文件:函数名:显示指定文件中指定函数的源码
地址:显示指定地址处的源码

设置断点 break 或 b

例如 在程序第八行设置断点:b 8
删除断点 delete
使断点无效 disable
使断点有效 enable

查看信息 info 或 i

查看断点 info break 或 info b
查看当前源程序 info source
查看栈信息 info stack
查看当前参数信息 info args
查看CUP内所有寄存器 info(i) registers(register、reg、r)
查看指定寄存器(如EAX) info r eax

运行 run 或 r

如果被调用程序需要参数,可在 run 后面接着输入参数,参数之间要有间隔

单步执行

  • next 或 n (相当于 step over,遇到函数时会完成函数调用进入下一条语句)
  • step 或 s (相当于 step into,遇到函数时会进入函数)

观察 watch

后面加表达式或变量,用于观察其值是否被修改,一旦修改就暂停程序执行

继续执行 continue 或 c

一般用于断点暂停后

查看变量 print 或 p

查看变量或表达式(如x):p x
以十六进制查看寄存器EAX的值 p /x $eax

检查内存单元的值

格式为:x /NFU address
x是examine的缩写,N为要显示的个数,F表示输出格式,U表示每个显示单位的大小,命令的意思为从地址 address 开始以 F 格式显示 N 个大小为 U 的数值

N的默认值为1
F的取值可以为x(十六进制格式显示变量)、d(十进制格式显示变量)、u(无符号整型十进制)、o(八进制格式显示变量)、t(二进制格式显示变量)、a(十六进制格式显示地址)、i(指令地址格式)、c(字符格式显示变量)、f(浮点数格式显示变量)
U的取值可以为b(单字节)、h(双字节)、w(四字节)、g(八字节),默认值为w

退出函数 finish

结束GDB quit 或 q

以后或许会做一些增减,发现错误可以私信我哟

猜你喜欢

转载自blog.csdn.net/weixin_44227356/article/details/103051039
今日推荐