方法 : ウィンドウを使用する
この機能は、[デバッグ] ノードの [オプション] ダイアログ ボックスで、アドレスレベルのデバッグが有効な場合にのみ、使用できます。スクリプトまたは SQL のデバッグには使用できません。
[逆アセンブル] ウィンドウには、コンパイラによって作成された命令に対応するアセンブリ コードが表示されます。マネージ コードをデバッグする場合、これらのアセンブリ命令は、Visual Studio コンパイラが生成した Microsoft Intermediate Language (MSIL) ではなく、Just-In-Time (JIT) コンパイラが作成したネイティブ コードに対応しています。
[逆アセンブル] ウィンドウでは、アセンブリ命令だけでなく、必要に応じて以下の情報も表示できます。
各命令が配置されているメモリ アドレス。ネイティブ アプリケーションの場合は、実際のメモリ アドレスです。Visual Basic、C#、またはマネージ コードの場合は、関数の先頭からのオフセットです。
アセンブリ コードの派生元のソース コード。
コード バイト。これは、実際のマシン語命令または MSIL 命令のバイト表現です。
メモリ アドレスのシンボル名。
ソース コードに対応する行番号。
アセンブリ言語命令は、命令名の省略形であるニーモニックと、変数、レジスタ、および定数を表す記号で構成されます。各マシン語命令は 1 つのアセンブリ言語ニーモニックで表現され、通常はその後に 1 つ以上の変数、レジスタ、または定数が続きます。
アセンブリ言語を読み取ることができない状況において [逆アセンブル] ウィンドウを最大限に活用するには、アセンブリ言語プログラミングに関して詳しく説明している文献を参照してください。[逆アセンブル] ウィンドウに関するこの簡単な紹介では、アセンブリ言語のプログラミングについては説明しません。
アセンブリ コードは、プロセッサのレジスタ (マネージ コードの場合は共通言語ランタイムのレジスタ) に大きく依存するため、[逆アセンブル] ウィンドウと一緒に [レジスタ] ウィンドウを使用すると、レジスタの内容をチェックできるので便利です。
ほとんどの場合、アセンブリ言語ではなく生の数値の形式でマシン語コード命令を表示する必要はありません。ただし、必要に応じて、[メモリ] ウィンドウを使用するか、[逆アセンブル] ウィンドウのショートカット メニューの [コード バイトの表示] を選択すると表示できます。
[!メモ]
実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。
[逆アセンブル] ウィンドウを表示するには
[デバッグ] メニューの [ウィンドウ] をポイントし、[逆アセンブル] をクリックします。
デバッガーは動作中であるか、中断モードである必要があります。
オプション情報の表示と非表示を切り替えるには
[逆アセンブル] ウィンドウを右クリックし、ショートカット メニューの必要なオプションをオンまたはオフにします。
左マージンの黄色の矢印は、現在の実行ポイントの位置を示します。ネイティブ コードの場合、これは CPU のプログラム カウンターに対応します。この位置は、プログラム内で次に実行される命令を示します。
詳細については、「方法: [メモリ] ウィンドウの上下スクロール」を参照してください。