了解某命令的用法 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
以后或许会做一些增减,发现错误可以私信我哟