首页 > 数据库技术 > 详细

gdb常用

时间:2020-04-17 14:15:35      阅读:81      评论:0      收藏:0      [点我收藏+]

1.反汇编相关

1.1 设定intel汇编

gdb 默认是att汇编,可通过以下指令进行转换

set disassembly-flavor intel 

从配置文件上进行设置也可以

echo "set disassembly-flavor intel" > ~/.gdbinit

1.2 当前运行代码反汇编

disassemble

1.3 反汇编特定函数

disassemble /m main

/m 可以现实对应的源码

如果在gdb外的话直接使用objdump -S 也是可以看到对应的源码的

1.4 对特定行进行反汇编

先使用info line 找到行对应的汇编地址,比如要找 agora.cpp:308, 看到start address 0x7f51ff963634 和 end address 0x7f51ff963656 , 就是对应的汇编程序段

(gdb) info line agora.cpp:308
Line 308 of "agora.cpp" starts at address 0x7f51ff963634 <rtm_recv_channel_msg(void*, void*)+132> and ends at 0x7f51ff963656 <rtm_recv_channel_msg(void*, void*)+166>

然后使用disassemble 直接查看该段内存(该功能对gdb版本有要求)

disassemble 0x7f51ff963634 0x7f51ff963656 

也可以使用x查看内存的方式进行查看

x/i 0x7f51ff963634 

/i 表示按照指令地址格式

2.layout相关

常用

源码汇编对应调试
layout split 
显示所有寄存器
layout regs
退出layout
ctrl+x a

2.1 layout常用

layout:用于分割窗口,可以一边查看代码,一边测试。主要有以下几种用法:
layout src:显示源代码窗口
layout asm:显示汇编窗口
layout regs:显示源代码/汇编和寄存器窗口
layout split:显示源代码和汇编窗口
layout next:显示下一个layout
layout prev:显示上一个layout
Ctrl + L:刷新窗口
Ctrl + x,再按1:单窗口模式,显示一个窗口
Ctrl + x,再按2:双窗口模式,显示两个窗口
Ctrl + x,再按a:回到传统模式,即退出layout,回到执行layout之前的调试窗口。

3.内存

3.1 内存查看

格式: x /nfu <addr>
n: 查看的number

x 是 examine 的缩写

n表示要显示的内存单元的个数

f表示显示方式, 可取如下值
x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
i 指令地址格式
c 按字符格式显示变量。
f 按浮点数格式显示变量。

u表示一个地址单元的长度
b表示单字节,
h表示双字节,
w表示四字节,
g表示八字节

ref

GDB 单步调试汇编_cnblogs
layout 的使用
disasemble的使用
gdb x的用法

gdb常用

原文:https://www.cnblogs.com/ishen/p/12719131.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!