使用 GDB 进行 NASM 组装时在本地标签处中断

2023-12-04

我想使用 GDB 中断 NASM 汇编代码中的本地标签。

发出以下命令会产生输出:

   (gdb) break *start.label1 + 217
    Attempt to extract a component of a value that is not a structure.

我的代码是这样的:

global _start
_start:
...
.label1:
...

我怎样才能在本地中断.label1?


反汇编调用本地标签的函数,选择地址并添加一个换行符,就像通常使用地址而不是标签名称一样。您还可以通过本地标签的地址进行反汇编。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 GDB 进行 NASM 组装时在本地标签处中断 的相关文章

  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • 在 OllyDbg 和 Assembler 中,EBP+8 是什么意思?

    我正在学习 OllyDbg 中的汇编和调试技巧 以便学习如何使用未记录的函数 现在我遇到以下问题 我有以下代码部分 来自 OllyDbg MOV EDI EDI PUSH EBP MOV EBP ESP MOV EAX DWORD PTR
  • 使用 gdb 调试 Linux 内核模块

    我想知道 API 在内核模块 中返回什么 从几种形式可以知道 这并不是那么简单 我们需要加载符号表来调试内核模块 所以我所做的就是 1 尝试找到内核模块的 text bss和 data段地址 2 在 gdb 中使用 add symbol f
  • 如何将 CLI 参数传递给 GDB 中“定义”内的“命令”?

    E g define mycmd break arg0 commands print arg0 end end mycmd myfunc continue Prints 1 void 而不是预期的myfunc 因为 arg0当命令被点击时被
  • 使用8086汇编语言画圆[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我试图使用 8086 汇编器画一个圆 我尝试利用中点圆算法 https en wikipedia org wiki Midpoin
  • x86-64 AMD 上 CALL 指令的操作数生成

    以下是示例程序 objdump 的输出 080483b4
  • 3 操作数 imul 指令在 ia-32 汇编中到底起什么作用?

    我正在阅读说明 imul 0xffffffd4 ebp ebx 4 eax 我对它到底在做什么感到困惑 我明白那个imul乘法 但我无法弄清楚语法 我知道并且更喜欢 Intel MASM 语法 所以我将使用它 请注意 操作数的顺序在 AT
  • 解释一下 AF 标志在 x86 指令中如何工作?

    我有一个小型 8086 模拟器 并且我已经有一个长期存在的错误了大约 2 年 因为 AF 在 sub 和 add 指令内无法正常运行 我当前计算其值的方法是 8 位数字和减法 uint8 t base subt base base 0xF
  • minidump stackwalk 与 gdb 回溯

    我的 Firefox 中有一个漏洞触发器 CVE 2018 18492 它会崩溃并给出 SIGSEGV 我用过breakpadminidump stackwalk从崩溃时生成的小型转储文件中获取其堆栈跟踪 我得到如下内容 Thread 0
  • MinGW:与 -nostdlib 链接会产生无效的可执行文件

    我花了过去几个小时尝试链接一个简单的 x86 汇编程序 而无需any使用 MinGW 的 CRT 初始化代码 我希望可执行文件只包含 main下面列出的方法和一次导入ExitProcess核函数 在反汇编程序中打开各种生成的文件表明 mai
  • 为什么使用寄存器 R12 时 POP 速度很慢?

    在最新的 Intel CPU 上 POP指令通常每周期具有 2 条指令的吞吐量 但是 当使用寄存器时R12 or RSP 除了前缀之外具有相同的编码 如果指令通过传统解码器 吞吐量会下降到每个周期 1 如果微指令来自 DSB 则吞吐量保持在
  • 最佳 SSE 无符号 8 位比较

    我试图找到使用 SSE 最高 SSE 4 2 执行 8 位无符号比较的最佳方法 我正在处理的最常见情况是比较 gt 0U 例如 mm cmpgt epu8 v mm setzero si128 1 当然 这也可以被认为是对非零的简单测试 但
  • ASM 中从小端到大端的快速转换

    我在 C 中有一个 uint 类型数组 在检查程序是否在小端机器上运行后 我想将数据转换为大端类型 因为数据量可能会变得非常大 但总是均匀的 所以我想考虑将两个 uint 类型作为 ulong 类型 以获得更好的性能并在 ASM 中对其进行
  • 如何在 MacOS 上的 MARS 中打开保存的 .asm 文件

    我是 MIPS 的新手 我找不到如何打开我保存的文件 我在下载文件夹下保存了 asm 文件 但是当我尝试在 MARS 中打开文件并导航到同一下载文件夹时 asm 文件不会出现 我在 MacOS 上使用 MARS 如上所述 您需要在 macO
  • NASM 解析错误,需要指令

    我问过类似的问题here https stackoverflow com questions 11572021 problems with winasm and zen of assembly但我改变了汇编器 问题几乎完全改变了 所以为了避
  • 如何在 gdb 中给定地址处的汇编指令上中断?

    0x0000000000400448
  • Objective C:在 gdb 中哪里可以找到

    我正在尝试使用 NSZombie 调试我的程序 调试器确实返回了存在问题的实例的地址 但是我不确定在哪里获取运行命令 shell malloc history 所需的 pid 谁能告诉我在这种情况下使用的正确 pid 是什么 我尝试了 32
  • 如何在 Linux 64 位上用 C 编写简单的内联 asm 指令?

    我正在编写一个简单的 C 程序 我的要求是从程序的某些函数中打印 RIP 指令指针 我不想使用 ptrace 我用内联汇编尝试的一件事是 asm movl rip 0 r val 这应该将我的 rip 寄存器值复制到变量 val 但我收到编
  • emu8086中如何使用字符串

    我需要 emu8086 中字符串的帮助 我已经初始化了一个字符串 str1 db 0neWord 我有一个空字符串 str2 db 现在我需要检查所有信件str1并复制到str2 但如果字母在str1是 0 我需要将其替换为 O 如果不是
  • ESP 和 EBP 寄存器是什么?

    我发现ESP寄存器是当前堆栈指针 EBP是当前堆栈帧的基指针 但是 我不理解这些定义 我刚刚开始学习如何在汇编程序中编码 What I understand is that ESP points towards the stack itse

随机推荐