Tôi đã tìm kiếm tuần cuối cùng tìm cách trả lời câu hỏi này.Cách bắt đầu một ứng dụng android với valgrind
Làm cách nào để bắt đầu một ứng dụng Android với valgrind? Tôi biết tôi có thể bắt đầu một ứng dụng với lệnh 'am', nhưng nó bắt đầu ứng dụng và thoát.
Tôi đang viết một ứng dụng sử dụng NDK cho mã C gốc và tôi cần kiểm tra xem có lỗi bộ nhớ đáng ngờ hay không.
Chỉnh sửa:
Tôi đã học được nhiều hơn một chút. Bạn có thể "bọc" một ứng dụng với một kịch bản lệnh shell.
Đây là shell script Tôi đang sử dụng:
#!/system/bin/sh
VGPARAMS='--error-limit=no'
export TMPDIR=/data/data/com.starlon.froyvisuals
exec /data/local/Inst/bin/valgrind $VGPARAMS $*
Và đây là setprop:
adb shell setprop wrap.com.starlon.froyvisuals "logwrapper valgrind"
Và dưới đây là cách tôi bắt đầu ứng dụng:
adb shell am start -n com.starlon.froyvisuals/.FroyVisuals
tôi không nghĩ rằng điều này là đúng, bởi vì tôi không chắc chắn nơi kịch bản shell phù hợp và tôi không thấy bất cứ điều gì trong logcat. Bất kỳ gợi ý nào?
Chỉnh sửa2: Oh tập lệnh trình bao được chỉ định bằng lệnh "setprop" ở trên. Vì vậy,
adb shell setprop wrap.com.starlon.froyvisuals "logwrapper /data/local/val.sh"
Tôi vẫn không thấy bất kỳ thứ gì trong logcat.
Đối với làm thế nào để chạy ứng dụng của bạn thông qua Valgrind thấy kịch bản của tôi từ:. http://stackoverflow.com/a/19235439/313113 – bitek