WinDbg でのアセンブリ コードのデバッグAssembly Code Debugging in WinDbg

WinDbg では、コマンドを入力するか、[逆アセンブル] ウィンドウを使用して、アセンブリコードを表示できます。In WinDbg, you can view assembly code by entering commands or by using the Disassembly window.

デバッガーのコマンドウィンドウDebugger Command Window

アセンブリコードを表示するには、コマンドウィンドウデバッガーで u、ub、uu (Unassemble) コマンドのいずれかを入力します。You can view assembly code by entering the one of the u, ub, uu (Unassemble) commands in the Debugger Command window.

ウィンドウを表示します。Dissasembly Window

[逆アセンブル] ウィンドウを開く、または切り替えるには、[表示] メニューの [ dissasembly をクリックします。To open or switch to the Disassembly window, choose Dissasembly from the View menu. (または、ALT + 7 を押すか、ツールバーの [ アセンブリ] ボタン ( ![ 逆アセンブリ] ボタンのスクリーンショット) を選択することもでき ます。(You can also press ALT+7 or select the Disassembly button (screen shot of the disassembly button) on the toolbar. ALT + SHIFT + 7 を押すと、[逆アセンブル] ウィンドウが閉じます)。ALT+SHIFT+7 will close the Disassembly Window.)

次のスクリーンショットは、[逆アセンブル] ウィンドウの例を示しています。The following screen shot shows an example of a Disassembly window.

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

デバッガーはメモリのセクションを取得し、それをバイナリマシン命令として解釈してから、アセンブリ言語バージョンのマシン命令を生成するために逆アセンブルします。The debugger takes a section of memory, interprets it as binary machine instructions, and then disassembles it to produce an assembly-language version of the machine instructions. 結果のコードは、[逆アセンブル] ウィンドウに表示されます。The resulting code is displayed in the Disassembly window.

[逆アセンブル] ウィンドウでは、次の操作を実行できます。In the Disassembly window, you can do the following:

  • メモリの別のセクションを逆アセンブルするには、[ オフセット ] ボックスに、逆アセンブルするメモリのアドレスを入力します。To disassemble a different section of memory, in the Offset box, type the address of the memory you want to disassemble. (アドレスを入力した後に ENTER キーを押すことはできますが、必要はありません)。[逆アセンブリ] ウィンドウには、アドレスを完了する前のコードが表示されます。このコードは無視してかまいません。(You can press ENTER after typing the address, but you do not have to.) The Disassembly window displays code before you have completed the address; you can disregard this code.

  • メモリの他のセクションを表示するには、[ へ] または [ 次へ ] ボタンを選択するか、pageup キーまたは pagedown キーを押します。To see other sections of memory, select the Previous or Next buttons or press the PAGE UP or PAGE DOWN keys. これらのコマンドは、メモリの前または後のセクションから逆アセンブルされたコードをそれぞれ表示します。These commands display disassembled code from the preceding or following sections of memory, respectively. 右矢印、左矢印、上矢印、下方向キーを押すと、ウィンドウ内を移動できます。By pressing the RIGHT ARROW, LEFT ARROW, UP ARROW, and DOWN ARROW keys, you can navigate within the window. これらのキーを使用してページから移動すると、新しいページが表示されます。If you use these keys to move off of the page, a new page will appear.

[逆アセンブル] ウィンドウには、2つのボタンと、追加のコマンドを含むショートカットメニューを含むツールバーがあります。The Disassembly window has a toolbar that contains two buttons and a shortcut menu with additional commands. メニューにアクセスするには、タイトルバーを選択して保持するか (または右クリック)、ウィンドウの右上隅の近くに表示されるアイコンを選択します (To access the menu, select and hold (or right-click) the title bar or select the icon that appears near the upper-right corner of the window (逆アセンブリウィンドウツールバーのショートカットメニューを表示するボタンのスクリーンショット).). 次の一覧では、メニューコマンドの一部について説明します。The following list describes some of the menu commands:

  • [現在のアドレスにジャンプ ] は、[逆アセンブル] ウィンドウで選択された行に対応するソースファイルを含むソースウィンドウを開き、この行を強調表示します。Go to current address opens the Source window with the source file that corresponds to the selected line in the Disassembly window and highlights this line.

  • 現在の命令の前に逆アセンブルを実行 すると、現在の行が [逆アセンブル] ウィンドウの中央に配置されます。Disassemble before current instruction causes the current line to be placed in the middle of the Disassembly window. このコマンドは、既定のオプションです。This command is the default option. このコマンドをオフにすると、[逆アセンブル] ウィンドウの上部に現在の行が表示されます。逆方向逆アセンブリには時間がかかるため、時間が節約されます。If this command is cleared, the current line will appear at the top of the Disassembly window, which saves time because reverse-direction disassembly can be time-consuming.

  • 現在のソース行から指示を強調表示 すると、現在のソース行に対応するすべての命令が強調表示されます。Highlight instructions from the current source line causes all of the instructions that correspond to the current source line to be highlighted. 多くの場合、1つのソース行が複数のアセンブリ命令に対応します。Often, a single source line will correspond to multiple assembly instructions. コードが最適化されている場合は、これらのアセンブリ命令が連続していない可能性があります。If code has been optimized, these assembly instructions might not be consecutive. このコマンドを使用すると、現在のソース行からアセンブルされたすべての命令を検索できます。This command enables you to find all of the instructions that were assembled from the current source line.

  • 各命令の [ソース行の表示] 各アセンブリ命令に対応するソース行番号を表示します。Show source line for each instruction displays the source line number that corresponds to each assembly instruction.

  • 各命令のソースファイルの表示 各アセンブリ命令に対応するソースファイル名を表示します。Show source file for each instruction displays the source file name that corresponds to each assembly instruction.

追加情報Additional Information

アセンブリのデバッグおよび関連するコマンド、およびアセンブリの表示の詳細については、「 アセンブリモードでのデバッグ」を参照してください。For more information about assembly debugging and related commands and a full explanation of the assembly display, see Debugging in Assembly Mode.