インテル® VTune™ プロファイラー・ユーザーガイド

問題: 不明なフレーム

原因

インテル® VTune™ プロファイラーは、収集されたデータをファイナライズする際に、シンボル情報を参照して各関数のスタック情報を表示できるようにします。インテル® VTune™ プロファイラーが、アプリケーションで使用するシステムモジュールのシンボルを検出できない場合、[ボトムアップ]/[トップダウン・ツリー] ウィンドウと [コールスタック] ペインに表示されるスタックデータは不完全または正しくない可能性があります。次のシナリオが考えらえます。

条件

動作

ホットスポットまたはスレッド化解析を実行し、アプリケーションでシステム API を使用している場合

スタックがユーザーコードに到達せずシステムモジュール内に留まるため、インテル® VTune™ プロファイラーはスタックを正しくアンワインドできません。そのようなスタックは、システムモジュールからの呼び出しサイトに限定されることがあります。インテル® VTune™ プロファイラーは、[不明なフレーム] を参照して不完全なスタックを完全なスタックに関連付けようとするため、フィルターバーの [コールスタック・モード] オプションを使用してシステムレイヤーをユーザーコードに関連付けると、[不明なフレーム] ホットスポットが表示されることがあります。

スレッド化解析を実行し、アプリケーションの速度低下につながる待機を発生させる同期 API を使用している場合

Windows* のみ: PDB ファイルが見つからない場合、32 ビット・アプリケーションのスタック情報は正しくない可能性があります。64 ビット・アプリケーションでは、スタックのアンワインド情報はアプリケーション内部に含まれます。

解決方法

  1. Windows* では、[バイナリー/シンボル検索] ダイアログボックスで指定される検索ディレクトリーに、アプリケーション・モジュールの PDB ファイルへのパスが含まれていることを確認します。詳細については、「検索ディレクトリー」を参照してください。

  2. Windows* では、[ツール] > [オプション] > [デバッグ] > [シンボル] ページで、Microsoft* シンボルサーバーへのパスを指定します。Linux* ターゲットでは、システムのバージョンに対応するデバッグ情報パッケージをインストールします。詳細については、「デバッグ情報を使用する」を参照してください。

  3. 結果を再ファイナライズします。

Windows* ではインテル® VTune™ プロファイラーは、指定するキャッシュ・ディレクトリーにあるシステムモジュールのシンボルファイルを使用して、より完全なコールスタックを表示します。

関連情報