JNI kullanan bir programda düzgün hata ayıklayamama ile ilgili gerçek sorun için (veya hata ayıklayıcı altında çalıştırıldığında hata görünmüyor):
Bu durumda, bazı temel akıl sağlığı kontrolleri yapan (tüm "nesnelerin" serbest bırakıldığını ve "nesneleri" kontrol eden JNI çağrılarınızın etrafına Java sarmalayıcıları eklemenize yardımcı olur (yani, tüm yerel yöntemler özeldir ve sınıftaki genel yöntemler bunları çağırır). serbest bırakıldıktan sonra kullanılmaz) veya senkronizasyon (tüm yöntemleri tek bir DLL'den tek bir nesne örneğine senkronize edin). Java sarıcı yöntemlerinin hatayı günlüğe kaydetmesine ve bir istisna atmasına izin verin.
Bu genellikle gerçek hatayı bulmaya yardımcı olur (şaşırtıcı bir şekilde çoğunlukla, bazı kötü çift serbestliklere veya benzerlerine neden olan çağrılan işlevlerin anlamlarına uymayan Java kodundadır), büyük bir paralel Java programında hata ayıklamaya çalışmaktan daha kolay yerel hata ayıklayıcı ...
Nedeni biliyorsanız, kodu önleyen sarmalayıcı yöntemlerinde saklayın. Sarma yöntemlerinizin, VM'yi kilitleyen JNI kodunuzdan daha iyi istisnalar atması daha iyi ...