如何用nasm生成gdb符号文件?

时间:2013-06-28 16:44:48

标签: gdb nasm

我正在使用汇编编写的玩具启动器/内核并在qemu仿真器上运行。我可以使用-s -S选项运行qemu并使用远程目标使用gdb进行调试,但是我没有使用gdb加载任何调试符号。如何从程序集中生成符号文件?

我正在使用nasm为qemu生成一个二进制图像,以便从我的程序集文件中运行,但我还没有发现在图像本身中包含调试信息(我不确定这是否有意义)。我还发现gdb允许你加载一个单独的符号文件进行调试,所以现在我的问题是如何从汇编代码生成一个符号文件。

我见过使用objcopy的建议,但我相信只适用于elf文件,而不是二进制文件。我试过让nasm生成一个精灵,但由于我在程序集文件中的(必要的)org指令,它一直在进行barfing。

1 个答案:

答案 0 :(得分:5)

它会说这样试试:

  1. 组装时使用“-f elf -F dwarf -g”开关。这应该生成包含调试符号(以及代码和其他所有内容)的elf文件。
  2. 使用objcopy生成二进制文件。
  3. 将二进制文件加载到您的系统。
  4. 附加调试器,然后告诉它从.elf文件加载符号(符号文件yourfile.elf)
  5. 你需要解决为什么nasm无法生成带有.org的.elf文件。我不知道。 GNA对此很好。

相关问题