WinDbg (クラシック) でのアセンブリ コードのデバッグ

WinDbg では、コマンドを入力するか [逆アセンブリ] ウィンドウを使用して、アセンブリ コードを表示できます。

[デバッガー コマンド] ウィンドウ

アセンブリ コードを表示するには、[デバッガー コマンド] ウィンドウで u、ub、uu (アンアセンブル) のいずれかのコマンドを入力します。

逆アセンブリ ウィンドウ

[逆アセンブリ] ウィンドウを開くか、[逆アセンブリ] ウィンドウに切り替えるには、[表示] メニューから [逆アセンブリ] を選択します。 (Alt + 7 キーを押すか、ツール バーの [逆アセンブリ] ボタンをクリックすることもできます。Alt + Shift + 7 キーを押すと、[逆アセンブリ] ウィンドウが閉じます)。

次のスクリーン ショットは、[逆アセンブリ] ウィンドウの例を示しています。

WinDbg の [逆アセンブリ] ウィンドウのスクリーンショット。

デバッガーはメモリのセクションを受け取り、それをバイナリ マシン命令として解釈した後に逆アセンブルして、アセンブリ言語バージョンのマシン命令を生成します。 結果として生成されるコードが [逆アセンブリ] ウィンドウに表示されます。

[逆アセンブリ] ウィンドウでは、次のことができます。

  • 別のメモリ セクションを逆アセンブルするには、[オフセット] ボックスに、逆アセンブルするメモリのアドレスを入力します。 (アドレスを入力した後に Enter キーを押すことができますが、押す必要はありません)。[逆アセンブリ] ウィンドウには、アドレスを入力する前にコードが表示されます。このコードは無視できます。

  • メモリの他のセクションを表示するには、[前へ] または [次へ] ボタンを選択するか、PageUp キーまたは PageDown キーを押します。 これらのコマンドは、それぞれメモリの前または後のセクションの逆アセンブルされたコードを表示します。 右、左、上、下の方向キーを押すと、ウィンドウ内を移動できます。 これらのキーを使用してページから移動すると、新しいページが表示されます。

[逆アセンブリ] ウィンドウには、2 つのボタンがあるツール バーと追加のコマンドを含むショートカット メニューがあります。 メニューにアクセスするには、タイトル バーを長押し (または右クリック) するか、ウィンドウの右上隅付近に表示されるアイコンを選択します。 次の一覧では、メニュー コマンドの一部について説明します。

  • [現在のアドレスに移動] を実行すると、[逆アセンブリ] ウィンドウで選択した行に対応するソース ファイルが表示された [ソース] ウィンドウが開き、この行が強調表示されます。

  • [現在の命令の前に逆アセンブル] を実行すると、現在の行が [逆アセンブリ] ウィンドウの中央に配置されます。 このコマンドは既定のオプションです。 このコマンドをクリアすると、現在の行が [逆アセンブリ] ウィンドウの上部に表示されます。逆方向の逆アセンブルには時間がかかる可能性があるため、これにより時間が節約されます。

  • [現在のソース行の命令を強調表示] を実行すると、現在のソース行に対応するすべての命令が強調表示されます。 多くの場合、1 つのソース行が複数のアセンブリ命令に対応します。 コードが最適化されている場合、これらのアセンブリ命令が連続していないことがあります。 このコマンドを使用すると、現在のソース行からアセンブルされたすべての命令を検索できます。

  • [各命令のソース行を表示] を実行すると、各アセンブリ命令に対応するソース行番号が表示されます。

  • [各命令のソース ファイルを表示] を実行すると、各アセンブリ命令に対応するソース ファイル名が表示されます。

関連項目

アセンブリのデバッグと関連コマンドの詳細、およびアセンブリの表示の詳細な説明については、「アセンブリ モードでのデバッグ」を参照してください。