diff options
author | Imre Deak <imre.deak@intel.com> | 2012-03-30 15:44:39 +0300 |
---|---|---|
committer | José Fonseca <jose.r.fonseca@gmail.com> | 2012-07-07 12:40:26 +0100 |
commit | b4c584d31d7795428a8a30e353c3f4bc02c5ae5e (patch) | |
tree | 71f03759563d7719e42fb85c91c89890242e1442 /README.markdown | |
parent | 1242ab5cbdc409e2fc2d787edc28c6ac2a8439d1 (diff) |
Android: add usage instructions for tracing zygote applications
Signed-off-by: Imre Deak <imre.deak@intel.com>
Diffstat (limited to 'README.markdown')
-rw-r--r-- | README.markdown | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/README.markdown b/README.markdown index d5c4aedb..9702ba07 100644 --- a/README.markdown +++ b/README.markdown @@ -141,6 +141,67 @@ To trace the application inside gdb, invoke gdb as: gdb --ex 'set exec-wrapper env LD_PRELOAD=/path/to/glxtrace.so' --args /path/to/application +### Android ### + +The following instructions should work at least for Android Ice Scream +Sandwitch: + +For standalone applications the instructions above for Linux should +work. To trace applications started from within the Android VM process +(app_process aka zygote) you'll have to wrap this process and enable +tracing dynamically for the application to be traced. + +- Wrapping the android main VM process: + + In the Android root /init.rc add the LD_PRELOAD setting to zygote's + environment in the 'service zygote' section: + + """ + service zygote ... + setenv LD_PRELOAD /data/egltrace.so + ... + """ + + Note that ICS will overwrite the /init.rc during each boot with the + version in the recovery image. So you'll have to change the file in + your ICS source tree, rebuild and reflash the device. + Rebuilding/reflashing only the recovery image should be sufficient. + + +- Copy egltrace.so to /data + + On the host: + $ adb push /path/to/apitrace/build/wrappers/egltrace.so /data + + +- Adjust file permissions to store the trace file: + + By default egltrace.so will store the trace in + /data/app_process.trace. For this to work for applications running + with a uid other than 0, you have to allow writes to the /data + directory on the device: + + # chmod 0777 /data + + +- Enable tracing for a specific process name: + + To trace for example the Settings application: + # setprop debug.apitrace.procname com.android.settings + + In general this name will match what 'ps' reports. + + +- Start the application: + + If the application was already running, for example due to ICS's way + of pre-starting the apps, you might have to kill the application + first: + + # kill <pid of app> + + Launch the application for example from the application menu. + ### Mac OS X ### Run the application you want to trace as |