Generalidades

Volcar el seguimiento de la pila de subprocesos de Android.Si está depurando Android … | por Wes Alvaro | Junio ​​de 2021

Wes Alvaro

Si está utilizando Android Studio para depurar una aplicación de Android, puede verificar fácilmente los seguimientos de pila de todos los subprocesos que se ejecutan en la aplicación. Pero, ¿y si no puede adjuntar un depurador? Puede ser que esté ejecutando una prueba de UIAutomator fuera de proceso o simplemente esté probando manualmente su aplicación.Podemos usar los comandos en el dispositivo. kill Con la señal SIGQUIT Volcar la pila de subprocesos de nuestra aplicación.

Primero, necesitamos conseguir fósforoEl ID de nuestra aplicación.Podemos usar el comando en otro dispositivo. ps Por esta razón.Esto -A flag listará todos los procesos en ejecución, y luego podremos grep Para nuestro ID de aplicación (p. Ej. com.google.android.apps.gmm.dev) Luego awk Imprima solo la columna de salida, que contiene el ID del proceso. Es posible que tenga varios procesos, así que asegúrese de obtener el ID del proceso que le interesa.

> ps -A | grep $MY_APPLICATION_ID | awk ' print $2 '

Una vez que tenemos nuestro ID de proceso, es solo una simple cuestión de enviar una señal a nuestra aplicación SIGQUIT(3).

> kill -SIGQUIT $MY_APPLICATION_PID

Después de enviar la señal, deberíamos ver inmediatamente la solicitud que se está procesando, el mensaje de éxito y la ubicación del archivo rastreado en la salida de logcat. Veremos mensajes de éxito en una línea, algunos de los ID de aplicaciones truncados están suscritos por dos mensajes de desechado.

I 09:06:21 tombstoned received crash request for pid 21332
I 09:06:21 id.apps.gmm.de Wrote stack traces to tombstoned
E 09:06:21 tombstoned Traces for pid 21332 written to: /data/anr/trace_01

Parece que la ubicación del archivo de salida de seguimiento ha cambiado en varias generaciones de Android, pero para Pixel 3XL con Android R, el resultado está escrito /data/anr/trace_##. Esto ## Es predecible porque es solo un valor monótonamente creciente de 01Si necesita conocer esta ubicación sin mirar la salida de logcat, podemos verificar este formato antes de señalizar para predecir el archivo de salida.

El contenido del archivo de seguimiento es el esperado. Un seguimiento de pila con algunos metadatos agradables (tal vez más información de la que realmente desea). No creo que haya ningún beneficio en pegarlo aquí, ¡deberías probarlo tú mismo!

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba