【问题标题】:How to generate gdb symbol file with nasm?如何使用 nasm 生成 gdb 符号文件?
【发布时间】:2013-06-26 12:32:45
【问题描述】:

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

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

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

【问题讨论】:

    标签: gdb nasm


    【解决方案1】:

    它会说像这样尝试:

    1. 组装时使用“-f elf -F dwarf -g”开关。这应该会生成包含调试符号(以及代码和其他所有内容)的 elf 文件。
    2. 使用 objcopy 生成二进制文件。
    3. 将二进制文件加载到您的系统中。
    4. 附加调试器,然后告诉它从您的 .elf 文件中加载符号(符号文件 yourfile.elf)

    您需要解决为什么 nasm 无法生成带有 .org 的 .elf 文件。我不知道。 GNA as 没问题。

    【讨论】:

      猜你喜欢
      • 2011-12-27
      • 1970-01-01
      • 2014-04-27
      • 1970-01-01
      • 2012-05-23
      • 1970-01-01
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      相关资源
      最近更新 更多