インテル(R) VTune(TM) Amplifier XE は収集したデータをファイナライズする際に、各関数のスタック情報を表示するためにシンボルファイル (通常は PDB ファイル) を使用します。アプリケーションで使用されているシステムモジュールのシンボルが見つからない場合、[Bottom-up (ボトムアップ)] / [Top-down Tree (トップダウン・ツリー)] ウィンドウと [Call Stack (コールスタック)] ペインに表示されるスタックデータが不完全であったり、間違っていることがあります。次のような状況が考えられます。
条件 |
結果 |
---|---|
システム API を多用するアプリケーションの hotspot 解析やコンカレンシー解析を実行した場合 |
スタックがユーザーコードに到達せずシステムモジュール内にとどまるため、インテル(R) VTune(TM) Amplifier XE はスタックを正確に巻き戻せないことがあります。通常、そのようなスタックは、システムモジュールからの呼び出し位置に限定されます。インテル(R) VTune(TM) Amplifier XE は、[Unknown frame(s) (不明なフレーム)] で不完全なスタックを以前の完全なスタックにアタッチしようとするため、フィルターバーの [Call Stack Mode (コール・スタック・モード)] オプションを使用してシステムレイヤーからユーザーコードに移動すると、[Unknown frame(s) (不明なフレーム)] hotspot が表示されます。 |
速度を低下させる待機が発生する同期 API を使用するアプリケーションのロックと待機の解析を実行した場合 |
PDB ファイルが見つからない場合、32 ビット・アプリケーションでは正しくないスタック情報が表示されることがあります。64 ビット・アプリケーションでは、スタックの巻き戻し情報がアプリケーション内でエンコードされます。
解決方法:
[Project Properties (プロジェクト・プロパティー)] > [Search Directories (検索ディレクトリー)] タブの検索ディレクトリーで、アプリケーション・モジュールの PDB ファイルへのパスが指定されていることを確認します。詳細は、「検索ディレクトリーの設定について」を参照してください。
[Tools (ツール)] > [Options (オプション)] > [Debugging (デバッグ)] > [Symbols (シンボル)] ページで Microsoft* シンボルサーバーのパスを指定します。詳細は、「デバッグ情報の使用」を参照してください。
結果を再ファイナライズします。
結果: インテル(R) VTune(TM) Amplifier XE は、指定したキャッシュ・ディレクトリーのシステムモジュールのシンボルファイルを使用して、より完全なコールスタックを提供します。
(C) 2010 Intel Corporation. 無断での引用、転載を禁じます。