GDB Command Reference - disassemble command

gdb反汇编可用disassemble/disass命令。用法如下:
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 %rbp0x00000000004005d7 <+1>: mov %rsp,%rbp0x00000000004005da <+4>: sub $0xd0,%rsp5 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 # 0x400a900x00000000004005e9 <+19>: movss %xmm0,-0x50(%rbp)0x00000000004005ee <+24>: movss 0x49e(%rip),%xmm0 # 0x400a940x00000000004005f6 <+32>: movss %xmm0,-0x4c(%rbp)

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

(gdb) disassemble /r main
Dump of assembler code for function main:0x00000000004005d6 <+0>: 55 push %rbp0x00000000004005d7 <+1>: 48 89 e5 mov %rsp,%rbp0x00000000004005da <+4>: 48 81 ec d0 00 00 00 sub $0xd0,%rsp0x00000000004005e1 <+11>: f3 0f 10 05 a7 04 00 00 movss 0x4a7(%rip),%xmm0 # 0x400a900x00000000004005e9 <+19>: f3 0f 11 45 b0 movss %xmm0,-0x50(%rbp)0x00000000004005ee <+24>: f3 0f 10 05 9e 04 00 00 movss 0x49e(%rip),%xmm0 # 0x400a940x00000000004005f6 <+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

gdb反汇编disassemble相关推荐

  1. LINUX下GDB反汇编和调试

    Linux下的汇编与Windows汇编最大的不同就是第一个操作数是原操作数,第二个是目的操作数.而Windows下却是相反. 1. 基本操作指令 简单的操作数类型说明.一般有三种. (1)马上数操作数 ...

  2. gcc生成反汇编 linux_linux反汇编调试

    反汇编有有以下几种方法: 1.使用gcc -S test.c 或者gcc -S test.c>out.txt 2.使用gdb调试,在调试中输入disass 函数名 就可以 3.objdump - ...

  3. 使用GDB(二):调试程序常用命令

    文章目录 一.GDB配置文件 二.启动程序/挂载进程 三.改变变量和控制流程 四.打印表达式(变量)信息 五.永久/条件/一次/自动断点操作 六.查看源码及其编译后的相关信息 七.反汇编相关 八.其它 ...

  4. 万变不离其宗——程序动态分析(gdb)

     万剑归宗是无名的招数,但是它却道出一个道理.不管剑招多么花哨,多么厉害,最终还是需要回归正宗与朴实.程序也是一样,不管代码如何实现,不论语言如何,技巧如何,最终也是要能够被正确,有效,可靠的运行 ...

  5. linux反汇编时乱码,Linux反汇编代码理解 标准例子 很好

    ~~~~~C语言代码example.c int triangle( int width, int height) { int arr{0,1,2,3,4}; int area; area = widt ...

  6. 用gdb来学习c语言(linux环境下)

    目录(?)[+] 原文地址:https://www.hackerschool.com/blog/5-learing-c-with-gdb 前几天在hacknews上看到这篇文章,发现它对C的初学者来说 ...

  7. iOS平台的应用程序调试与分析(openssh + gdb)

    标 题: [原创]iOS平台的应用程序调试与分析 作 者: zhuliang 时 间: 2013-04-02,17:09:40 链 接: http://bbs.pediy.com/showthread ...

  8. 函数调用栈的获取原理分析【转】

    转自:http://hutaow.com/blog/2013/10/15/dump-stack/ 上一篇文章<在Linux程序中输出函数调用栈>,讲述了在Linux中如何利用backtra ...

  9. C 语言编程 — 结构化程序流的汇编代码与 CPU 指令集

    目录 文章目录 目录 文章目录 为什么要保留汇编语言 顺序程序流 条件程序流 循环程序流 函数调用栈的工作原理 文章目录 <C 语言编程 - GCC 工具链> <C 语言编程 - 程 ...

最新文章

  1. Android音频焦点申请处理
  2. 企业架构研究总结(2)——问题的由来和基本概念
  3. ssl协议及开源实现openssl
  4. keras中的回调函数
  5. golang的sync包例子
  6. 继承(四):new方法都与基类中方法无关
  7. ios7中的UILabel自适决定大小
  8. 如何学好C和C++?怎么学习C/C++?学习C和C++的技巧是什么?
  9. Excel表格的35招必学秘技
  10. VirtualBox 教程
  11. 【生活】驾照C1-科三手册
  12. s7 modbus测试软件,S7-1200 Modbus-Tcp通讯测试
  13. Kattle Spoon同步工具
  14. 逍遥模拟器使用指南(三、连点 连击)
  15. unraid应用_unraid 篇三:unraid docker之网页文件管理,强迫症的福音
  16. c# 画刻度尺(支持缩放)
  17. 欧洲模拟卡车2(TruckersMP EU)测试欧服连通率的脚本
  18. 猫影视配置2022.06.04
  19. GNSS的基础知识 (GPS定位原理和组成)(1)
  20. 别说眼科医生不做近视激光手术,眼科医生做给你看

热门文章

  1. 泡泡玛特要用“故事”撑起自己的新故事
  2. 【C#】获取机器码MachineCode
  3. BS(三层)—增删改查——Web窗体(aspx)版本
  4. 【转载】s2、s2r链接解析
  5. oracle旬统计,oracle获取上一旬的开始时间和结束时间的实现函数
  6. kindeditor编辑器文件上传漏洞
  7. Vray植物场景表现思路解析蓝海创意云分享
  8. 刮刮卡制作思路--canvas
  9. 笔记本触摸板失灵修复小技巧_生活小技巧,家庭便携电子秤修复教程,科技改变生活...
  10. 关于supesite后台添加外部链接后字符转义的问题