Search Directories for Android* Targets
For accurate module resolution and source analysis of your Android* application, make sure to specify search paths for binary and source files when configuring performance analysis:
host>./vtune --collect hotspots -knob sampling-mode=hw -r system_wide_r@@@ --search-dir ~/AndroidOS_repo/out/target/product/ctp_pr1/symbols/
If you have not set the project search directories at the time of collection or import, you will not be able to open the source code. Only Assembly view will be available for source analysis.
Consider the following when adding search paths:
By default, the VTune Profiler pulls many binaries from the target device.
The Kernel [vmlinux] is one file that does not contain symbols on the target device. Typically it is located in [AndroidOSBuildDir]/out/target/product/[your target]/linux/kernel/vmlinux.
Many operating system binaries with symbols are located in either [AndroidOSBuildDir]/out/target/product/[your target]/symbols, or [AndroidOSBuildDir]/out/target/product/[your target]/obj.
Application binaries with symbols are located in [AndroidAppBuildDir]/obj/local/x86.
Application source files for the C/C++ modules are usually located in [AndroidAppBuildDir]/jni , not in [AndroidAppBuildDir]/src (where the Java *source files are). Some third-party software in Android does not provide binaries with symbols. You must contact the third party to get a version of the binaries with symbols.
You can see if a binary has symbols by using the file command in Linux and make sure that it says not stripped.
file MyBinary.ext MyBinary.ext: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped