10

私は、アセンブリで記述され、qemu エミュレーターで実行されるおもちゃのブートローダー/カーネルに取り組んでいます。オプションでqemuを実行し-s -S、リモートターゲットを使用してgdbでデバッグできますが、gdbでロードされたデバッグシンボルがありません。アセンブリからシンボル ファイルを生成するにはどうすればよいですか?

nasm を使用してアセンブリ ファイルから qemu を実行するためのバイナリ イメージを生成していますが、イメージ自体にデバッグ情報を含める方法が見つかりませんでした (意味があるかどうかはわかりません)。また、gdb ではデバッグ用に別のシンボル ファイルを読み込むことができることもわかったので、アセンブリ コードからシンボル ファイルを生成する方法が問題になります。

を使用する提案を見てきましたobjcopyが、バイナリではなくelfファイルでのみ機能すると思います。nasm で elf を生成しようとしましたがorg、アセンブリ ファイル内の (必要な) ディレクティブが原因で、バーフィングが続きます。

4

2 に答える 2

7

次のように試してください:

  1. アセンブル時に「-f elf -F dwarf -g」スイッチを使用します。これにより、デバッグ シンボル (およびコードとその他すべて) を含む elf ファイルが生成されます。
  2. objcopy を使用してバイナリ ファイルを生成します。
  3. バイナリ ファイルをシステムにロードします。
  4. デバッガーをアタッチし、.elf ファイル (symbol-file yourfile.elf) からシンボルを読み込むように指示します。

nasm がそこにある .org で .elf ファイルを生成できない理由を解決する必要があります。何も思いつきません。GNAはこれで問題ありません。

于 2013-07-01T07:25:18.290 に答える