GDB调试器常用命令

###最近需要使用GDB调试器,从网上摘抄一些常用命令备查,后面根据使用情况,会不断补充完善该篇内容!###

(gdb)backtrace:查看函数的调用的栈帧和层级关系,简写bt

(gdb)break+num:在第num行设置断点,简写b

(gdb)continue:继续运行,简写c

(gdb)delete breakpoints num:删除第num个断点,简写d

(gdb)display:追踪查看具体变量值

(gdb)disable breakpoints:禁用断点

(gdb)enable breakpoints:启用断点

(gdb)finish:结束当前函数,返回到函数调用点

(gdb)frame:切换函数的栈帧,简写f

(gdb)help:查看命令帮助,具体命令查询在gdb中输入help + 命令,简写h

(gdb)info:查看函数内部局部变量的数值,简写i

(gdb)info breakpoints:查看当前设置的所有断点

(gdb)info threads:   查看当前线程信息

(gdb)i watch:显示观察点

(gdb)list:查看原代码(list-n,从第n行开始查看代码。list+ 函数名:查看具体函数),简写l

(gdb)next:单步调试(逐过程,函数直接执行),简写n

(gdb)print:打印值及地址,简写p

   (gdb)   ptype my_struct 打印数据结构定义

(gdb)quit:退出gdb,简写q

(gdb)reverse-continue: 返回上个断点,GDB7.0以后支持该命令,多线程使用此命令有问题。

(gdb)reverse-next:返回上个函数过程,多线程测试没有成功。

(gdb)run:重新开始运行文件(run-text:加载文本文件,run-bin:加载二进制文件),简写r

(gdb)run argv[1] argv[2]:调试时命令行传参

(gdb)save breakpoint XXX.bp(xxx为待保存的文件名)将断点信息保存到文件,方便下次直接访问。下次访问命令为:gdb nginx -x XXX.bp(以调试nginx为例)。

(gdb)set:设置变量的值

(gdb)start:单步执行,运行程序,停在第一执行语句

(gdb)step:单步调试(逐语句:跳入自定义函数内部执行),简写s

(gdb)set follow-fork-mode child#Makefile项目管理:选择跟踪父子进程(fork())

(gdb)undisplay:取消追踪观察变量

(gdb)until:调到指定的行执行,(可用于跳出循环语句)

(gdb)watch:被设置观察点的变量发生修改时,打印显示

(gdb)x /20xh 0x000001:gdb 查看内存,/20后面b(表示单字节)h(表示双字节)w(表示四字节)g(表示八字节)

(gdb)x:查看内存x/20xw 显示20个单元,16进制,4字节每单元

   core文件:先用$ ulimit -c 1024 开启core,当程序出错会自动生成core文件。调试时 gdb a.out core

 (gdb)汇编单步执行:1,gcc编译时开启 -g选项。2,gdb -tui XXX(XXX代表可执行文件)。3,layout regs。4,si 单步执行 同s命令,ni同n命令。

ctrl+D:退出输入

参考文献:

https://www.cnblogs.com/tangtangde12580/p/8045980.html

2020-11-29 10:05:02

posted @ 2020-11-29 10:05  UNkey  阅读(552)  评论(0)    收藏  举报