Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Formato de archivo de seguimiento de Android Systrace

Herramienta systrace de Android, llama a la herramienta atrace a través de ADB. Sin embargo, no entiendo muy bien el formato del archivo de trazas. Al parecer, es muy similar a la herramienta linux ftrace con algunas diferencias. La principal diferencia es que no usa un archivo System.Map pero incluye toda esa información en el archivo de rastreo. Además, hay nuevas entradas B | E que son específicas para Android.

Hay alguna información sobre este formato en el código fuente de Android en: http://androidxref.com/4.1.1/xref/external/chromium-trace/src/tracing/linux_perf_importer.js

Sin embargo, en esa documentación podemos leer que el formato pertenece a Linux Perf Tool. No lo creo, linux perf da como salida un formato muy diferente … (a menos que alguna configuración especial esté activa …)

Mi pregunta es: ¿Alguien sabe dónde puedo encontrar una documentación oficial sobre los archivos de seguimiento de android generados con la herramienta atrace de adb?

¿Le es familiar este formato?

# tracer: nop # # entries-in-buffer/entries-written: 66427/66427 #P:2 # # _-----=> irqs-off # / _----=> need-resched # | / _---=> hardirq/softirq # || / _--=> preempt-depth # ||| / delay # TASK-PID CPU# |||| TIMESTAMP FUNCTION # | | | |||| | | atrace-1724 [000] d..3 14186.680000: sched_switch: prev_comm=atrace prev_pid=1724 prev_prio=120 prev_state=S ==> next_comm=swapper/0 next_pid=0 next_prio=120 <idle>-0 [000] d.h7 14186.690000: sched_wakeup: comm=tfm_b6bcf800 pid=1714 prio=35 success=1 target_cpu=000 <idle>-0 [000] d..3 14186.690000: sched_switch: prev_comm=swapper/0 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=tfm_b6bcf800 next_pid=1714 next_prio=35 tfm_b6bcf800-1714 [000] d..3 14186.690000: sched_switch: prev_comm=tfm_b6bcf800 prev_pid=1714 prev_prio=35 prev_state=D|W ==> next_comm=swapper/0 next_pid=0 next_prio=120 <idle>-0 [001] d.h3 14186.690000: sched_wakeup: comm=Player Aud Mixe pid=146 prio=35 success=1 target_cpu=001 <idle>-0 [001] d..3 14186.690000: sched_switch: prev_comm=swapper/1 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=Player Aud Mixe next_pid=146 next_prio=35 Player Aud Mixe-146 [001] d..3 14186.690000: sched_switch: prev_comm=Player Aud Mixe prev_pid=146 prev_prio=35 prev_state=D ==> next_comm=swapper/1 next_pid=0 next_prio=120 <idle>-0 [001] d.h3 14186.690000: sched_wakeup: comm=Player Aud Mixe pid=146 prio=35 success=1 target_cpu=001 <idle>-0 [001] d..3 14186.690000: sched_switch: prev_comm=swapper/1 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=Player Aud Mixe next_pid=146 next_prio=35 Player Aud Mixe-146 [001] d..3 14186.690000: sched_switch: prev_comm=Player Aud Mixe prev_pid=146 prev_prio=35 prev_state=S ==> next_comm=swapper/1 next_pid=0 next_prio=120 <idle>-0 [001] d.h3 14186.700000: sched_wakeup: comm=Player Aud Mixe pid=146 prio=35 success=1 target_cpu=001 <idle>-0 [001] d..3 14186.700000: sched_switch: prev_comm=swapper/1 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=Player Aud Mixe next_pid=146 next_prio=35 EventThread-110 [001] d..5 14190.100000: sched_wakeup: comm=SurfaceFlinger pid=103 prio=112 success=1 target_cpu=001 EventThread-110 [001] d..3 14190.100000: sched_switch: prev_comm=EventThread prev_pid=110 prev_prio=111 prev_state=S ==> next_comm=SurfaceFlinger next_pid=103 next_prio=112 SurfaceFlinger-103 [001] ...1 14190.100000: tracing_mark_write: B|96|onMessageReceived SurfaceFlinger-103 [001] ...1 14190.100000: tracing_mark_write: B|96|handleTransaction SurfaceFlinger-103 [001] ...1 14190.100000: tracing_mark_write: B|96|doTransaction SurfaceFlinger-103 [001] ...1 14190.100000: tracing_mark_write: E SurfaceFlinger-103 [001] ...1 14190.100000: tracing_mark_write: E SurfaceFlinger-103 [001] ...1 14190.100000: tracing_mark_write: B|96|handleMessageInvalidate SurfaceFlinger-103 [001] ...1 14190.100000: tracing_mark_write: E SurfaceFlinger-103 [001] ...1 14190.100000: tracing_mark_write: E SurfaceFlinger-103 [001] ...1 14190.100000: tracing_mark_write: B|96|onMessageReceived SurfaceFlinger-103 [001] ...1 14190.100000: tracing_mark_write: B|96|handleMessageRefresh SurfaceFlinger-103 [001] ...1 14190.100000: tracing_mark_write: B|96|rebuildLayerStacks SurfaceFlinger-103 [001] ...1 14190.100000: tracing_mark_write: B|96|computeVisibleRegions SurfaceFlinger-103 [001] ...1 14190.100000: tracing_mark_write: E SurfaceFlinger-103 [001] ...1 14190.100000: tracing_mark_write: E SurfaceFlinger-103 [001] ...1 14190.100000: tracing_mark_write: B|96|doComposition SurfaceFlinger-103 [001] d.h4 14190.100000: sched_wakeup: comm=surfaceflinger pid=96 prio=120 success=1 target_cpu=001 SurfaceFlinger-103 [001] d..3 14190.100000: sched_switch: prev_comm=SurfaceFlinger prev_pid=103 prev_prio=112 prev_state=R ==> next_comm=surfaceflinger next_pid=96 next_prio=120 

Gracias por adelantado !

5 Solutions collect form web for “Formato de archivo de seguimiento de Android Systrace”

Bueno, ahora está seguro: el formato pertenece a la herramienta ftrace . Android atrace es una extensión de ftrace build para facilitar la configuración.

La documentación oficial de ftrace , muestra que este formato de salida puede ser producido directamente por ella de la siguiente manera:

 root@adroid:# echo 1 > /sys/kernel/debug/tracing/events/sched/sched_switch/enable root@adroid:# echo 1 > /sys/kernel/debug/tracing/tracing_on root@adroid:# cat /sys/kernel/debug/tracing/trace > mytracefile.txt root@adroid:# echo 0 > /sys/kernel/debug/tracing/tracing_on root@adroid:# echo 0 > /sys/kernel/debug/tracing/events/sched/sched_switch/enable 

Documentación oficial en: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/trace/ftrace.txt

 # cat trace # tracer: nop # # entries-in-buffer/entries-written: 77/77 #P:8 # # _-----=> irqs-off # / _----=> need-resched # | / _---=> hardirq/softirq # || / _--=> preempt-depth # 

/ delay # TASK-PID CPU#

| TIMESTAMP FUNCTION # | | |

| | | <idle>-0 [007] d… 2440.707395: sched_switch: prev_comm=swapper/7 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=snapshot-test-2 next_pid=2243 next_prio=120 snapshot-test-2-2229 [002] d… 2440.707438: sched_switch: prev_comm=snapshot-test-2 prev_pid=2229 prev_prio=120 prev_state=S ==> next_comm=swapper/2 next_pid=0 next_prio=120 […]

Saludos,

Gran post sin embargo, no se olvide de montar el sistema de archivos de depuración,

 "mount -t debugfs none /sys/kernel/debug" or "mount -o rw,remount -t debugfs none /sys/kernel/debug" 

De lo contrario no obtendrá algo como

"Error de apertura / sys / kernel / debug / tracing / options / overwrite: Ningún archivo o directorio"

Cuando se ejecuta atrace

Un poco más de información útil aquí http://rahulonblog.blogspot.se/2013/06/how-to-enable-debugfs-in-kernel.html

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.