3
我试着用setprop libc.debug.malloc = 1来查找泄漏。 我做了一个演示程序,并介绍了内存泄漏,但上面的标志无法检测到这个泄漏。 我尝试以下命令: 亚行外壳setprop libc.debug.malloc 1 亚行外壳停止 亚行shell启动setprop libc.debug.malloc = 1不起作用
jstring Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv* env,
jobject thiz) {
int *p = malloc(sizeof(int));
p[1] = 100;
return (*env)->NewStringUTF(env, "Hello from JNI !");
}
任何帮助,将不胜感激。
谢谢
谢谢。我厌倦了也免费,它给了我日志,但没有提及任何关于lib libhello-jni.so(这是我的项目如此文件),虽然日志有pid和组件包名称,但是,这些信息非常更少(函数名称在哪里会更有帮助)。我也试过valgrind,它提供了内存泄漏和无效写入,但它使应用程序非常缓慢。我需要测试的应用程序在一段时间后随机崩溃。我正在寻找提供内存泄漏和内存损坏的方式,同时应用程序保持相当响应。 – Mayank
将libc.debug.malloc设置为5或10会发现相当多的问题。它不像valgrind那么彻底 - 例如,它不会帮助你处理堆栈转储或未初始化的值,但速度更快。 – fadden