'내 앱'의 모든 충돌에 대해 알고 싶습니다. AppDomain.CurrentDomain.UnhandledException
을 사용하면 관리되는 예외를 쉽게 캡처 할 수 있습니다.OS X에서 로깅 런타임이 모노로 깨졌습니다.
종종 관리되지 않는 코드에서 충돌이 발생합니다 (자체 라이브러리와의 상호 작용을 통해 또는 때로는 모노 매크를 잘못 사용하거나 모노맥 자체의 문제로 인해). 나는 언제 이런 일이 일어나는지 알고 싶다.
plcrashreporter 프레임 워크를 바인딩하고이를 내 앱에 추가했습니다. 나는 Xamarin.iOS
응용 프로그램과 함께 크래시 리포터를 사용하여 discussion을 읽었으며 workaround을 구현했습니다.
지금까지 매우 좋았습니다. 크래시 리포터를 사용할 수 있었고 앱이 정상적으로 실행되었습니다. 그러나, 나는 실제로 어떤 신호가 잡히는 지에 제한되어있는 것처럼 보인다.
예를 들어, SIGILL
및 SIGABRT
은 모두 크래시 리포터에 의해 트랩됩니다. 충돌 보고서는 디스크에 기록되며 다음에 앱을 시작할 때 다시 읽을 수 있습니다.
그러나 SIGSEGV
및 SIGBUS
은 걸리지 않습니다.
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
을 그래서 Mac의 상황이 정확히 iOS의 상황과 동일하지 않은 것으로 보인다 대신, 나는 함께 콘솔에 기록 스택 트레이스를 얻을. 해결 방법을 사용하면 충돌 리포터를 실행할 수 있지만 Mono는 관리되지 않는 코드에서 SIGSEGV를 가져올 때 SIGABRT를 발생시키지 않는 것 같습니다.
아이디어가 있으십니까?