Я искал последнюю неделю, пытаясь найти ответ на этот вопрос.
Как запустить приложение для Android с помощью valgrind? Я знаю, что могу запустить приложение с помощью команды «am», но она запускает приложение и закрывается.
Я пишу приложение, которое использует NDK для нативного кода C, и мне нужно проверить его на наличие предполагаемых ошибок памяти.
Редактировать:
Я узнал немного больше. Вы можете «обернуть» приложение сценарием оболочки.
Вот сценарий оболочки, который я использую:
#!/system/bin/sh
VGPARAMS='--error-limit=no'
export TMPDIR=/data/data/com.starlon.froyvisuals
exec /data/local/Inst/bin/valgrind $VGPARAMS $*
А вот setprop:
adb shell setprop wrap.com.starlon.froyvisuals "logwrapper valgrind"
И вот как я запускаю приложение:
adb shell am start -n com.starlon.froyvisuals/.FroyVisuals
Я не думаю, что это правильно, потому что я не уверен, где сценарий оболочки подходит, и я ничего не вижу в logcat. Есть подсказки?
Edit2: О, сценарий оболочки обозначается командой "setprop" выше. Итак
adb shell setprop wrap.com.starlon.froyvisuals "logwrapper /data/local/val.sh"
я все еще ничего не вижу в logcat.
Я тоже столкнулся с этой проблемой. В моей ситуации я редактирую "val.sh" в windows & amp; adb отправляет его в эмулятор, но скрипт оболочки не может быть выполнен правильно. Затем я использую echo " * "> стиль val.sh, чтобы создать "val.sh", и он хорошо работает.
Таким образом, вы должны сначала убедиться, что «val.sh» может быть правильно интерпретирован.