
私は、Linux カーネルをその中で実行できる x86 エミュレータを探しています。具体的には、ブートローダからカーネルのロードまで、C/アセンブリ レベルですべての関数呼び出しを表示するエミュレータを探しています。さらに、RAM メモリ レイアウトを表示できる必要があります。
答え1
カーネル デバッグ ソリューションは数多くありますが、私が使用したソリューションをいくつか紹介します。
- ボッホフルシステムエミュレーターである組み込みデバッガー(オプションのGUI付き)およびリモートデバッグを使用する
gdb
; - クエム、別のフルシステムエミュレータ(CPUのみのプロセスごとのエミュレーションもサポート)もサポートしています。リモートデバッグを使用する
gdb
。
これらは両方とも、エミュレートされたシステムの起動時に CPU をフリーズさせることができるため、ブートストラップをデバッグできます。 のターゲットとして使用する場合、ソース コードの添付もサポートされるため、C コード (または理論的にはサポートされるもの)gdb
に従うことができます。gdb