在OS X上的mono中记录运行时崩溃

在OS X上的mono中记录运行时崩溃,mono,xamarin,monomac,xamarin.mac,plcrashreporter,Mono,Xamarin,Monomac,Xamarin.mac,Plcrashreporter,我想知道我的应用程序“在野外”是否会崩溃。使用AppDomain.CurrentDomain.UnhandledException,我们可以非常轻松地捕获托管异常 偶尔我们会在非托管代码中遇到崩溃(通过我们自己与本机库的交互,或者有时由于误用monomac或monomac本身的问题)。我也想知道这些事情什么时候发生 我已绑定框架并将其添加到我的应用程序中。我已经阅读了有关在Xamarin.iOS应用程序中使用crash reporters的文章,并实现了 到目前为止,一切顺利-我可以使用cras

我想知道我的应用程序“在野外”是否会崩溃。使用AppDomain.CurrentDomain.UnhandledException,我们可以非常轻松地捕获托管异常

偶尔我们会在非托管代码中遇到崩溃(通过我们自己与本机库的交互,或者有时由于误用monomac或monomac本身的问题)。我也想知道这些事情什么时候发生

我已绑定框架并将其添加到我的应用程序中。我已经阅读了有关在
Xamarin.iOS
应用程序中使用crash reporters的文章,并实现了

到目前为止,一切顺利-我可以使用crash reporter,我的应用程序运行良好。然而,我似乎对信号实际被捕捉到的方面有所限制

例如,
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上的情况并不完全相同。该解决方案允许运行crash reporter,但Mono从非托管代码中获得SIGSEGV时似乎并没有发出SIGABRT


有什么想法吗?

删除和重新分配
SIGSEGV
SIGBUS
处理程序的解决方法仅在应用程序运行时需要附加调试器

因为我们只对实时错误感兴趣,所以我们可以用
#IF DEBUG
围绕代码来启用
PLCrashReporter