码迷,mamicode.com
首页 > 数据库 > 详细

gdb指令合集

时间:2021-01-30 11:58:22      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:fun   byte   varname   class   sas   vmm   mmap   ddr   amp   

GDB调试命令总结

步入

s
si n
ni

注:n和s针对源代码的步入,而ni和si针对汇编语言,并且使用s/si步入时遇到函数会进入到函数内部,而n/ni不会

下断点

b(break)
b function_name
b *<addr>
delete num //删除序号为num的断点

执行

r(run) //开始执行
c(continue) //继续执行
finish //运行程序,直到当前函数运行完毕返回再停止。例如进入的单步执行如果已经进入了某函数,而想退出该函数返回到它的调用函数中,可使用命令finish. 跳转到指定位置 jump num //跳转执行程序到第num行 

打印数值

p命令

p/[<format>] <expr>
p system/main 显示某个函数地址  
p $esp 显示寄存器 
p/x p/a p/b p/s
p 0xff - 0xea 计算器 
print &VarName 查看变量地址 
p *0xffff4ade 查看地址的数值

x命令

x/<n/f/u> <addr>
n是一个正整数,表示需要显示的内存单元的个数 
f 表示显示的格式(可取如下值: x 按十六进制格式显示变量。d 按十进制格式显示变量。u 按十进制格式显示无符号整型。o 按八进制格式显示变量。t 按二进制格式显示变量。a 按十六进制格式显示变量。i 指令地址格式c 按字符格式显示变量。f 按浮点数格式显示变量。)
u 表示从当前地址往后请求的字节数 默认4byte,u参数可以用下面的字符来代替,b表示单字节,h表示双字节,w表示四字 节,g表示八字节
<addr>表示一个内存地址
x/xw addr 显示某个地址处开始的16进制内容,如果有符号表会加载符号表
x/x $esp 查看esp寄存器中的值 
x/s addr 查看addr处的字符串
x/b addr 查看addr处的字符
x/i addr 查看addr处的反汇编结果

info指令

info register $ebp 查看寄存器ebp中的内容 (简写为 i r ebp)
i r eflags 查看状态寄存器
i r ss 查看段寄存器
i b 查看断点信息
i functions 查看所有的函数

其他指令

disas addr 查看addr处前后的反汇编代码
stack 20 查看栈内20个值
show args 查看参数
vmmap 查看映射状况 peda带有
readelf 查看elf文件中各个段的起始地址 peda带有
parseheap 显示堆状况 peda带有

 

gdb指令合集

标签:fun   byte   varname   class   sas   vmm   mmap   ddr   amp   

原文地址:https://www.cnblogs.com/eur1ka/p/14345910.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!