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]/src (Java* ソースファイルがある) ではなく、[AndroidAppBuildDir]/jni にあります。サードパーティー製の一部の Android * ソフトウェアは、シンボル付きのバイナリーを提供していません。シンボル付きのバイナリーを入手するには開発元にお問い合わせください。
Linux* で file コマンドを使用して、バイナリーにシンボルが含まれるか確認し、ストリップされていないことを確かめます。
file MyBinary.ext MyBinary.ext: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped