diff options
author | Alexander Monakov <amonakov@ispras.ru> | 2013-04-05 21:53:49 +0400 |
---|---|---|
committer | José Fonseca <jose.r.fonseca@gmail.com> | 2013-04-11 22:46:08 +0100 |
commit | 644352f611d0a09018e762b10e07d0e153430116 (patch) | |
tree | 220004cf6334763fd66ce35d9e7107e3e4efff84 /README.markdown | |
parent | caa8428eb4c4292d3ea53405d4dc9c3c3f21f10a (diff) |
Improve Android tracing instructions
Tracing of Java applications on Android is quite different from tracing native
executables, so move it to a separate file.
Add instructions on using wrapping support that appeared in Android 4.0, which
simplifies usage of apitrace on Android.
Add a reference to adjust-child-env tool that allows to inject tracing library
on Android without rebuilding and reflashing recovery image.
Signed-off-by: José Fonseca <jose.r.fonseca@gmail.com>
Diffstat (limited to 'README.markdown')
-rw-r--r-- | README.markdown | 65 |
1 files changed, 3 insertions, 62 deletions
diff --git a/README.markdown b/README.markdown index 5fa3ab96..eeaaee78 100644 --- a/README.markdown +++ b/README.markdown @@ -151,68 +151,9 @@ To trace the application inside gdb, invoke gdb as: ### Android ### -The following instructions should work at least for Android Ice Scream -Sandwitch. - -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. - -To trace standalone applications do: - - adb push /path/to/apitrace/build/wrappers/egltrace.so /data - adb shell - # cd /data/local/tmp - # LD_PRELOAD=/data/egltrace.so test-opengl-gl2_basic - adb pull /data/local/tmp/test-opengl-gl2_basic.trace - apitrace replay test-opengl-gl2_basic.trace +To trace standalone native OpenGL ES applications, use +`LD_PRELOAD=/path/to/egltrace.so /path/to/application` like described in the +previous section. To trace Java applications, refer to Android.markdown. ### Mac OS X ### |