Как запустить valgrind с Android-приложением?

Я установил valgrind для android, и я могу подтвердить, что он работает, когда я пытался запустить ls с ним, и он отлично работает.

Но как я могу выполнить приложение для Android с помощью собственного компонента, который я хотел бы отлаживать? Я посмотрел на этот вопрос: Как запустить приложение Android с valgrind, но я понятия не имею, как следовать ему. Как переносить приложение в оболочку script? Что такое "обертка". за которым следует имя пакета, которое должно быть?

Я пробовал делать это с com.matthewmitchell.wakeifyplus, являющимся моим пакетом приложений:

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

но он говорит: "Не удалось установить свойство". Что я должен сделать? Я не могу найти пошаговое руководство, которое работает. Я попробовал это (я даже не знаю, что делает setprop):

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

С/data/local/valgrind является оболочкой script с разрешениями на выполнение, которая:

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

Но когда я запускаю приложение с помощью:

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

valgrind не отображается в logcat, даже после его очистки.

Ответ 1

Вы получаете сообщение об ошибке " не может установить свойство", потому что НЕ МОЖЕТЕ установить имя свойства длиной более 31, что является числом максимально допустимых символов в имя свойства: fooobar.com/info/68701/...

Попробуйте уменьшить длину имени пакета до или равным 31 символу при установке свойства с помощью оболочки adb setprop.
И используйте bash script для простых вещей.
Более подробно см. Мой ответ здесь: fooobar.com/info/68692/...