GDB 命令小记

GDB 的命令还挺多,这是我记下来的一些常用命令,供大家参考,可能对应不上最新版的GDB,我参考的时候是GCC-8.0 对应的GDB 。

很多命令可以 show 显示出的,都可以用 set 来设置,譬如有 show inferior-tty 就有 set inferior-tty ,大部分情况下反之亦然。

开始调试:

运行一个程序

file [path] 打开一个可执行文件

set args [arg1] [arg2] .... 设置程序的运行参数

 

修改程序的运行环境

cd [dir] 修改启动程序的运行目录

pwd  查看启动程序的运行目录

set env A=B 设置程序的环境变量

 

运行代码

run / r [args] [> outfile] [< infile]  运行程序

kill / k 结束程序

set follow-fork-mode {master | child} 设定 fork 时的跟随模式

info terminal  查看GDB运行程序时所利用的terminal的信息

show inferior-tty 现在正在使用的tty (set 可以设置)

执行命令/函数

 

查看源代码

list [ n | - n | function | linenum ] 查看源代码的内容游标后n行,前n行,某个函数,某个

set listsize [n | unlimited]  设置每次 list 显示的行数 (show)

查看运行进度

bt [num | -n num | full] 查看调用堆栈信息 可以给出层数

 + set backtrace limit [n | unlimited] 设置默认的堆栈显示长度

set filename-display {relative/absolute} 设定文件名显示策略 相对/绝对

查看某个栈帧的信息

frame / f [address ... | function ... | view ... | level ...] 查看当前的栈帧信息

up  [n] 去到外n层栈内,

down [n] 去到里n层栈内

info frame 查看当前过程帧的信息

info locals 查看局部变量的信息(对GCC版本有要求,要求DWARF信息, -g选项需要打开)

info args 查看参数信息

 

查看变量信息

print [expr] 查看某个变量的信息

print /f [expr] 查看变量,用格式

x = 十六进制, d = 十进制 , u = 非负十进制, o = 八进制, t = 二进制 (two), c = 字符, s = 字符串

a = 地址,f = 浮点, z = 类似 x,不过会补齐前缀0, r = 原始

 

 

TODO:

查看某个函数的信息

查看某个函数在变形前的名称 (或变形后)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值