Я не могу ответить на ваш опубликованный вопрос, но не могли бы вы рассказать, какая у вас проблема?
Другими словами, можете ли вы сказать нам, если это ...
- На уровне JNI, а не в области действия объекта JVM?
- Использование свободной памяти?
- Перезаписывать / перезаписывать буфер?
- Другое повреждение памяти?
Недавно мне пришлось отлаживать Java / C, в котором возникли проблемы (после 30 с лишним минут работы), которые, как оказалось, использовали память после того, как она была свободна. Я попытался использовать dmalloc, мою собственную библиотеку утечек памяти, Valgrind, и ни одна из них не работала так, как мне нужно.
В конце концов я создал простой набор оберток вокруг free, malloc, calloc, realloc, который просто печатал адреса и размеры памяти в файле. После того, как он прервался (в GDB), я мог вернуться назад во времени и выяснить, когда была свободна память и где были ссылки, которые не были удалены.
ЕСЛИ ваша проблема в C / C ++, и вы можете перехватить ошибку в отладчике, это может сработать для вас. Да, это утомительно, но, возможно, не хуже, чем просеивать мегабайты выходных данных Valgrind.
Надеюсь, что это помогает и удачи.