2012-02-03 12 views
24

He estado buscando la última semana tratando de encontrar una respuesta a esta pregunta.Cómo iniciar una aplicación de Android con valgrind

¿Cómo inicio una aplicación de Android con valgrind? Sé que puedo iniciar una aplicación con el comando 'am', pero se inicia la aplicación y se cierra.

Estoy escribiendo una aplicación que utiliza el NDK para el código C nativo, y tengo que comprobar si hay algún error de memoria.

Editar:

He aprendido un poco más. Puede "ajustar" una aplicación con un script de shell.

Aquí está el script que estoy usando:

#!/system/bin/sh 
VGPARAMS='--error-limit=no' 
export TMPDIR=/data/data/com.starlon.froyvisuals 
exec /data/local/Inst/bin/valgrind $VGPARAMS $* 

Y aquí es setprop:

adb shell setprop wrap.com.starlon.froyvisuals "logwrapper valgrind" 

Y aquí es cómo iniciar la aplicación:

adb shell am start -n com.starlon.froyvisuals/.FroyVisuals 

no lo hago Creo que esto es correcto, porque no estoy seguro de dónde encaja el script de shell y no veo nada en Logcat. ¿Algún consejo?

Edit2: Oh, la secuencia de comandos del shell se indica con el comando "setprop" anterior. Entonces

adb shell setprop wrap.com.starlon.froyvisuals "logwrapper /data/local/val.sh" 

Todavía no veo nada en logcat.

+1

para saber cómo ejecutar su aplicación a través de Valgrind ver mi guión a partir de:. http://stackoverflow.com/a/19235439/313113 – bitek

Respuesta

6

Usted puede tratar de despejar el Logcat primera

prompt# adb logcat -c 
prompt# adb logcat 

Usted debe ser capaz de ver los registros que entra una vez que han activado la aplicación.

am start -a android.intent.action.MAIN -n com.example.hellojni/.HelloJni 

Tuve problemas con mi script de shell y lo usé en su lugar.

adb shell setprop wrap.com.example.hellojni "logwrapper /data/local/Inst/bin/valgrind" 

Usted debe ser capaz de pasar en el parámetro justo después valgrind

-1

sí, pero se debe utilizar

adb shell setprop wrap.com.example.hellojni "logwrapper ./ datos/local/Inst/bin/valgrind "
/\ ---- para shell (.) es importante!

también si desea utilizar alguna de configuración de la herramienta de valgrind - utilizar esto:

adb shell setprop wrap.com.example.hellojni "logwrapper ./data/local/Inst/bin/valgrind --tool = macizo (... configure macizo atc ...) "

1

Encontré este problema también. En mi situación, edito el "val.sh "en Windows & adb empujarlo al emulador, pero el script de shell no se pudo ejecutar correctamente. Luego uso un echo" * "> val.sh style para hacer el" val.sh "y funciona bien.

Así que en primer lugar debe asegurarse de que el "val.sh" podría interpretarse correctamente

Cuestiones relacionadas