問題: 不明なフレーム

原因

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

条件

動作

システム API を多用するアプリケーションでホットスポット解析やスレッド化解析を実行

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

スレッド解析を実行して、アプリケーションの速度を低下させる待機を発生する同期 API を特定します。

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

解決方法

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

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

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

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

関連情報