1

我需要一些帮助来查找和使用一个好的调试器,用于在 64 位 Linux 上用 yasm 组装的 asm 代码。gdb 调试器一直抱怨没有加载符号表。stackoverflow 上的某个人建议使用 -dstabs 开关进行组装,但这对我来说没有什么区别。ddd 也没有什么不同。

如果我能找到摆脱“未加载符号表”问题的方法,gdb 就不会那么糟糕了。我还需要能够查看寄存器和其他声明的内容。

我使用汇编我的 asm 文件yasm -f elf -m amd64 file.asm并链接到ld file.o -o file. 使用 yasm-l开关创建 .lst 文件似乎也不起作用。

我发现的关于这个问题的所有建议似乎都与使用 gcc 作为链接器而不是 ld 有关。我需要能够与 ld 链接。

4

2 回答 2

5

您应该使用该-g选项来yasm. 我建议使用这种dwarf2格式,因为这似乎是当今的标准。

yasm -f elf -m amd64 -g dwarf2 file.asm
于 2012-04-29T12:56:45.503 回答
-1

我目前正在学习系统编程,我们使用ddd进行调试,使用-g dwarf2标志。到目前为止,它运作良好。

于 2015-11-02T22:59:01.540 回答