Sto spostando un progetto nel nuovo Android Native Development Kit (cioè JNI) e vorrei catturare SIGSEGV, se dovesse verificarsi (possibilmente anche SIGILL, SIGABRT, SIGFPE) per presentare una bella finestra di dialogo di segnalazione di crash, invece di (o prima) ciò che accade attualmente: la morte immediata e senza cerimonie del processo e forse qualche tentativo da parte del sistema operativo di riavviarlo. ( Modifica: la VM JVM / Dalvik cattura il segnale e registra una traccia dello stack e altre informazioni utili; Voglio solo offrire all'utente la possibilità di inviarmi queste informazioni tramite e-mail.)
La situazione è: una grande quantità di codice C che non ho scritto fa la maggior parte del lavoro in questa applicazione (tutta la logica del gioco) e sebbene sia ben testato su numerose altre piattaforme, è del tutto possibile che io, nel mio Android port, alimenterà la spazzatura e causerà un arresto anomalo nel codice nativo, quindi voglio i dump di arresto anomalo (sia nativi che Java) che attualmente vengono visualizzati nel registro di Android (immagino che sarebbe stderr in una situazione non Android). Sono libero di modificare arbitrariamente sia il codice C che Java, sebbene i callback (sia in entrata che in uscita da JNI) siano circa 40 e, ovviamente, punti bonus per piccole differenze.
Ho sentito parlare della libreria di concatenamento del segnale in J2SE, libjsig.so, e se potessi installare in sicurezza un gestore di segnali come quello su Android, risolverebbe la parte interessante della mia domanda, ma non vedo tale libreria per Android / Dalvik .