GDB 反汇编无法识别 ASM 标签,例如:_start

问题描述 投票:0回答:1

我有一个用以下命令组装和链接的汇编文件:

$ nasm -f elf -F dwarf -g -o FILENAME.o FILENAME.asm
$ ld -o FILENAME FILENAME.o

如您所见,我添加了

-g
,以便 nasm 生成调试符号。文件格式是这样的:

section .code:
global _start
_start:
      ASM HERE
ANOTHER_LABEL:
      ASM HERE
YET_ANOTHER_LABEL:
      ASM HERE

当我启动

gdb -q FILENAME
并运行文件(
run
)后,我尝试通过
_start
反汇编
disassemble _start
它给了我这个错误:

'_start' has unknown type; cast it to its declared type
当我尝试反汇编任何其他标签名称(
_start
ANOTHER_LABEL
)时,它给了我同样的错误(
YET_ANOTHER_LABEL
更改)。 另外,当我只输入
disassemble
时,它只提供第一个标签的反汇编(从
_start
ANOTHER_LABEL
的开头)。 我该如何修复这个错误?

assembly gdb reverse-engineering
1个回答
0
投票

我知道这个问题很老了,但我也遇到了同样的问题并找到了解决方案:

从 .code 中删除“SECTION”标签,它应该可以工作,对我来说确实如此。

© www.soinside.com 2019 - 2024. All rights reserved.