【问题标题】:Break at local label using GDB for NASM assembly使用 GDB 打破本地标签进行 NASM 组装
【发布时间】:2016-12-21 00:53:18
【问题描述】:

我想使用 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休息?

【问题讨论】:

  • 要中断标签,您不应该取消引用它b start.label1,就像b main。也许b (start.label1 + 217) 会起作用。如果取消引用,您可能需要b *(start.label1 + 217)。但是 IDK 如果 gdb 支持 . 内部符号名称,nm 说的是实际的符号名称。您可能需要b *0x... 并复制/粘贴地址。抱歉没有时间写答案。
  • 感谢您的建议 :)
  • 将带句点的标签放在表达式中的单引号内。类似b *'start.label1' + 217
  • 此问题的 GNU GAS ELF 版本:stackoverflow.com/questions/55226798/…

标签: assembly x86 gdb nasm


【解决方案1】:

反汇编调用本地标签的函数,选择地址并像通常使用地址而不是标签名称一样添加中断。本地标签也可以通过地址反汇编。

【讨论】:

    猜你喜欢
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多