Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GDB常用命令速查表 #22

Open
gnipbao opened this issue Feb 7, 2018 · 0 comments
Open

GDB常用命令速查表 #22

gnipbao opened this issue Feb 7, 2018 · 0 comments
Labels

Comments

@gnipbao
Copy link
Owner

gnipbao commented Feb 7, 2018

Essential Commands

简记 描述
gdbprogram [core] 调试core文件
b[file:] function 设置断点在函数上
rrun简写 运行你的程序
btbacktrace 显示程序栈
pexpr 打印显示表达式的值
ccontinue 继续运行程序
nnext 下一行 跳过函数调用
sstep 下一行 步入函数调用

Starting GDB

命令 描述
gdb 开启gdb 没有debug文件
gdbprogram 开始调试可执行文件
gdbprogram   core dump file 调试core是程序非法执行后core dump后产生的文件
gdb   --help 命令行帮助选项

Stoping GDB

命令 描述
quitq or EOF 退出GDB; eg C-d
INTERRUPT 终止当前命令,eg C-c

Getting Help

命令 描述
help 列出命令的类型
help class 命令类型的描述
help command 命令描述

Executing your Program

命令 描述
runarglist 使用arglist开始程序
run 使用当前参数列表开始程序
run   outf 使用input output开始程序
kill 结束运行程序
ttydev 使用dev作为标准输入输出为下一次的run
set args arglist 为下一次run指定arglist
set args 指定空参数列表
show args 显示参数列表
show argsvar 显示环境中var的值
set envvar string 设置环境变量var=string
unset envvar 移除环境变量var

Shell Commands

命令 描述
cddir 改变当前目录到dir
pwd 打印当前目录
make 调用 make
shellcmd 执行shell 命令串

Breakpoint and Watchpoints

命令 描述
break[file:] line 设置断点在fileline行处
b[file:] line eg: break mian.c :37.
break[file:] func 设置断点在filefunc
break +offset or -offset 设置断点在offset行距离当前停止
break*addr 在地址addr处设置断点
break...if   expr 设置条件断点在expr不为0的时候
tbreak   ... 临时断点 在到达后无效
rbreak[file:]regex 设置在所有函数匹配 regexfile
watchexpr 设置一个观察点对表达式expr
catchevent 设置在event上能够被catch,throw,exec,fork,vfork,load,or unload.
info break 显示定义的断点
info watch 显示定义的观察点
clear 删除调断点在下一个描述上
clear[file:]fun 删除在fun()入口的断点
clear[file: ]line 清除第line行的断点
delete[n] 删除断点n[或者断点n]
disable[n] 暂停第n个断点
enable[n] 开启第n个断点

Execution Control

命令 描述
continue [count] 继续执行,到下一个断点处或运行结束
c[count] continue简写
step[count] 单步调试如果有函数调用,则进入函数
s[count] step简写
stepi[count] 单步执行一条机器指令
si[count] stepi 简写
next[count] 执行下一行包括函数调用
n[count] next 简写
nexti[count] 执行下一条机器指令而不是原始行
ni[count] nexti 简写
until[location] 运行至某行,不仅仅用来跳出循环
finish 运行程序直到当前函数完成返回,并打印函数返回时的堆栈地址返回值及参数值
jumpline 重新执行在指定的行数或地址
jump*   address

Display

命令 描述
print   [/f] [expr] 显示表达式expr的值
p   [/f] [expr] 格式化f 详细
x  [N u f] expr 查看内存的 /后可以指定格式化显示
whatis   查询变量或函数

Source Code

命令 描述
dir   names 添加目录名names到源路径
dir   清理源路径
show dir   显示当前源路径
whatis   查询变量或函数
list   显示下十行源代码或者将接着上一次 list 命令的输出下边的内容
list  - 显示前十行
list   lines 将显示当前文件以lines为中心的前后10行代码
info line   num 显示编译代码在num行处开始结束地址
info source   显示源文件的名字
info sources   显示所有源文件在使用中
forw   regex 搜索regex在下面源码中

GDB Quick 查询卡片

GDB QUICK REFERENCE

参考资料

http://www.yolinux.com/TUTORIALS/GDB-Commands.html
https://sourceware.org/gdb/onlinedocs/gdb/
http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/gdb.html

@gnipbao gnipbao added the refcard reference card label Mar 30, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant