什么是可用的可执行二进制格式和模拟器?

时间:2009-08-25 23:25:53

标签: debugging assembly arm emulation

为了好玩,我正在为一种小语言编写一个编译器,并且由于其易用性,我首先瞄准ARM指令集。目前,我能够编译代码,所以我有每个方法的主体的ARM机器代码。在这一点上,我需要开始将几件事情联系在一起:

  • 我应该以什么格式保存我的机器代码,以便我可以......
  • 在什么调试器中运行它?

目前没有I / O支持等,因此调试将非常重视我能够逐步完成反汇编并查看处理器寄存器/内存。

我正在运行Windows而我的编译器只在Windows中运行,所以在Windows上使用某种模拟器会更好。

编辑:看来我可以使用Visual Studio Windows Mobile 6模拟器。现在,我可以简单地以简单的二进制格式保存结果,并通过一个小的C ++控制台应用程序将其加载到模拟器内存​​中,然后使用函数指针跳转到它。后来,似乎我需要支持ELF和PE格式。

1 个答案:

答案 0 :(得分:3)

关于文件格式......最简单的是:

这些格式可以记录要加载的数据的二进制数据和目标地址范围。就是这样。

包含更多信息的更强大的格式:

  • ELF
    • 获取最多信息,包括DWARF调试信息

ELF受到广泛支持,并不太复杂。 DWARF允许您记录非常有表现力的调试信息,以便调试复杂的语言结构。但是,为了达到这种表现力,它可能是一种非常复杂的格式。