`
omygege
  • 浏览: 1354830 次
文章分类
社区版块
存档分类
最新评论

gdb 调试(五)检查文件之搜索和查看汇编指令

 
阅读更多

1、 源码文件查找

gdb调试可以通过以下三个命令查找源文件。

forward-search regexp

从源文件首行还是搜索 关键字regexp,并将搜索到的行号记录。这个记录可以被下一个gdb命令引用。

例:for void

搜索结果:38 void

接下来运行命令:list 则显示以38行为中心的10行内容。(要显示的行数可以指定)

search regexp

从当前行向下搜索。

reverse-search regexp

从最后一行向上搜索。

2、 查看机器指令(汇编)

disassemble

disassemble /m 十六进制显示汇编指令

disassemble /r

disassemble start,end 指定起始,结束地址

disassemble start,+length 指定起始地址和显示长度

获取地址可如下面的列子:

(gdb) info line main

Line 895 of "builtin.c" starts at pc 0x634c and ends at 0x6350.

(gdb) info line *0x63ff

Line 926 of "builtin.c" starts at pc 0x63e4 and ends at 0x6404.

 (gdb) disas 0x634c, 0x6404

 Dump of assembler code from 0x32c4 to 0x32e4:
 0x32c4 <main+204>: addil 0,dp
 0x32c8 <main+208>: ldw 0x22c(sr0,r1),r26
 0x32cc <main+212>: ldil 0x3000,r31
 0x32d0 <main+216>: ble 0x3f8(sr4,r31)
 0x32d4 <main+220>: ldo 0(r31),rp
 0x32d8 <main+224>: addil -0x800,dp
 0x32dc <main+228>: ldo 0x588(r1),r26
 0x32e0 <main+232>: ldil 0x3000,r31
 End of assembler dump.
分享到:
评论

相关推荐

    GDB调试和实践基本介绍.doc

    详细讲解C语言在预处理,编译, 链接, 汇编几个阶段的工作流程, 通过在Makefile中添加相关参数来进行Debug GDB调试, 讲解常用的调试指令和操作方法。

    Linux指令一周通 (技术图书大系).azw3

    7.8 gdb指令:GNU调试器 7.9 gdbserver指令:远端GNU服务器 7.10 ld指令:链接目标文件和库文件 7.11 make指令:编译内核或模块 7.12 nm指令:显示目标文件中的符号 7.13 startx指令:启动x-Windows图形界面 7.14 ...

    Linux与嵌入式(个人总结笔记,可自行删改)

    第三章:Linux环境下的C编程(GCC编译过程和GCC编译指令,GDB调试器) 第四章:c程序维护工具 make (makefile文件命名规则,含有PDF文件,内嵌在word里面,可打开,伪目标,简化,makefile变量等内容) 第五章:ARM...

    peda:PEDA-GDB的Python漏洞利用开发援助

    添加命令以支持调试和漏洞利用开发(有关完整的命令列表,请使用peda help ): aslr显示/设置GDB的ASLR设置checksec检查二进制文件的各种安全选项dumpargs在调用指令处停止时显示传递给函数的参数dumprop转储特定...

    SP2019-LAB2.3-3170103455-黄炯睿1

    1. 新建一个Stack.c文件并按题目要求编译和设置权限 2. 使用gdb对stack文件进行调试,并使用disass查看文件的汇编指令 3. 在0x0804

    p3da:P3DA-GDB的Python3漏洞利用开发协助

    增强gdb的显示:在调试过程中着色并显示反汇编代码,寄存器,内存信息。 添加命令以支持调试和漏洞利用开发(有关完整的命令列表,请使用peda help ): aslr显示/设置GDB的ASLR设置 checksec检查二进制文件的...

    Gcc 常用选项参数解释

    Gcc 常用选项 ...-g 在生成的目标文件中添加调试信息,所谓调试信息就是源代码与指令之间的对应关系,在gdb调试和objdump反汇编要用到这些信息 -Idir dir是头文件所在的目录 -Ldir dir是库文件所在的目录

    《深入理解计算机系统》3.38题解——缓冲区溢出攻击实例文档

    同时在使用GDB调试程序时,命令的使用也能对尽快找出问题提供帮助,本文只简单地使用了p、x等命令,其他的注入display、layout命令更能帮助我们发现问题、解决问题。 另外,也需要对该类问题举一反三,从中可以观察...

    ARM应用系统开发详解

    7.2.3 使用GDB调试程序 7.3 建立uClinux开发环境 7.3.1 建立交叉编译器 7.3.2 uClinux针对硬件的改动 7.3.3 编译uClinux内核 7.3.4 内核的加载运行 7.4 在uClinux下开发应用程序 7.4.1 串行通信 7.4.2 socket编程 ...

    嵌入式应用层开发要学习什么?

    学习Linux操作系统的概念和安装方法,理解Linux下的基本命令、管理配置和编辑器,包括VI编辑器,GCC编译器,GDB调试器和 Make 项目管理工具等知识。 第二阶段 精通linux下C语言 通过大量编程实例重点学习C语言的...

    asmbl:白痴的dosBox,gcc和gdb接口

    asm来汇编.s文件(仅当您使用rsm打开dosBox时才有效) dbg调试.exe文件(仅当您使用rsm打开dosBox时有效) 懒人把戏 我们俩都知道您没有时间可以浪费,因此我们为您创建了“ dosboxHere.vbs”,它可以在当前路径中...

    IDA.Pro代码破解揭秘part1

    第3章 可移植可执行文件格式和可执行链接格式 27 3.1 导言 28 3.2 可移植可执行文件格式 28 3.3 可执行链接格式 35 3.4 小结 47 第4章 实战1 49 4.1 导言 50 4.2 跟踪执行流 50 4.3 快速跟踪并找出解决方案 ...

    实验二 Defusing Binary-Bomb1

    (1) 熟悉 MIPS 指令集 (2) 根据反汇编程序可以分析程序的功能和执行流程 (3) 熟悉 GDB 调试工具,帮助程序理解 (1)打开终端,进入 gdb

    ARM详解 ARM入门必备

    7.2.3 使用GDB 调试程序 177 7.3 建立uClinux 开发环境 180 7.3.1 建立交叉编译器 181 7.3.2 uClinux 针对硬件的改动 184 7.3.3 编译uClinux 内核 185 7.3.4 内核的加载运行 187 7.4 在uClinux 下开发应用程序 188 ...

    ARM开发详解.pdf

    7.2.3 使用GDB 调试程序 177 7.3 建立uClinux 开发环境 180 7.3.1 建立交叉编译器 181 7.3.2 uClinux 针对硬件的改动 184 7.3.3 编译uClinux 内核 185 7.3.4 内核的加载运行 187 7.4 在uClinux 下开发应用程序 188 ...

    ARM嵌入式系统开发手册

    7.2.3 使用GDB 调试程序 177 7.3 建立uClinux 开发环境 180 7.3.1 建立交叉编译器 181 7.3.2 uClinux 针对硬件的改动 184 7.3.3 编译uClinux 内核 185 7.3.4 内核的加载运行 187 7.4 在uClinux 下开发应用程序 188 ...

    嵌入式系统开发基础——基于ARM微处理器和Linux操作系统[滕英岩][习题解答]

    2.6 GDB调试器 2.6.1 GDB基本使用方法 2.6.2 GDB基本命令 2.6.3 GDB典型实例 2.7 Make工具的使用 2.7.1 Makefile基础知识 2.7.2 Makefile应用 2.7.3 使用autotools自动生成Makefile文件 2.8 嵌入式交叉编译...

    ghidra2dwarf::dragon:将ghidra反编译的代码导出到ELF二进制文件中的小节

    ni可以执行一个汇编指令。 p variable以打印变量的值。 安装 解压缩。 在脚本管理器-&gt;脚本目录中,添加提取的目录: 跑步 在脚本管理器中运行ghidra2dwarf.py : 无头模式 此模式仅适用于目前的ghidra 9.1.2 ...

    bomblab的概要介绍与分析

    该实验模拟了一个名为“二进制炸弹”的程序,要求学生深入理解程序的机器级表示、汇编语言、调试技巧和逆向工程能力,以此提升他们对底层计算原理的掌握。 实验的核心是一个精心构造的Linux可执行C程序,内含六个...

Global site tag (gtag.js) - Google Analytics