2013-06-02 28 views
4

我知道有一种方法可以使所有应用程序崩溃并挂起。这些文件放置在“/用户/用户/库/日志/诊断报告”。所以我可以获取应用的版本,时间和名称。如何以编程方式获取应用程序,守护进程和OSX的崩溃/挂起报告?

但如何获得守护进程/进程崩溃和挂起?我需要知道哪个守护进程崩溃/挂起以及发生的时间。

还有一种方法来获得一些系统(OSX)崩溃与相同的信息?

也会很好,得到一些资源失败/警告:内存不足或磁盘空间不足。

我需要以编程方式获取它。

在Windows上,我们可以使用NotifyChangeEventLog()API来完成此操作。我们可以使用这种方法收集所有这些信息。此外,它会通知发生了什么事。

回答

2

对于守护进程崩溃/挂起报告,请参阅“/ Library/Logs/DiagnosticReports”目录。根据this document,你还可以发现内核恐慌报告(即系统崩溃)。
不知道NotifyChangeEventLog类似的API,但在“内存不足”的情况下会有一个异常,所以你只需要抓住它。有关详细信息,请参见Error Handling Programming Guide。也看看Exception Programming Topics

编辑:有关崩溃报告的信息,看看莱的书的第5章“Mac OS X和iOS的内幕:苹果的核心”

+0

我被命令做OSX崩溃的文件包“命令杀死1“但系统重新启动后在“/ Library/Logs/DiagnosticReports”目录中没有找到任何崩溃报告。 – Sergio

+0

@Sergio,你没有让OSX崩溃,你只是通过发送SIGTERM来终止lauchd进程。这只是关机。 – cody

+0

即使它不是OSX崩溃,操作系统也应该生成崩溃报告。因为这是一个过程。还试图杀死其他守护进程/进程,但没有生成报告。请你提供一些例子如何接收进程杀死接收报告。 – Sergio

1

在10.9活动显示器提供了两种工具,当你有一个坑,但没有崩溃,因此没有崩溃报告:

spindump - 内存转储像崩溃报告和 SYS挖掘产生

相关问题