|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
##############################################################################
|
|
|
|
|
# GDB CHEATSHEET (中文速查表) - by skywind (created on 2018/02/20)
|
|
|
|
|
# Version: 2, Last Modified: 2018/02/26 02:46
|
|
|
|
|
# Version: 3, Last Modified: 2018/02/26 22:47
|
|
|
|
|
# https://github.com/skywind3000/awesome-cheatsheets
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
|
@ -91,6 +91,83 @@ info locals # 打印帧内的相关变量
|
|
|
|
|
info args # 打印函数的参数
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
# 代码浏览
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
|
|
list 101 # 显示第 101 行周围 10行代码
|
|
|
|
|
list 1,10 # 显示 1 到 10 行代码
|
|
|
|
|
list main # 显示函数周围代码
|
|
|
|
|
list basic.c:main # 显示另外一个源代码文件的函数周围代码
|
|
|
|
|
list - # 重复之前 10 行代码
|
|
|
|
|
list *0x22e4 # 显示特定地址的代码
|
|
|
|
|
cd dir # 切换当前目录
|
|
|
|
|
pwd # 显示当前目录
|
|
|
|
|
search {regexpr} # 向前进行正则搜索
|
|
|
|
|
reverse-search {regexp} # 向后进行正则搜索
|
|
|
|
|
dir {dirname} # 增加源代码搜索路径
|
|
|
|
|
dir # 复位源代码搜索路径(清空)
|
|
|
|
|
show directories # 显示源代码路径
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
# 浏览数据
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
|
|
print {expression} # 打印表达式,并且增加到打印历史
|
|
|
|
|
print /x {expression} # 十六进制输出,print 可以简写为 p
|
|
|
|
|
print array[i]@count # 打印数组范围
|
|
|
|
|
print $ # 打印之前的变量
|
|
|
|
|
print *$->next # 打印 list
|
|
|
|
|
print $1 # 输出打印历史里第一条
|
|
|
|
|
print ::gx # 将变量可视范围(scope)设置为全局
|
|
|
|
|
print 'basic.c'::gx # 打印某源代码里的全局变量,(gdb 4.6)
|
|
|
|
|
print /x &main # 打印函数地址
|
|
|
|
|
x *0x11223344 # 显示给定地址的内存数据
|
|
|
|
|
x /nfu {address} # 打印内存数据,n是多少个,f是格式,u是单位大小
|
|
|
|
|
x /10xb *0x11223344 # 按十六进制打印内存地址 0x11223344 处的十个字节
|
|
|
|
|
x/x &gx # 按十六进制打印变量 gx,x和斜杆后参数可以连写
|
|
|
|
|
x/4wx &main # 按十六进制打印位于 main 函数开头的四个 long
|
|
|
|
|
x/gf &gd1 # 打印 double 类型
|
|
|
|
|
help x # 查看关于 x 命令的帮助
|
|
|
|
|
info locals # 打印本地局部变量
|
|
|
|
|
info functions {regexp} # 打印函数名称
|
|
|
|
|
info variables {regexp} # 打印全局变量名称
|
|
|
|
|
ptype name # 查看类型定义,比如 ptype FILE,查看 FILE 结构体定义
|
|
|
|
|
whatis {expression} # 查看表达式的类型
|
|
|
|
|
set var = {expression} # 变量赋值
|
|
|
|
|
display {expression} # 在单步指令后查看某表达式的值
|
|
|
|
|
undisplay # 删除单步后对某些值的监控
|
|
|
|
|
info display # 显示监视的表达式
|
|
|
|
|
show values # 查看记录到打印历史中的变量的值 (gdb 4.0)
|
|
|
|
|
info history # 查看打印历史的帮助 (gdb 3.5)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
# 目标文件操作
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
|
|
file {object} # 加载新的可执行文件供调试
|
|
|
|
|
file # 放弃可执行和符号表信息
|
|
|
|
|
symbol-file {object} # 仅加载符号表
|
|
|
|
|
exec-file {object} # 指定用于调试的可执行文件(非符号表)
|
|
|
|
|
core-file {core} # 加载 core 用于分析
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
# 信号控制
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
|
|
info signals # 打印信号设置
|
|
|
|
|
handle {signo} {actions} # 设置信号的调试行为
|
|
|
|
|
handle INT print # 信号发生时打印信息
|
|
|
|
|
handle INT noprint # 信号发生时不打印信息
|
|
|
|
|
handle INT stop # 信号发生时中止被调试程序
|
|
|
|
|
handle INT nostop # 信号发生时不中止被调试程序
|
|
|
|
|
handle INT pass # 调试器接获信号,不让程序知道
|
|
|
|
|
handle INT nopass # 调试起不接获信号
|
|
|
|
|
signal signo # 继续并将信号转移给程序
|
|
|
|
|
signal 0 # 继续但不把信号给程序
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
|