Visual Studio デバッガ
方法 : [逆アセンブル] ウィンドウを使用する

このトピックの内容は、次の製品に該当します。

Visual Studio のエディション

Visual Basic

C#

C++

J#

Express

×

×

×

Standard

Hidden

Pro/Team

Hidden

この機能は、[デバッグ] ノードの [オプション] ダイアログ ボックスで、アドレスレベルのデバッグが有効な場合にのみ、使用できます。スクリプトまたは SQL のデバッグには使用できません。

[逆アセンブリ] ウィンドウには、コンパイラによって作成された命令に対応するアセンブリ コードが表示されます。マネージ コードをデバッグする場合、これらのアセンブリ命令は、Visual Studio コンパイラが生成した Microsoft Intermediate Language (MSIL) ではなく、Just-In-Time (JIT) コンパイラが作成したネイティブ コードに対応しています。

[逆アセンブリ] ウィンドウでは、アセンブリ命令だけでなく、必要に応じて以下の情報も表示できます。

  • 各命令が配置されているメモリ アドレス。ネイティブ アプリケーションの場合は、実際のメモリ アドレスです。Visual Basic、C#、またはマネージ コードの場合は、関数の先頭からのオフセットです。

  • アセンブリ コードの派生元のソース コード。

  • コード バイト。これは、実際のマシン語命令または MSIL 命令のバイト表現です。

  • メモリ アドレスのシンボル名。

  • ソース コードに対応する行番号。

アセンブリ言語命令は、命令名の省略形であるニーモニックと、変数、レジスタ、および定数を表す記号で構成されます。各マシン語命令は 1 つのアセンブリ言語ニーモニックで表現され、通常はその後に 1 つ以上の変数、レジスタ、または定数が続きます。

アセンブリ言語を読み取ることができない状況において [逆アセンブリ] ウィンドウを最大限に活用するには、アセンブリ言語プログラミングに関して詳しく説明している文献を参照してください。アセンブリ言語プログラミングは、習得する必要のない方にはお勧めしませんが、それほど難しい言語ではありません。しかし、この [逆アセンブリ] ウィンドウの簡単な紹介の中ですべてを説明することはできません。

アセンブリ コードは、プロセッサのレジスタ (マネージ コードの場合は共通言語ランタイムのレジスタ) に大きく依存するため、[逆アセンブリ] ウィンドウと一緒に [レジスタ] ウィンドウを使うと、レジスタの内容をチェックできるので便利です。

ほとんどの場合、アセンブリ言語ではなく生の数値の形式でマシン語コード命令を表示する必要はありません。ただし、必要に応じて、[メモリ] ウィンドウを使用するか、[逆アセンブリ] ウィンドウのショートカット メニューの [コード バイトの表示] を選択すると表示できます。

Noteメモ :

使用している設定またはエディションによっては、表示されるダイアログ ボックスやメニュー コマンドがヘルプに記載されている内容と異なる場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。

[逆アセンブリ] ウィンドウを表示するには

  • [デバッグ] メニューの [ウィンドウ] をポイントし、[逆アセンブリ] をクリックします。

    デバッガは動作中であるか、中断モードである必要があります。

オプション情報の表示と非表示を切り替えるには

  • [逆アセンブリ] ウィンドウを右クリックし、ショートカット メニューの必要なオプションをオンまたはオフにします。

    左マージンの黄色の矢印は、現在の実行ポイントの位置を示します。ネイティブ コードの場合、これは CPU のプログラム カウンタに対応します。この位置は、プログラム内で次に実行される命令を示します。

    詳細については、「方法 : [メモリ] ウィンドウの上下スクロール」を参照してください。

参照

タグ :


Page view tracker