saber - programa para crear aplicaciones android
Cómo iniciar una aplicación de Android con valgrind (3)
Estuve buscando la última semana tratando de encontrar una respuesta a esta pregunta.
¿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 usa el NDK para el código C nativo, y necesito verificar si hay algún error de memoria.
Editar:
Aprendí un poco más. Puede "ajustar" una aplicación con un script de shell.
Aquí está el script de shell 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í está setprop:
adb shell setprop wrap.com.starlon.froyvisuals "logwrapper valgrind"
Y así es como inicio la aplicación:
adb shell am start -n com.starlon.froyvisuals/.FroyVisuals
No creo que esto sea correcto, porque no estoy seguro de dónde encaja el script de shell y no veo nada en Logcat. ¿Algún consejo?
Edit2: Oh, el script de shell se indica con el comando "setprop" arriba. Asi que
adb shell setprop wrap.com.starlon.froyvisuals "logwrapper /data/local/val.sh"
Todavía no veo nada en Logcat.
Encontré este problema también. En mi situación, edito el "val.sh" en windows y adb lo presiono al emulador, pero el script del shell no se pudo ejecutar correctamente. Luego uso un echo " * "> val.sh style para hacer el "val.sh" y funciona bien.
Por lo tanto, primero debe asegurarse de que "val.sh" se pueda interpretar correctamente.
Puede intentar borrar el logcat primero
prompt# adb logcat -c
prompt# adb logcat
Debería poder ver los registros entrando una vez que haya activado su 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"
Debería poder pasar el parámetro justo después de valgrind
sí, pero deberías usar
adb shell setprop wrap.com.example.hellojni "logwrapper ./data/local/Inst/bin/valgrind"
/ / ---- para shell (.) es importante!
también si desea usar alguna configuración de la herramienta valgrind - use esto:
adb shell setprop wrap.com.example.hellojni "logwrapper ./data/local/Inst/bin/valgrind --tool = macizo (... configure macizo atc ...)"