web-dev-qa-db-ja.com

トレースポイントは何に使用されますか?

メソッド名にのみ配置できます。それらはどのように使用され、何のために使用されますか?

enter image description here

28
Jude

デバッガーチームには、この件に関する優れたブログ投稿と例も掲載されています。 http://blogs.msdn.com/b/visualstudioalm/archive/2013/10/10/tracepoints.aspx

https://web.archive.org/web/20190109221722/https://blogs.msdn.Microsoft.com/devops/2013/10/10/tracepoints/

トレースポイントはまったく新しい機能ではありません(VS 2005以降Visual Studioにあります)。また、プログラムの実行を中断させないため、それ自体はブレークポイントではありません。これは何かを検査する必要がある場合に役立ちますが、プログラムを停止しないとバグの動作が再現されないなどの原因になります。

トレースポイントは、UIで一時停止することなく、ブレークポイントがデバッグ出力ウィンドウに情報をログに記録して続行できるようにすることで、プログラムを停止して何かを検査できない場合に再現できない動作を引き起こすケースを克服する試みです。マクロを使用してこれを行うこともできますが、時間がかかる可能性があります。

トレースポイントを設定するには、まずコードにブレークポイントを設定します。次に、ブレークポイントのコンテキストメニューを使用して、[ヒットしたとき...]メニュー項目を選択します。ここで、ブレークポイントのログステートメントを追加し、デフォルトの停止アクションをオフにして、ログに記録して移動することができます。ログ文字列に追加できる他の情報のホストがあり、ファイル、行、関数、アドレスなど、bpの場所に関する静的情報が含まれます。式、呼び出し関数、呼び出しスタックなどの動的情報を追加することもできます。スレッド情報やプロセス情報の追加などは、複数のスレッドやプロセスを処理するときにタイミングのバグを追跡するのに役立ちます。

28
Maria

デバッグに非常に役立つことがわかるユースケース:

何度も呼び出される関数をデバッグしたい場合(たとえば、数百回)を確認したい場合があります- トレンドローカル変数が変化しています。これを行うには、ブレークポイントを配置することで可能ですが、その関数で(デバッグ中に)何百回も停止し、メモ帳で値を書き留めるのに苦労することを考えてください。これを行うのは、トレースポイントを使用することで非常に簡単です。ログは、「Output」ウィンドウに直接配置されるため、簡単に分析したり、クリアしたりすることもできます。 手作業と忍耐の時間を節約します。

出力ウィンドウでのログの例(数百行まで実行可能):

keyframeNo = 2, time = 1100
keyframeNo = 1, time = 0
keyframeNo = 1, time = 1
keyframeNo = 1, time = 1
keyframeNo = 1, curTime =22
curTime=1132835, keyframeno=15
keyframeNo = 2, time = 1
keyframeNo = 2, time = 1

使用方法:

コードでマウスを右クリック> BreakPoint> TracePointを挿入

TracePointを使用する利点:

  • ログを生成するためのコードを追加する必要はありません。したがって、コードを作成するテンションなし、コードをクリーンアップするオーバーヘッドもありません。
  • ブレークポイントとは異なり、実行中のコードの流れを妨害しません。
  • ローカル変数の値も出力できます。 「ヒット時」をクリックした後、{local_variable}と入力します
  • ブレークポイントの場合と同じように、デバッグ状態でトレースポイントを挿入することもできます。
7
Saurav Sahu

MSDNによると:

トレースポイントは、Visual Studioの新しいデバッガー機能です。トレースポイントは、カスタムアクションが関連付けられたブレークポイントです。トレースポイントに到達すると、デバッガーは、プログラムの実行を中断する代わりに、またはそれに加えて、指定されたトレースポイントアクションを実行します。

5
Edward Karak