Visual Studio 2010 Ultimate バージョンには、.NET アプリケーションのデバッグを高速化するために、新しい機能 IntelliTrace (インテリジェント トレース) が導入され、実行プロセス中にプリセットされたイベントとメソッドが追跡され、デバッグ エグゼキューターに効果的に渡されます。 、これにより、実行中のプログラムのステータスやさまざまな情報が迅速に送信され、開発者がプログラムをより適切にデバッグし、問題を迅速に発見できるようになります。実際、Visual Studio 2010 より前では、Microsoft Visual Stuido は、変数の監視、スタックの表示など、シングル ステップ デバッグ用のブレークポイントの設定など、デバッグ ツールの継承に非常に役立ちました。これらはすべて、開発者がさまざまな実行プロセスでのプログラムのステータスを理解し、実際のロジックに従って実行されているかどうかを事前に検出するのに非常に役立ちます。また、ブレークポイント後のプログラムのステータスを監視することで問題を発見することもできます。この問題は、ブレークポイントが実行される前に論理エラーが発生し、追跡できない可能性があることです。開発者は現在のデバッグを停止し、ブレークポイントをリセットしてデバッグを開始する必要があります。この実験的なプロセスでは、ブレークポイントを設定する正しい場所を見つけるのに何度も時間がかかることがよくあります。 IntelliTrace は、一部のデバッグ情報とプログラムの状態をインテリジェントに自動的に追跡し、開発者に表示するため、プログラマーがプログラムの実行状態を追跡および監視するための適切なブレークポイントを見つける必要性が軽減されます。
Visual Studio では、収集する情報のコンテンツ ソースを制御する 2 つの方法が提供されます。1 つは、IntelliTrace イベントのみであり、インテリジェント トレース イベントとデバッグ割り込みに関連するデータのみを収集します。もう 1 つは、IntelliTrace イベントと呼び出し情報でデータを収集します。 IntelliTrace への追加 イベント以外のメソッド呼び出しの開始と終了に関するさまざまなデータ。 Visual Studio 2010 で IntelliTrace のトレース オプションを設定する方法を見てみましょう。
[ツール] --> [オプション] --> [IntelliTrace] に移動します。ただし、イベントのキャプチャは低コストであるため、デフォルトで有効になっています。ただし、これらの通話情報をすべて追跡し始めると、実際の値が表示され始めます。デバッグするたびに、IntelliTrace がポップアップ表示されます。動的デバッグ中にこの履歴デバッグ ツールを使用できます。ここにいてブレークポイントがあるとします。ただし、このブレークポイントをバックアップして再設計したい場合は、IntelliTrace を使用してこのタスクを実行できます。
IntelliTrace を使用してデバッグ プロセスをキャプチャした他のユーザーは、その記録と .dll ファイルおよび pdbs ファイルを送信し、そのプロセスを再生できます。プロセスはデータベースに入る可能性があります (データベースを持っていない)、コピーできないように設定されている可能性があります、アクセスできないネットワーク上にある可能性がありますが、再生できるレコードと .dll および pdbs ファイルがあるため、心配する必要はありません。
もちろん、ソース コードがあるほうが良いです。そうすれば、自分のマシンでデバッグしているかのようにコードを確認できるからです。これは、自分のマシンでは正常に動作するが、他の人のマシンでは動作しない、謎の不具合に最適です。これはマルチスレッド状況にも非常に適しており、アプリケーションを実行するとソフトウェアの不具合は消えますが、通常の速度で実行するとソフトウェアの不具合が再び発生します。
既定では、IntelliTrace は IntelliTrace 関連のイベントのみを収集します。これは、収集されるデータを小さくし、パフォーマンスへの影響を最小限に抑えるためです。メソッド呼び出しに関するデータも収集することを選択すると、一時的に収集されたデータによって占有されるスペースが増加するだけでなく、パフォーマンスへの影響も大きくなります。収集される詳細は異なりますが、どちらの方法でもいくつかの共通のデータが収集されます。たとえば、収集プロセスが初めて開始されるとき、モジュールのロードおよびアンロード イベント、スレッドの開始時間と終了時間などのシステム情報が常に収集されます。モジュールおよびスレッドのイベントが発生すると、モジュールおよびスレッドのデバッグ ウィンドウ情報が正しく更新されます。さらに、どのモードでも、データはデバッグ ブレークポイントでも収集され、収集された基本的なデータ型とオブジェクトはデバッグ中に検査および確認され、その値の変更が許可されます。
一般に、IntelliTrace デバッガーはプログラム開発者向けにカスタマイズされており、その独自の履歴デバッグ機能を通じて、開発者にリグレット トレーサビリティ プロセス制御機能を提供します。たとえば、開発中に 10 分前にプログラムで例外が発生した場合はどうすればよいでしょうか? 以前は通常、手動で Debug.Write ステートメントを呼び出して例外を実行していましたが、今ではその必要はありません。多くの開発ツールの履歴デバッグ機能は非常に似ているため、VS2010 正式バージョンの IntelliTrace を通じて、プログラマーはプログラムの現在のステータスを確認できるだけでなく、特定の状況下で生成されたイベントを確認したり、障害点を特定したりすることもできます。アプリケーション履歴。したがって、履歴デバッグを有効にすると、VS2010 の正式版では、プログラムが保存される 10 分以上前に戻って、プログラム内で例外やエラーが発生したときのさまざまな状況を確認できます。デフォルトではプログラムはキータイプのみを保存するため、開発者はすべてのパラメータ、オブジェクト、およびグローバル変数をログに記録することを選択できます。したがって、IntelliTrace は、コード例外、ファイル アクセス、リアルタイム デバッグなど、プログラムの実行中に重要なイベントをアクティブに表示します。