問題のシナリオ: 簡単に言えば、ターゲットにロードされた ELF ファイルからシンボル (およびその内容) を読み取る Trace32 コマンドはありますか? ELF ファイルのアプリケーション固有のデバッグ シンボルが ELF の「.noload」セクションの一部として作成される特殊なケースがあります。これは、シンボル/コンテンツが ELF ファイルの一部として存在することを意味します (readelf -a xxxx. elf_file_name) ですが、生成される最終的なバイナリ イメージの一部ではありません。つまり、ELF ファイルの「.noload」セクションは、ターゲット メモリにフラッシュされる xxx.bin を生成するときに取り除かれます。
- 「.noload」セクションのデバッグ シンボルは静的に割り当てられた値であり、これらの値は実行時に変更されません。
- 「.noload」セクションのデバッグ シンボル部分を読み取ろうとすると (バイナリにコンパイルして Trace32 にロードした後)、trace32 ポップアップ ウィンドウに「MMU 失敗」というフラグが表示されます。これは、trace32 がシンボルの内容をメモリから読み取ろうとしているが、アドレスがマップされているにもかかわらず、「.noload」セクションのシンボル部分がまったくロードされなかったため、アクセスできません。
任意の入力:
- ターゲット メモリからではなく、ELF ファイルからシンボル コンテンツを直接読み取ることができる trace32 コマンドのヘルプが必要です。
- また、練習用スクリプトで「readelf」を使用できるかどうかもわかりません。上記のクエリの解決策がない場合、この方向で何か助けはありますか?