方法 : マイ コードのみにステップ インする
更新 : 2007 年 11 月
このトピックの内容は、次の製品に該当します。
Edition |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
マネージのみ |
|||
Standard |
マネージのみ |
|||
Pro/Team |
マネージのみ |
表の凡例 :
対象 |
|
該当なし |
|
既定で非表示のコマンド |
デバッグ中に、自分で記述したコードのみを確認して、システム呼び出しなど他の呼び出しを無視したい場合があります。この場合、"マイ コードのみ" デバッグを使用できます。"マイ コードのみ" デバッグを使用すると、非ユーザー コードは非表示になり、デバッガ ウィンドウに表示されません。ステップ実行すると、非ユーザー コードをステップ実行しますが、非ユーザー コード内では停止しません。
ユーザー コード ("My Code") と非ユーザー コードを区別するために、"マイ コードのみ" デバッグは、DBG ファイル、PDB ファイル、および最適化の 3 つの点に注目します。
標準的なデバッグ ビルドの場合、最適化はオフにされ、デバッグ シンボルがすべてのモジュールに作成されます。デバッグ ビルドを実行すると、このようなモジュールは My Code と見なされます。最適化され、デバッグ シンボルを持っていないライブラリ関数を呼び出した場合は、My Code ではありません。"マイ コードのみ" を有効にした場合、このようなライブラリ コードは、デバッグ対象外と見なされ、コード内でブレークポイントを設定しても実行を中断できません。[ブレークポイント] ウィンドウで確認すると、これらのブレークポイントには、無効なブレークポイントであることを示すアイコンが表示されます。
すべてのコードを表示し、すべてのブレークポイントで中断できるようにするには、[オプション] ダイアログ ボックスで "マイ コードのみ" のデバッグをオフにします。
デバッガが何を My Code と見なすかについては、さらに 3 つの属性が影響します。DebuggerNonUserCodeAttribute は、それが適用されているコードは My Code ではない、ということをデバッガに伝える属性です。DebuggerHiddenAttribute は、"マイ コードのみ" がオフになっていても、コードをデバッガから見えないようにするための属性です。DebuggerStepThroughAttribute は、それが適用されているコードを (ステップ インではなく) ステップ スルーするよう、デバッガに伝える属性です。
"マイ コードのみ" を有効にした場合、表示する My Code が存在しない場所で [デバッグ] メニューの [中断] が選択され、実行が中断されることも考えられます。その場合、コードは表示されません。また、[ステップ] コマンドを選択した場合は、My Code の次の行に制御が移動します。
Visual Basic の Stop ステートメントなど、プログラム上の中断ステートメントについては異なる処理が適用されます。デバッガは、該当するステートメントが見つかると、"マイ コードのみ" が有効であるかどうかに関係なく常に実行を中断します。この場合、非ユーザー コードは表示されますが、そこでステップ実行すると、非ユーザー コードを通過して次の My Code 行に制御が移動します。
メモ : |
---|
"マイ コードのみ" デバッグは、デバイス プロジェクトではサポートされません。 |
"マイ コードのみ" デバッグの有効/無効を切り替えるには
[ツール] メニューの [オプション] をクリックします。
[オプション] ダイアログ ボックスで、[デバッグ] ノードを展開し、[全般] をクリックします。
['マイ コード' のみ設定を有効にする] をオンまたはオフにします。