JNI を介して Java プラットフォームから呼び出される共有ライブラリがあります。Valgrnid を使用して solib のメモリ リークをチェックすることは可能でしょうか?
私は試した
valgrind java -cp bin:libs/junit/junit.jar org.junit.runner.JUnitCore com.test.app
==7902== Memcheck, a memory error detector
==7902== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==7902== Using Valgrind-3.8.0 and LibVEX; rerun with -h for copyright info
==7902== Command: java -cp bin:libs/junit/junit.jar org.junit.runner.JUnitCore com.test.FnTestNPVRRemoteBooking
==7902==
JUnit version 4.11-SNAPSHOT-20120805-1225
.
.
.
.
.
end
Valgrind は実行されますが、結果は出力されません。これはおそらく、Java アプリケーションで実行することを意図していないためですが、回避策はありますか?
一般に、solibs でのみメモリリークをチェックする解決策はありますか?
Valgrind を PID (Linux プラットフォーム) にフックすることは可能ですか? (GDBをフックできることは知っています)そうであれば、アプリPIDがJavaアプリケーションになるため、私のシナリオに役立ちますか。
PS - 私のアプリは Android で実行するためのものではありませんが、Android 開発者が解決策を認識している可能性があるため、Android タグを追加します。