Share via


方法 : マイ コードのみにステップ インする

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

エディション

Visual Basic

C#

F#

C++

Web Developer

Express

トピック該当 トピック該当

トピック該当

マネージのみ

トピック該当

Pro、Premium、Ultimate

トピック該当 トピック該当

トピック該当

マネージのみ

トピック該当

デバッグ中に、自分で記述したコードのみを確認して、システム呼び出しなど他の呼び出しを無視したい場合があります。 この場合、"マイ コードのみ" デバッグを使用できます。 "マイ コードのみ" デバッグを使用すると、非ユーザー コードは非表示になり、デバッガー ウィンドウに表示されません。 ステップ実行すると、非ユーザー コードをステップ実行しますが、非ユーザー コード内では停止しません。

ユーザー コードと非ユーザー コードを区別するために、"マイ コードのみ" デバッグは、DBG ファイル、PDB ファイル、および最適化の 3 つの点に注目します。

標準的なデバッグ ビルドの場合、最適化はオフにされ、デバッグ シンボルがすべてのモジュールに作成されます。 デバッグ ビルドを実行すると、このようなモジュールはユーザー コードと見なされます。 最適化され、デバッグ シンボルを持っていないライブラリ関数を呼び出した場合は、ユーザー コードではありません。 "マイ コードのみ" を有効にした場合、このようなライブラリ コードは、デバッグ対象外と見なされ、コード内でブレークポイントを設定しても実行を中断できません。 [ブレークポイント] ウィンドウで確認すると、これらのブレークポイントには、無効なブレークポイントであることを示すアイコンが表示されます。

すべてのコードを表示し、すべてのブレークポイントで中断できるようにするには、[オプション] ダイアログ ボックスで "マイ コードのみ" のデバッグをオフにします。

3 つの属性も、デバッガーがどのコードをマイ コードと見なすかに影響します。DebuggerNonUserCodeAttribute は、適用先のコードはマイ コードではないことをデバッガーに通知します。 DebuggerHiddenAttribute は、"マイ コードのみ" がオフになっていても、コードをデバッガーから見えないようにするための属性です。 DebuggerStepThroughAttribute は、それが適用されているコードを (ステップ インではなく) ステップ スルーするよう、デバッガーに伝える属性です。

"マイ コードのみ" を有効にした場合、表示する My Code が存在しない場所で [デバッグ] メニューの [中断] が選択され、実行が中断されることも考えられます。 その場合、コードは表示されません。 また、[ステップ] コマンドを選択した場合は、My Code の次の行に制御が移動します。

Visual Basic の Stop ステートメントなど、プログラム上の中断ステートメントについては異なる処理が適用されます。 デバッガーは、該当するステートメントが見つかると、"マイ コードのみ" が有効であるかどうかに関係なく常に実行を中断します。 この場合、非ユーザー コードは表示されますが、そこでステップ実行すると、非ユーザー コードを通過して次の My Code 行に制御が移動します。

注意

"マイ コードのみ" デバッグは、デバイス プロジェクトではサポートされません。

"マイ コードのみ" デバッグの有効/無効を切り替えるには

  1. [ツール] メニューの [オプション] をクリックします。

  2. [オプション] ダイアログ ボックスで、[デバッグ] ノードを展開し、[全般] をクリックします。

  3. ['マイ コード' のみ設定を有効にする] をオンまたはオフにします。

参照

参照

DebuggerNonUserCodeAttribute

DebuggerHiddenAttribute

DebuggerStepThroughAttribute

概念

実行制御