Я переношу проект до нового Android Native Development Kit (тобто JNI), і я хотів би перехопити SIGSEGV, якщо це відбудеться (можливо, також SIGILL, SIGABRT, SIGFPE), щоб представити приємне діалогове вікно звітності про збої, а не (або раніше), що відбувається зараз: негайна безцеремонна смерть процесу і, можливо, якась спроба ОС перезапустити його. ( Редагувати: JVM / Dalvik VM ловить сигнал і реєструє трасування стека та іншу корисну інформацію; я просто хочу запропонувати користувачеві можливість надіслати цю інформацію мені по-справжньому.)
Ситуація така: великий корпус коду С, який я не писав, виконує більшу частину роботи в цьому додатку (вся логіка гри), і хоча він добре перевірений на багатьох інших платформах, цілком можливо, що я, у своєму Android port, буде подавати сміття і спричинятиме збій у власному коді, тому я хочу, щоб дампи збою (як власні, так і Java), які зараз відображаються в журналі Android (я думаю, це було б stderr у ситуації, що не стосується Android). Я можу вільно змінювати як код C, так і Java, хоча зворотні дзвінки (як вхідні, так і вихідні з JNI) складають близько 40 і, очевидно, бонусні бали за невеликі різниці.
Я чув про бібліотеку ланцюгів сигналів у J2SE, libjsig.so, і якби я міг безпечно встановити такий обробник сигналу на Android, це вирішило б захоплюючу частину мого питання, але я не бачу такої бібліотеки для Android / Dalvik .