인터페이스로 제공된 JNI 클래스를 통해 써드 파티 네이티브 모듈에 액세스하는 Java 1.6 애플리케이션이 있습니다. 최근에 우리는 SEGFAULT가 네이티브 모듈에서 발생하고 있으며 응용 프로그램이 충돌하고 있음을 확인했습니다. 적어도 죽기 전에 제대로 기록하기 위해이 사건을 잡아서 처리 할 수 있습니까?SEGFAULT를 원시 코드로 orginating 처리 할 수 있습니까?
두 Java 기술을 모두 kjp's answer에서 시도했습니다. 어느 쪽도 효과가 없었다. 예외 이미 VM에서 사용
신호에 'SEGV'결과에 signal handler를 설치하려고 : SEGV
내가 설치된 shutdown handler은 단순히 아마도 때문에 무엇 IBM article 상태, 화재 못했습니다
Runtime.halt() 메소드가 종료를 호출하는 경우
종료 후크가 실행되지 않습니다 JVM Runtime.halt()는 JVM을 빠르게 종료 할 수 있도록 제공됩니다.
-Xrs JVM 옵션이 지정되었습니다.
JVM은 JVM 소프트웨어에 의해 생성 된 예외 조건 또는 강제 중단과 같이 비정상적으로 종료됩니다.
네이티브 코드에 공개 디버깅 기호를 사용할 수 있습니까? 이유에 대해 자세히 알 수 있다면 포괄적 인 버그 보고서를 제출하여 라이브러리를 수정할 수 있습니다. – Benj
@Benj 병렬로 작업. 그들이 원하는 것보다 더 많은 정보를 얻게 될 것입니다. 백업 계획이 있기를 바랬습니다. –
어떤 OS를 실행하고 있습니까? – Benj