Android* アプリケーションの正確なモジュールとソース解決を行うには、パフォーマンス解析を設定する際に、バイナリーとソースファイルの検索パスを指定します。
コマンドラインから、--search-dir/--source-search-dir オプションを使用します。以下に例を示します。
host>./vtune --collect hotspots -knob sampling-mode=hw -r system_wide_r@@@ --search-dir ~/AndroidOS_repo/out/target/product/ctp_pr1/symbols/
GUI から[バイナリー/シンボル検索] ダイアログボックスと [ソース検索] ダイアログボックスを使用します
収集やインポートを行う時点でプロジェクトの検索ディレクトリーを指定していないと、ソースコードを開くことができません。ソース解析ではアセンブリーのみが表示されます。
検索パスを指定する場合、次のことを考慮してください。
デフォルトで、インテル® VTune™ プロファイラーはターゲットデバイスから多数のバイナリーを取得します。
カーネル [vmlinux] は、ターゲット上でシンボルを持たない唯一のファイルです。通常、[AndroidOSBuildDir]/out/target/product/[your target]/linux/kernel/vmlinux にあります。
シンボル付きの多くのオペレーティング・システムのバイナリーは、[AndroidOSBuildDir]/out/target/product/[your target]/symbols 、または [AndroidOSBuildDir]/out/target/product/[your target]/obj にあります。
シンボル付きのアプリケーションのバイナリーは、[AndroidAppBuildDir]/obj/local/x86 にあります。
C/C++ モジュールのアプリケーションのソースファイルは、通常、[AndroidAppBuildDir]/jni 、もしくは [AndroidAppBuildDir]/src (Java* ソースファイルの場合) にあります。Android* ソフトウェアを提供するサードパーティーでは、シンボル付きのバイナリーを提供していない場合があります。シンボル付きのバイナリーの入手については、開発元にお問い合わせください。
Linux* では、file コマンドを使用して、バイナリーにシンボルが含まれているか調査し、ストリップされていないことを確認します。
file MyBinary.ext
MyBinary.ext: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped