No puedo responder a su pregunta publicada, pero ¿puede explicar qué problema está teniendo?
En otras palabras, ¿puede decirnos si es ...
- En la capa de JNI y no una cuestión objeto alcance JVM?
- ¿Un uso de memoria libre?
- ¿Sobrescribir/sobreescribir?
- ¿Otra corrupción de memoria?
Recientemente tuve que depurar un Java/C que tenía problemas (después de más de 30 minutos de ejecución), que resultaba que estaba usando memoria después de haber sido liberado. Traté de usar dmalloc, una biblioteca de filtración de memoria personalizada mía, Valgrind y ninguna funcionó como necesitaba.
Eventualmente creé un conjunto simple de envoltorios alrededor de libre, malloc, calloc, realloc que simplemente imprimía direcciones y tamaños de memoria a un archivo. Después de que se abortó (dentro de GDB) pude retroceder en el tiempo y descubrir cuándo se liberó la memoria y dónde estaban las referencias que no se eliminaron.
Si su problema está en C/C++ y puede atrapar el error en un depurador esto podría funcionar para usted. Sí, es tedioso, pero tal vez no sea peor que examinar megabytes de salida de Valgrind.
Espero que ayude & buena suerte.
He encontrado la localización de problemas de memoria JNI en Win32 no más fácil. –
Si termina creando el archivo de exclusión, ¿le importaría publicarlo aquí? – Arkadiy