【问题标题】:What are available executable binary formats and emulators?有哪些可用的可执行二进制格式和模拟器?
【发布时间】:2009-08-25 23:25:52
【问题描述】:

为了好玩,我正在开发一种小型语言的编译器,并且我首先针对的是 ARM 指令集,因为它很简单。目前,我能够编译代码,因此我为每个方法的主体提供了 ARM 机器代码。在这一点上,我需要开始将一些事情联系在一起:

  • 我应该将我的机器代码保留为什么格式,这样我才能...
  • 在什么调试器中运行?

目前没有 I/O 支持等,因此调试将在很大程度上取决于我是否能够逐步完成反汇编并查看处理器寄存器/内存。

我正在运行 Windows,而我的编译器仅在 Windows 中运行,因此最好在 Windows 上安装某种模拟器。

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

【问题讨论】:

  • 也许添加“嵌入式”标签,假设这与嵌入式软件有关。
  • 是的,您可以将 PE 与 Windows Mobile 一起使用。而微小的“bin-starter”是一个低成本的好主意,只是想建议它,但为时已晚:)

标签: debugging assembly arm emulation


【解决方案1】:

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

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

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

  • ELF
    • 如需更多信息,请包含DWARF 调试信息

ELF 得到相当广泛的支持,而且不太复杂。 DWARF 允许您记录非常有表现力的调试信息,以便调试复杂的语言结构。但是,要实现这种表现力,它可能是一种非常复杂的格式。

【讨论】:

  • elf 是最常用的,你最终需要支持它。这很简单,但不如 srec 或 intel hex 简单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-28
  • 1970-01-01
  • 2021-02-21
  • 1970-01-01
  • 1970-01-01
  • 2013-12-02
  • 1970-01-01
相关资源
最近更新 更多