Cocoa 处理OS X信号:没有可用的线程?

Cocoa 处理OS X信号:没有可用的线程?,cocoa,Cocoa,我已经实现了自己的异常处理程序,它实现了方法exceptionHandler:shouldLogException:mask和exceptionHandler:shouldHandleException:mask。捕捉信号工作正常,但除此之外,我想打开并阅读最新的OSX崩溃报告文件的内容 我知道它们存储在~/Library/Logs/DiagnosticReports文件夹中,我能够找到并阅读最新的。 但是:OS X似乎在is终止应用程序并显示应用程序已崩溃对话框后编写崩溃报告 我尝试了几种线程

我已经实现了自己的异常处理程序,它实现了方法exceptionHandler:shouldLogException:mask和exceptionHandler:shouldHandleException:mask。捕捉信号工作正常,但除此之外,我想打开并阅读最新的OSX崩溃报告文件的内容

我知道它们存储在~/Library/Logs/DiagnosticReports文件夹中,我能够找到并阅读最新的。 但是:OS X似乎在is终止应用程序并显示应用程序已崩溃对话框后编写崩溃报告

我尝试了几种线程方式来等待当前的崩溃报告:

使用NSFilePresenter/NSFileCoordinator监视文件夹 使用GCD实现while循环以等待 使用定期检查新报告的NSTimer
这一切似乎都不管用。有人知道我可以做些什么来等待当前的碰撞报告文件吗?将主线程置于休眠状态无助于延迟报告的创建。

我想您会发现崩溃报告正是如此-因此它实际上不存在,直到您的进程因崩溃而终止。如果您正在捕获信号,那么您的进程尚未崩溃,因此您在当前进程中所做的任何操作都无法看到它-即,进程无法读取自己的讣告!寻找另一种方式来获得你想要的信息。嗯。注1有效,因为在用户代码未能处理信号之后,在流程终止之前,报告可以由库代码编写。听起来合理。。。谢谢,CRD