Share via


IntelliTrace 情報の収集

ヒント

メモ: Visual Studio 2010 Ultimate Service Pack 1 では、終了後に IntelliTrace ログ ファイル (.iTrace ファイル) が IntelliTrace によって既定で保存されなくなりました。 IntelliTrace ログ ファイルの保存の詳細については、このトピックの「ログ ファイルの保存」を参照してください。

このトピックの内容は、Visual Studio 2010 Ultimate のみに該当します。

Visual Studio 2010 Ultimate の既定で、IntelliTrace は有効です。 ライブ デバッグ セッション中、IntelliTrace はバックグラウンドで実行され、非表示の状態で自動的に IntelliTrace 情報が収集されます。 この情報を使用すると、ライブ デバッグ セッションから IntelliTrace を使用したデバッグに切り替え、コード内を "タイム トラベル" できます。

既定では、選択した IntelliTrace イベントについてのみ、情報が収集され、ログに記録されます。 既定の収集設定のオーバーヘッドは最小限です。 アプリケーションの実行や、Visual Studio デバッガーの可用性には影響がありません。

呼び出しとパラメーターを収集すると、IntelliTrace で追加のデバッグ機能を使用できます。 ただし、呼び出しとパラメーターの収集を使用すると、パフォーマンスのオーバーヘッドが増加し、ディスク領域の使用量が増え、Visual Studio デバッガーのエディット コンティニュ機能は無効になります。 そのため、実際のアプリケーションとデバッグ シナリオのコストと利点を考慮する必要があります。

収集のオプションは Visual Studio レベルで設定されます。 このオプションは、すべての Visual Basic および C# のプロジェクトとソリューションに適用されます。 収集のオプションは、デバッグ セッションや Visual Studio セッションが変わっても維持されます。

このトピックの内容

  • ログ ファイルの保存

  • IntelliTrace イベント

  • 呼び出しとパラメーター

  • モジュールごとの収集の構成

ログ ファイルの保存

既定では、Visual Studio の終了後に IntelliTrace ログ ファイル (.iTrace ファイル) が IntelliTrace によって保存されません。 既定の動作を変更して、IntelliTrace ですべてのログ ファイルが保存されるようにすることもできますが、次の手順の説明に従って、IntelliTrace ログ ファイルを手動で保存することもできます。

IntelliTrace ログ ファイルの既定の動作を変更するには

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

  2. オプションのカテゴリの一覧で [IntelliTrace] ノードを展開し、[詳細] をクリックします。

  3. 次のいずれかのタスクを実行します。

    1. すべての IntelliTrace ログ ファイル (.iTrace ファイル) を保存するには、[IntelliTrace 記録をこのディレクトリに保存する] をオンにし、ファイルを保存するフォルダーのパスを指定します。

    2. .iTrace ファイルを手動で保存した場合を除き、Visual Studio の終了時に .iTrace ファイルが削除されるようにするには、[IntelliTrace 記録をこのディレクトリに保存する] をオフにします。

  4. [OK] をクリックして変更を保存します。

IntelliTrace ログ ファイルを手動で保存するには

  1. [IntelliTrace] ウィンドウのツール バーで、[現在の IntelliTrace セッションを保存する] ボタンをクリックします。

  2. [名前を付けてファイルを保存] ダイアログ ボックスで、セッションを保存するファイル名を指定し、[保存] をクリックします。

IntelliTrace イベント

IntelliTrace イベントは、アプリケーションの実行中に発生し、IntelliTrace によって収集できるイベントです。 IntelliTrace によって収集できるイベントの種類は次のとおりです。

  • デバッガーのイベント。 アプリケーションのデバッグ時に Visual Studio デバッガー内で発生するイベントです。 アプリケーションのスタートアップはデバッガー イベントの 1 つです。 その他のデバッガー イベントとして、アプリケーションをブレーク状態にする停止イベントがあります。 停止イベントの例として、ブレークポイントのヒット、トレースポイントのヒット、または [ステップ] コマンドの実行などがあります。

    パフォーマンスの理由により、IntelliTrace はすべてのデバッガー イベントのすべての有効な値の収集は行いません。 代わりに、ユーザーが見ることのできる値を収集します。 たとえば、[自動変数] ウィンドウが開かれると、IntelliTrace は [自動変数] ウィンドウに表示される変数を収集します。 [自動変数] ウィンドウが閉じられると、これらの値は収集されません。

    ソース ウィンドウで変数をポイントすると、データヒントに表示される値が収集されます。 ただし、固定されたデータヒントの値は収集されません。

  • 例外イベント。 例外がスローおよびキャッチされた時点でハンドルされた例外、およびハンドルされない例外の場合に発生するイベントです。 IntelliTrace では、例外の種類と例外メッセージを収集します。

  • .NET イベント。 .NET ライブラリ内で発生するイベントです。 .NET イベントは、[オプション] ダイアログ ボックスの [IntelliTrace イベント] ページで収集し、一覧で表示できます。 IntelliTrace によって収集されるデータは、イベントにより異なります。 たとえば、ファイル アクセス イベントの場合はファイルの名前が収集され、チェック ボックス オンの場合はチェック ボックスの状態とテキストが収集されます。

収集された IntelliTrace イベントの一覧を表示するには、[IntelliTrace] ウィンドウの [IntelliTrace イベント] タブをクリックします。 IntelliTrace を有効にすると、デバッガー イベントは常に収集されます。 デバッガー イベントの収集は無効にできません。

既定では、最も一般的な .NET イベントが収集されます。 他の .NET イベントを選択するには、次の手順を行います。 さらに、任意の .NET イベントまたはすべての .NET イベントの収集を無効にできます。 [IntelliTrace] ウィンドウの表示を整理するには、関心がないイベントの収集を無効にします。 特定のイベントの収集を有効または無効にしても、通常、アプリケーションのパフォーマンスにはほとんど影響がありません。

記録する IntelliTrace イベントを選択するには

  1. [IntelliTrace] ウィンドウのツール バーの [IntelliTrace の設定を開く] アイコンをクリックします。

    または

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

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

  2. [IntelliTrace を有効にする] がオンであることを確認します。

    注意

    [IntelliTrace を有効にする] チェック ボックスがオフの場合、すべてのカスタム設定は無効になります。

  3. [IntelliTrace] ノードの下にある [IntelliTrace イベント] をクリックします。

  4. [IntelliTrace イベント] ボックスで、目的のイベントのカテゴリを探します。

    1. 個々のイベントを表示するには、[カテゴリ] 名の横にあるツリー コントロールをクリックします。 たとえば、[レジストリ] を展開すると、ClosedRegistryKey などのレジストリ イベントが表示されます。

    2. イベントのカテゴリ全体の記録を有効または無効にするには、カテゴリ名の横にあるチェック ボックスをオンまたはオフにします。

    3. 特定のイベントの記録を有効または無効にするには、そのイベント名の横にあるチェック ボックスをオンまたはオフにします。

  5. [OK] をクリックします。

  6. デバッグ中の場合、変更を有効にするにはデバッグ セッションを再起動する必要があります。

呼び出しとパラメーター

IntelliTrace を使用してデバッグ中にさらに詳細な情報が必要な場合、呼び出しとパラメーターに関する情報を収集できます。 呼び出し情報の収集はアプリケーションのパフォーマンスに影響があり、ログ ファイルのサイズも増えます。

呼び出し情報の収集は、Visual Studio デバッガーのエディット コンティニュ機能と互換性がありません。 呼び出し情報を収集する場合、エディット コンティニュは自動的に無効になり、呼び出し情報の収集を有効にしている間はエディット コンティニュを有効にできません。

[IntelliTrace イベントと呼び出し情報] を有効にすると、各呼び出しの開始と終了のレコードが収集されます。 開始時には、各パラメーターの名前と値の情報が収集されます。 配列の場合、先頭の 256 オブジェクトのみが記録されます。 オブジェクトの場合、最上位の構造のみが記録されます。 終了時には、メソッドの戻り値が収集されます。

呼び出し情報の収集を有効にするには

  1. [オプション] ダイアログ ボックスの [IntelliTrace] ノードで、[全般] をクリックします。

  2. [全般] ページの [IntelliTrace イベントと呼び出し情報] をクリックします。

  3. [OK] をクリックします。

モジュールごとの収集の構成

特定のモジュールについて、IntelliTrace 情報の収集をオンまたはオフにできます。 デバッグに必要がないモジュールがあるときに、この機能は便利です。 たとえば、十分にテストし、徹底的にデバッグしたレガシ DLL プロジェクトを含むソリューションをデバッグするとします。 使用しないモジュールを除外することで、[IntelliTrace] ウィンドウの表示が見やすくなり、目的のコードに集中しやすくなります。 また、パフォーマンスが改善され、ログ ファイルに使用されるディスク領域も減ります。 呼び出しとパラメーターを収集する場合、相違点は膨大になる可能性があります。

選択したモジュールからデータを収集するには

  1. [オプション] ダイアログ ボックスの [IntelliTrace] ノードで、[モジュール] をクリックします。

  2. [次を除くすべてのモジュールからデータを収集] または [次のモジュールからのみデータを収集] をクリックします。

    その設定の下に、モジュール名の一覧が表示されます。

  3. 一覧からモジュールを削除するには、モジュール名を選択し、[削除] をクリックします。

  4. モジュールを一覧に追加するには:

    1. [追加] ボタンをクリックします。

      [パターンの追加] ダイアログ ボックスが表示されます。

    2. [照合する文字列パターンを入力してください] ボックスに、一覧に追加するモジュール名を入力します。 複数のモジュールを追加するには、文字列の先頭または末尾にワイルドカード文字の指定子を使用できます。

    3. [追加] をクリックします。

    モジュール名はアセンブリ名ではなくファイル名にします。 ファイル パスは使用できません。

  5. [OK] をクリックします。

    注意

    [全般] ページで、コレクションが [イベントのみ] に設定されている場合、モジュールの設定の影響はありません。

参照

概念

IntelliTrace を使用したデバッグ