IntelliTrace の機能 (C#、Visual Basic、C++)
IntelliTrace を使用すると、イベントとアプリケーションを呼び出すメソッドとを記録することができます。この機能により、さまざまな実行ポイントでの状態 (呼び出し履歴およびローカル変数の値) を確認することができます。 通常どおりのデバッグの開始 - 既定では、IntelliTrace はオンになっています。このため、IntelliTrace が記録する情報が [イベント] タブの新しい [診断ツール] ウィンドウに表示されます。イベントについて記録された呼び出し履歴とローカルを確認するには、目的のイベントを選択し、[デバッグ履歴の有効化] をクリックします。
ステップ バイ ステップの説明については、「チュートリアル: IntelliTrace の使用」を参照してください。
IntelliTrace は Visual Studio Enterprise Edition で使用できますが、Visual Studio Professional Edition または Community Edition では使用できません。
IntelliTrace がオンになっていることを確認するには、[ツール] > [オプション] > [IntelliTrace] オプション ページを開きます。 [IntelliTrace を有効にする] は既定でオンになります。
Note
[IntelliTrace] オプション ページ上のすべての設定の適用範囲は、個々のプロジェクトまたはソリューションではなく、Visual Studio 全体となります。 これらの設定に加えた変更は、Visual Studio のすべてのインスタンス、すべてのデバッグ セッション、あるいはすべてのプロジェクトまたはソリューションに適用されます。
IntelliTrace が記録するイベントを選択する (C#、Visual Basic)
特定の IntelliTrace イベントの記録はオンまたはオフにすることができます。
デバッグ中の場合、デバッグを停止します。 [ツール] > [オプション] > [IntelliTrace] > [IntelliTrace イベント] に移動します。 IntelliTrace で記録するイベントを選択します。
スナップショットの収集 (C#、Visual Basic、C++)
これは既定では有効になっていませんが、IntelliTrace を使用すると、すべてのブレークポイントとデバッガー ステップ イベントでアプリケーションのスナップショットをキャプチャできます。また、そのスナップショットをデバッグ履歴セッションで確認できます。 スナップショットを使用すると、アプリケーションの完全な状態を確認できます。 スナップショットのキャプチャを有効にするには、[ツール] > [オプション] > [IntelliTrace] > [全般] に移動し、[IntelliTrace スナップショット (マネージドとネイティブ)] を選びます。 詳細については、IntelliTrace を使用して以前のアプリの状態を検査する方法に関するページを参照してください。
スナップショットは Visual Studio Enterprise 2017 バージョン 15.5 以降で使用できます。また、Windows 10 Anniversary Update 以降が必要です。 .NET Core および ASP.NET Core アプリの場合、Visual Studio Enterprise 2017 バージョン 15.7 が必要です。 Windows を対象とするネイティブ アプリの場合、Visual Studio Enterprise 2017 バージョン 15.9 Preview 2 が必要です。
IntelliTrace イベントと呼び出し情報の収集 (C#、Visual Basic)
これは既定では有効になっていませんが、IntelliTrace ではイベントと共にメソッドの呼び出しを記録できます。 メソッド呼び出しの収集を有効にするには、[ツール] > [オプション] > [IntelliTrace] > [全般] に移動し、[IntelliTrace イベントと呼び出し情報 (マネージドのみ)] を選びます。
現在、.NET Core アプリと ASP.NET Core アプリの呼び出し情報は使用できません。
これにより、呼び出し履歴が表示され、コード内で呼び出しの前後を移動できるようになります。 IntelliTrace は、メソッド名、メソッド エントリ、および終了ポイントなどのデータと、特定のパラメーター値および戻り値を記録します。
ヒント
このオプションは既定では有効になっていません。かなりのオーバーヘッドが追加されるためです。 IntelliTrace はアプリケーションが行うすべてのメソッド呼び出しを先に取得する必要があるだけでなく、それを画面に表示したりディスクに保存したりする上で大量のデータ セットを処理する必要があります。
パフォーマンスのオーバーヘッドは、IntelliTrace で記録するイベントの一覧を制限することで、さらに収集するモジュール数を最小限に抑えることで、減らすことができます。 詳細については、「IntelliTrace が呼び出し情報をどの程度記録するかの制御」を参照してください。
ナビゲーション余白を使用する
コード ウィンドウの左側に表示されるナビゲーション余白を使用することができます。 ナビゲーション余白が表示されていない場合は、[ツール] > [オプション] > [IntelliTrace] > [詳細設定] に移動し、[デバッグ モードでナビゲーション余白を表示する] を選びます。
ナビゲーション余白を使用すれば、デバッグ履歴モードでメソッド呼び出しとイベントの中を前後に移動することができます。 デバッグ履歴の詳細については、「デバッグ履歴」を参照してください。 以下のようなコマンドがあります。
コマンド | 説明 |
---|---|
デバッガー コンテキストをここに設定 | これが表示される呼び出しタイム フレームにデバッグ コンテキストを設定します。 このアイコンは、現在の呼び出し履歴にのみ表示されます。 |
呼び出しサイトに戻る | ポインターとデバッグ コンテキストを現在の関数が呼び出された場所に戻します。 ライブ デバッグ モードの場合は、このコマンドでデバッグ履歴をオンにします。 元の実行中断場所に戻ると、デバッグ履歴はオフになり、ライブ デバッグがオンになります。 |
前の呼び出しまたは IntelliTrace イベントへ移動 | ポインターとデバッグ コンテキストを前の呼び出しまたはイベントに戻します。 ライブ デバッグ モードの場合は、このコマンドでデバッグ履歴をオンにします。 |
ステップ イン | 現在選択されている関数にステップインします。 このコマンドは、デバッグ履歴モード中にのみ使用できます。 |
次の呼び出しまたは IntelliTrace イベントへ移動 | ポインターとデバッグ コンテキストを IntelliTrace データが存在する次の呼び出しまたはイベントまで進めます。 このコマンドは、デバッグ履歴モード中にのみ使用できます。 |
ライブ モードへ移動 | ライブ デバッグ モードに戻ります。 |
行またはメソッドを IntelliTrace で検索する
メソッドを検索できるのは、メソッド呼び出し情報が有効になっている場合に限られます。 特定の行またはメソッドの IntelliTrace 履歴を検索することができます。 デバッガーの実行が停止したら、関数本文内を右クリックしてコンテキスト メニューを表示し、[この行を IntelliTrace で検索] または [このメソッドを IntelliTrace で検索] のいずれかをクリックします。
IntelliTrace レコードの呼び出し情報の量を制御する
既定では、IntelliTrace はソリューションで使用されるすべてのモジュールについて情報を記録します。 関心のあるモジュールに関してのみ、呼び出し情報を記録するように IntelliTrace を設定できます。 [ツール] > [オプション] > [IntelliTrace] > [モジュール] では、IntelliTrace に含めるモジュールまたは IntelliTrace から除外するモジュールを指定できます。 指定したモジュールから発生したイベントと、関心のあるモジュール内で発生したメソッド呼び出しだけが IntelliTrace で収集されます。
複数のモジュールを追加するには、ワイルドカード文字 * を文字列の先頭または末尾に使用します。 モジュール名には、アセンブリ名ではなくファイル名を使用してください。 ファイル パスは使用できません。
モジュールの数は最小限に抑えるようにしてください。 そうすれば、収集するデータが少なくなるので、パフォーマンスが向上します。 また、処理すべきデータが少なくなるので、UI のノイズが減少します。
IntelliTrace データをファイルに保存する (C#、Visual Basic、C++)
デバッグ中でアプリケーションが中断状態にある間に、[デバッグ] > [IntelliTrace] > [IntelliTrace セッションの保存] に移動して、IntelliTrace によって収集されたデータを保存することができます。 アプリケーションがまだ実行中の場合またはデバッグが停止状態の場合、メニュー項目は無効であるため、IntelliTrace で収集されたデータを保存することはできません。
ファイルに自動的に保存されるように IntelliTrace を構成するには、[ツール] > [オプション] > [IntelliTrace] > [詳細設定] に移動して、[IntelliTrace 記録をこのディレクトリに保存する] を選びます。 生成するファイルの設定サイズを構成することもできます。その場合、IntelliTrace は領域が足りなくなると古いデータから順に上書きしていきます。 Visual Studio では、ファイルが自動保存されるときと Visual Studio のホスティング プロセス (vshost.exe) をオンにしたときに、IntelliTrace セッションごとに 2 つのファイルが作成されます。
ヒント
ファイルが必要なくなった場合は、ディスク領域を節約するためにファイルの保存を自動的にオフにします。 既存のファイルは削除されません。 いつでも必要に応じてコンテキスト メニューからファイルに保存することができます。
IntelliTrace データをファイルに保存する場合は、IntelliTrace が収集対象としたプロセスごとに 1 つの .itrace ファイルが得られます。 .itrace ファイルは Visual Studio で開くことができます。それには、[ファイル] > [開く] > [ファイル] の順に選択し、[ファイルを開く] ダイアログ ボックスから .itrace ファイルを選びます。 詳細については、「保存された IntelliTrace データの使用」を参照してください。
ブログ
IntelliTrace in Visual Studio Enterprise 2015 (Visual Studio Enterprise2015 の IntelliTrace)
Visual Studio Enterprise 2015 の IntelliTrace でアタッチがサポートするようになりました
IntelliTrace スタンドアロン コレクターを使用して Windows サービスからデータを収集する
IntelliTrace を使用したカスタム TraceSource およびデバッグ