3

私は現在、いくつかのµCシステムを使用していますが、その下で何が起こっているのかを理解するために、さらに詳しく説明したいと思います。私は現在、MotorolaColdfireとARM9を使用しています。どちらの場合も、GCCツールチェーンをクロスコンパイラとして使用しています。

ELFファイルには、アプリケーションを実行するために必要な情報よりも多くの情報が含まれています。ただし、BINファイルで十分です。ELF形式がいくつかの追加情報を保持していることを私は知っています。シンボルとそのア​​ドレスをメモリに連結しますよね?ソフトウェアデバッガー(GDBなど)の追加情報のみですか、それともこれらの情報の一部がターゲットデバイスにも転送されますか?したがって、ブレークポイントヒットが発生した場合、オンチップデバッガーはホストに関連アドレスを通知し、ソフトウェアデバッガーは退屈なメモリアドレスだけではなく、関連するコードセクションを表示できますか?BINファイルのみを使用してデバッグできますか(これはばかげていますが、基本的には?)?

このトピックに関するいくつかの啓蒙はありがたいです!

thynk you

4

1 に答える 1

2

ELF ファイルには、デバッグに使用されるシンボルなどの追加情報が含まれていることは間違いありません。通常、µC 環境では、BIN ファイルを使用してプロセッサ上で実行し (通常はフラッシュにロードされます)、デバッグのために ELF ファイルを GDB に渡します。クロスコンパイルされた GDB を開発用 PC で実行する場合、参照用に ELF ファイルを使用しますが (コード行番号、変数名などを認識します)、オンチップ デバッガーと通信してメモリ位置を読み取り、 GDB がオンチップ デバッガーと通信できるようにするにはtarget remote、GDB でコマンドを使用し、必要なパラメーター (多くの場合、ネットワーク アドレスとポートのシリアル ポート) を渡します。

于 2011-08-02T22:51:04.677 に答える