Linux:gdb反汇编disassemble

11 篇文章 1 订阅
10 篇文章 0 订阅

gdb反汇编可用disassemble/disass命令。用法如下:
 

1、基本功能介绍

disassemble

disassemble [Function]

        指定要反汇编的函数。如果指定,反汇编命令将产生整个函数的反汇编输出。

(gdb) disassemble main

disassemble [Address]

        指定要反汇编的地址。请注意,当仅指定一个地址时,此命令将反汇编包含给定地址的整个函数,包括其上方的指令。

(gdb) disassemble 0x00000000004008fd

disassemble [Start],[End]

        指定要反汇编的起始地址和结束地址。如果使用这种形式,该命令将不会反汇编整个函数,而只会反汇编起始地址和结束地址之间的指令。例如:

(gdb) disassemble 0x000000000040068a,0x00000000004006ac

disassemble [Function],+[Length]
disassemble [Address],+[Length]

        指定从给定地址或函数开始反汇编的字节数,例如:

(gdb) disassemble main, +10

disassemble /m [...]
        指定此选项后,反汇编命令将显示与反汇编指令相对应的源代码行。例如:

(gdb) disassemble /m main
Dump of assembler code for function main:
4 {
    0x00000000004005d6 <+0>: push %rbp
    0x00000000004005d7 <+1>: mov %rsp,%rbp
    0x00000000004005da <+4>: sub $0xd0,%rsp
 
 
5 float vcs[16] = {0.931,0.928,0.925,0.922,0.920,0.917,0.914,0.911,0.904,0.896,0.889,0.881,0.874,0.866,0.859,0.851};
    0x00000000004005e1 <+11>: movss 0x4a7(%rip),%xmm0 # 0x400a90
    0x00000000004005e9 <+19>: movss %xmm0,-0x50(%rbp)
    0x00000000004005ee <+24>: movss 0x49e(%rip),%xmm0 # 0x400a94
    0x00000000004005f6 <+32>: movss %xmm0,-0x4c(%rbp)

disassemble /r [...]
        当指定此选项时,反汇编命令将显示所有反汇编指令的原始字节值。

(gdb) disassemble /r main
Dump of assembler code for function main:
    0x00000000004005d6 <+0>: 55 push %rbp
    0x00000000004005d7 <+1>: 48 89 e5 mov %rsp,%rbp
    0x00000000004005da <+4>: 48 81 ec d0 00 00 00 sub $0xd0,%rsp
    0x00000000004005e1 <+11>: f3 0f 10 05 a7 04 00 00 movss 0x4a7(%rip),%xmm0 # 0x400a90
    0x00000000004005e9 <+19>: f3 0f 11 45 b0 movss %xmm0,-0x50(%rbp)
    0x00000000004005ee <+24>: f3 0f 10 05 9e 04 00 00 movss 0x49e(%rip),%xmm0 # 0x400a94
    0x00000000004005f6 <+32>: f3 0f 11 45 b4 movss %xmm0,-0x4c(%rbp)
 
    0x00000000004005fb <+37>: f3 0f 10 05 95 04 00 00 movss 0x495(%rip),%xmm0 # 0x400a98

2、扩展

汇编语言常用命令

3、参考

GDB Command Reference - disassemble command

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术探索者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值