問題: 不明なフレーム

原因

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

If

Then

条件次に、以下の手順を実行します。ホットスポットまたはスレッド化解析を実行し、アプリケーションでシステム API を使用しますスタックがユーザーコードに到達せずシステムモジュール内に留まるため、インテル® VTune™ プロファイラーはスタックを正しくアンワインドできません。

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

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

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

解決方法

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

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

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

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

関連情報