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/[ターゲット]/linux/kernel/vmlinux にあります。
シンボルとオペレーティング・システムのバイナリーは、[AndroidOSBuildDir]/out/target/product/[ターゲット]/symbols、または [AndroidOSBuildDir]/out/target/product/[ターゲット]/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