2013-09-25 8 views
11

Ho installato valgrind per Android e posso confermare che funziona come ho provato ad eseguire ls con esso, e funziona bene.Come si esegue valgrind con un'app per Android?

Ma come si esegue un'applicazione Android con un componente nativo che si desidera eseguire il debug? Ho dato un'occhiata a questa domanda: How to start an android app with valgrind ma non ho idea di come seguirla. Come si avvolge un'app in uno script di shell? Cos'è "wrap". seguito dal nome del pacchetto dovrebbe essere?

Ho provato a fare questo con com.matthewmitchell.wakeifyplus essere il mio pacchetto di applicazioni:

setprop wrap.com.matthewmitchell.wakeifyplus "logwrapper /data/local/valgrind" 

ma dice "non poteva impostare la proprietà". Cosa dovrei fare? Non riesco a trovare alcuna guida passo passo che funzioni. Ho provato questo (io non so nemmeno cosa setprop fa):

setprop com.matthewmitchell.wakeifyplus "logwrapper /data/local/valgrind" 

Con/data/local/Valgrind essendo uno script di shell con i permessi di esecuzione che è:

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

Ma quando ho eseguire l'app con:

am start -a android.intent.action.MAIN -n com.matthewmitchell.wakeifyplus/.MainActivity 

valgrind non viene visualizzato in logcat, anche dopo averlo cancellato.

risposta

7

si ottiene l'errore "non poteva impostare la proprietà", perché non è possibile impostare un nome di proprietà con una lunghezza superiore a 31, che è caratteri il numero massimo consentito in nome della proprietà: https://stackoverflow.com/a/5068818/313113

Try per ridurre la lunghezza del nome del pacchetto a un numero inferiore o uguale a 31 caratteri quando si imposta la proprietà con adb shell setprop.
E utilizzare uno script bash semplicemente per le cose.
Per ulteriori dettagli vedere la mia risposta qui: https://stackoverflow.com/a/19235439/313113

+0

Grazie mille. Ora guarderò questo ... –

+0

Ha funzionato! È molto molto lento ma funziona. –

+0

e cosa succede nei casi in cui vogliamo eseguirlo su un'applicazione che non ci appartiene? comunque per aggirare i 31 caratteri Limitazione – Paschalis