Ben hareket ediyorum bir proje Yeni Android Yerel Geliştirme Kiti (yani JNI) ve bunun yerine, diyalog raporlama güzel kazasında sunmak için (ayrıca SIGILL muhtemelen SIGABRT, SIGFPE) gerçekleşmesi gereken, SIGSEGV yakalamak istiyorum (veya daha önce) şu anda olanlardan: sürecin ani ve belirsiz ölümü ve muhtemelen işletim sisteminin onu yeniden başlatma girişimleri. ( Düzenleme: JVM / Dalvik VM sinyali yakalar ve bir yığın izini ve diğer yararlı bilgileri günlüğe kaydeder; yalnızca kullanıcıya bu bilgiyi bana gerçekten e-posta ile gönderme seçeneği sunmak istiyorum.)
Durum şu: Yazmadığım büyük bir C kodu bu uygulamadaki işin çoğunu yapıyor (tüm oyun mantığı) ve diğer birçok platformda iyi test edilmiş olmasına rağmen, Android'imde tamamen mümkün. bağlantı noktası, çöpü besleyecek ve yerel kodda bir çökmeye neden olacak, bu nedenle şu anda Android günlüğünde görünen kilitlenme dökümlerini (hem yerel hem de Java) istiyorum (Android olmayan bir durumda stderr olacağını tahmin ediyorum). Hem C hem de Java kodunu keyfi olarak değiştirmekte özgürüm, ancak geri aramalar (hem JNI'ye giren hem de çıkan) yaklaşık 40'tır ve tabii ki küçük farklar için bonus puanlar.
J2SE, libjsig.so'daki sinyal zincirleme kitaplığını duydum ve Android'e güvenli bir şekilde böyle bir sinyal işleyici kurabilirsem sorumun dikkat çekici kısmını çözerdi, ancak Android / Dalvik için böyle bir kitaplık göremiyorum .