首页 > 解决方案 > GDB 反汇编无法识别 ASM 标签,例如:_start

问题描述

我有一个汇编文件,我用这个命令组装和链接:

$ 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)。我该如何解决这个错误?

标签: assemblygdbreverse-engineering

解决方案


推荐阅读