【发布时间】: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/…