나는 이동하고있어 프로젝트 새로운 안드로이드 네이티브 개발 키트 (즉, JNI)에 및 나는 대신, 대화를보고 멋진 충돌을 제시하기 위해 (또한 SIGILL 가능성이 SIGABRT, SIGFPE)를 발생한다 SIGSEGV 잡을 싶습니다 (또는 그 이전에) 현재 일어나는 일 : 프로세스의 즉각적인 비 의식적인 죽음과 OS가 프로세스를 다시 시작하려는 시도. ( 편집 : JVM / Dalvik VM은 신호를 포착하고 스택 추적 및 기타 유용한 정보를 기록합니다. 사용자에게 해당 정보를 실제로 이메일로 보낼 수있는 옵션을 제공하고 싶습니다.)
상황은 다음과 같습니다. 제가 작성하지 않은 큰 C 코드는이 애플리케이션 (모든 게임 로직)에서 대부분의 작업을 수행하며 다른 수많은 플랫폼에서 잘 테스트되었지만 Android에서 전적으로 가능합니다. 포트는 가비지를 공급하고 네이티브 코드에서 크래시를 유발하므로 현재 Android 로그에 표시되는 크래시 덤프 (네이티브 및 Java 모두)를 원합니다 (Android가 아닌 상황에서는 stderr 일 것임). C와 Java 코드를 임의로 수정할 수 있지만, 콜백 (JNI로 들어오고 나가는 것 모두)이 약 40 개이고 분명히 작은 차이에 대한 보너스 포인트입니다.
J2SE, libjsig.so의 신호 체인 라이브러리에 대해 들었고 Android에 이와 같은 신호 핸들러를 안전하게 설치할 수 있다면 내 질문의 포착 부분을 해결할 수 있지만 Android / Dalvik 용 라이브러리는 보이지 않습니다. .