【问题标题】:.ASM file debugging tool.ASM 文件调试工具
【发布时间】:2012-02-06 19:23:16
【问题描述】:

我想知道我可以为汇编程序使用哪种调试工具以及如何使用它。

我在汇编中编写了一个简单的引导加载程序。然而,它并没有像我希望的那样正常工作,即使我认为逻辑是正确的。所以,我正在尝试使用调试器,以便我可以单步执行引导加载程序,检查寄存器状态等。

我在 Ubuntu 上尝试了 GDB,将我的 .asm 编译为 .elf 和 .o(我需要这样做吗?如果是,下一步是什么?)另外,我读到 Bochs 模拟器中有一个内部调试器,但我找不到任何文档如何使用它。我也有Visual Studio 2010,windbg,但是不知道怎么用它来调试.asm文件。

如果您以前这样做过,这将是一个简单的答案。任何帮助将不胜感激。

真诚的

【问题讨论】:

标签: debugging assembly bootloader


【解决方案1】:

如果你想调试引导加载程序代码,你显然需要在代码本身将要运行的相同环境中运行它。我相信你已经知道,引导加载程序代码在 BIOS 后以实模式执行完成 POST。然后引导加载程序在 7c00h 处加载到内存中并执行跳转到该地址。

显然,一旦您的计算机运行并且已经加载了“真正的”操作系统,这种环境就无法可靠地模拟,因为那时您的 CPU 处于保护模式(或长模式,如果它是 AMD64) .此时您唯一的选择是使用QEMUBochs 在您的操作系统中模拟真实的PC。我使用 Bochs 来调试我过去编写的一些引导加载程序代码,并且效果很好。查看手册页以获取更详细的说明。

【讨论】:

  • 谢谢丹尼尔。奇怪的是,我无法让 Bochs 内部调试器正常工作。我尝试在命令行上进行配置,但它对我来说不太奏效。 (即使是命令行,它也只是启动 GUI 模拟器......)我想我会再看一遍手册......
  • 我曾经将它附加到 gdb 并且该技术工作正常。我确定它是某处的手册。
猜你喜欢
  • 1970-01-01
  • 2010-09-08
  • 1970-01-01
  • 2017-04-02
  • 1970-01-01
  • 1970-01-01
  • 2020-08-09
  • 2017-11-13
  • 1970-01-01
相关资源
最近更新 更多