4

楽しみのために、私は小さな言語用のコンパイラに取り組んでおり、ARM 命令セットが簡単であるため、最初にターゲットにしています。現在、コードをコンパイルできるので、各メソッドの本体に ARM マシン コードを使用できます。この時点で、いくつかのことを結び付ける必要があります。

  • マシンコードを保持するには、どの形式にすればよいですか...
  • どのデバッガーで実行しますか?

現在、I/O サポートなどはないため、デバッグは、分解してプロセッサ レジスタ/メモリを表示する能力に大きく依存します。

私は Windows を実行しており、コンパイラは Windows でのみ実行されるため、Windows で何らかのエミュレーターを使用することをお勧めします。

編集: Visual Studio Windows Mobile 6 エミュレーターを使用できるようです。今のところ、単純なバイナリ形式で結果を保存し、小さな C++ コンソール アプリケーションを介してエミュレーター メモリにロードし、関数ポインターを使用してそのメモリにジャンプすることができるかもしれません。後で、ELF および PE フォーマットをサポートする必要があるようです。

4

1 に答える 1

3

ファイル形式について...最も簡単なのは次のとおりです。

これらのフォーマットは、バイナリ データと、ロードするデータのターゲット アドレス範囲を記録できます。それはそれについてです。

より多くの情報を含めるためのより機能的な形式:

  • 妖精
    • 最大限の情報を得るには、DWARFデバッグ情報を含めます

ELF はかなり広くサポートされており、複雑すぎません。DWARF を使用すると、複雑な言語構造をデバッグするための非常に表現力豊かなデバッグ情報を記録できます。ただし、その表現力を実現するには、非常に複雑な形式で記述する必要があります。

于 2009-08-25T23:58:10.870 に答える