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:

查看某个函数的信息

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

发布了11 篇原创文章 · 获赞 2 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览