GDB基本指令

objdump -t 输出目标二进制文件的符号表,可查看所有函数
objdump -d 反编译二进制文件,输出汇编代码,“objdump -d bomb > bomb.txt”

##GDB基本指令
1.gdb(运行gdb,若直接指定操作的文件输入“gdb 文件名”);
2.r或run(运行制定的二进制可执行文件);
3.q或quit(退出gdb);
4.file(指定要操作的文件"f 文件名");
5.b或break(设置断点)
方法1:“b 函数名”(在该函数体内第一行指令前设置断点)
方法2:“b 文件名.后缀:行号”
6.设置完后输入run运行程序会执行到断点处,
7.c或continue程序会继续执行断点后的指令,整个程序结束后跳回gdb;
8.n或next(单步进行调试),输入n并回车,打印的语句是接下来要执行的语句;
9.s或step是进入要调用的函数内部;
10.l或list显示接下来要执行的10行代码;
11.p或print+变量名(查看变量的值),+函数名(查看函数所在地址),+数组名(打印整个数组);
12.gdb中直接敲回车“enter”是执行上一次执行的指令;
13.输入"n(或别的开头字母) tab键"打印所有n开头的指令;
14.i或info查询指令,“i b”(查询所有的断点),“i r(或reg)”(查询寄存器状态);
15.d或delete删除所有的断点;“d 序号(为1,2,3…)”删除指定断点;
16.disp或display(跟踪查看某个变量,每次赢下来都显示它的值);
17.st或start(执行main函数第一行语句就停下);
18.k或kill(终止正在调试的程序);
19.watch(监视变量值的变化);
20.bt或backtrace(查看函数调用信息,即堆栈);
21.f或frame(查看栈帧);
22.x或examine查看指定寄存器(或变量表达式)里的内容
“x/格式 $rdi(或变量表达式)” x/4wd $rsp 检查寄存器或某个地址
格式包括:
o-八进制
x-十六进制
d-十进制
u-无符号十进制
t-二进制
f-浮点数
a-地址
c-字符
s-字符串
i-指示

附:GDB指令参考
https://visualgdb.com/gdbreference/commands/

猜你喜欢

转载自blog.csdn.net/m0_47595520/article/details/107823174
今日推荐