2013-09-25 5 views
11

Ich habe Valgrind für Android installiert und ich kann bestätigen, dass es funktioniert, als ich versuchte, ls damit zu laufen, und es funktioniert gut.Wie führe ich Valgrind mit einer Android App aus?

Aber wie führe ich eine Android-App mit einer nativen Komponente aus, die ich debuggen möchte? Ich schaute auf diese Frage: How to start an android app with valgrind, aber ich habe keine Ahnung, wie ich es befolgen soll. Wie verpacken Sie eine App in ein Shell-Skript? Was ist "Umbruch"? gefolgt von dem Paketnamen soll?

Ich habe versucht, dies zu tun mit com.matthewmitchell.wakeifyplus Paket meiner Anwendung zu sein:

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

aber es sagt, „nicht-Eigenschaft könnte“. Was soll ich machen? Ich kann keine Schritt für Schritt Anleitung finden, die funktioniert. Ich tat dies versuchen (ich weiß nicht einmal, was setprop tut):

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

mit/data/local/valgrind ein Shell-Skript ist mit Berechtigungen auszuführen, die ist:

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

Aber als ich Führen Sie die App mit:

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

Valgrind nicht in Logcat angezeigt, auch nach dem Löschen.

Antwort

7

Sie erhalten die Fehlermeldung „konnte nicht gesetzt Eigenschaft“, weil Sie können einen Eigenschaftsnamen mit einer Länge von mehr als 31 gesetzt, was die Anzahl maximal zulässige Zeichen in dem Eigenschaftsnamen ist: https://stackoverflow.com/a/5068818/313113

Try Reduzieren Sie die Länge des Paketnamens auf weniger als oder gleich 31 Zeichen, wenn Sie die Eigenschaft mit adb shell setprop festlegen.
Und verwenden Sie ein Bash-Skript, um einfach Dinge.
Für weitere Details siehe meine Antwort hier: https://stackoverflow.com/a/19235439/313113

+0

Vielen Dank. Ich werde mir das jetzt anschauen ... –

+0

Es hat geklappt! Es ist sehr, sehr langsam, aber es funktioniert. –

+0

und was passiert in den Fällen, in denen wir es auf einer Anwendung ausführen wollen, die nicht zu uns gehört? trotzdem zur Problemumgehung die 31 Zeichen Einschränkung – Paschalis