【发布时间】:2012-04-29 11:58:51
【问题描述】:
我需要一些帮助来寻找和使用一个好的调试器,用于在 64 位 Linux 上用 yasm 组装的 asm 代码。 gdb 调试器一直抱怨没有加载符号表。 stackoverflow 上的某个人建议使用 -dstabs 开关进行组装,但这对我来说没有什么区别。 ddd 也没有什么不同。
如果我能找到摆脱“未加载符号表”问题的方法,gdb 就不会那么糟糕了。我还需要能够查看寄存器和其他声明的内容。
我使用yasm -f elf -m amd64 file.asm 组装我的asm 文件并与ld file.o -o file 链接。使用 -l 开关使用 yasm 创建 .lst 文件似乎也不起作用。
我发现的关于这个问题的所有建议似乎都与使用 gcc 作为链接器而不是 ld 有关。我需要能够与 ld 关联。
【问题讨论】:
-
您在组装时是否尝试过使用
-g选项? -
@Job:谢谢!我认为它奏效了。我从 gdb 获得了一些新信息。对我有用的是命令:
yasm -f elf -m amd64 -g stabs file.asm。 gdb_dbgfmts 的手册页建议 stabs 是适用于 UNIX 操作系统的调试格式,但我并不真正了解调试格式。有更好的选择吗? -
我建议使用 dwarf,看我的回答。
标签: assembly x86 x86-64 nasm yasm