5

我知道有一种方法可以让所有应用程序崩溃和挂起。这些文件放在“/Users/user/Library/Logs/DiagnosticReports”中。所以我可以获得应用程序的版本、时间和名称。

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

还有一种方法可以使用相同的信息使某些系统(OSX)崩溃吗?

获得一些资源故障/警告也很棒:内存不足或磁盘空间不足。

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

在 Windows 上,我们可以使用 NotifyChangeEventLog () API 来做到这一点。我们可以使用这种方法收集所有这些信息。如果发生了什么事,它也会通知。

4

2 回答 2

3

有关守护程序崩溃/挂起报告,请参见“/Library/Logs/DiagnosticReports”目录。根据此文档,您还可以找到内核恐慌报告(即系统崩溃)。
不知道类似 NotifyChangeEventLog 的 API,但是在“内存不足”之类的情况下会出现异常,因此您只需要捕获它即可。有关详细信息,请参阅错误处理编程指南。另请查看异常编程主题

编辑:有关 Crash Reporter 的信息,请查看 Levin 的书“Mac OS X 和 iOS 内部:到 Apple 的核心”的第 5 章

于 2013-06-03T06:06:42.683 回答
3

在 10.9 中,当您遇到挂起但没有崩溃因此没有崩溃报告时,活动监视器会为您提供两个工具:

spindump - 内存转储,如崩溃报告和 sys digs,它会生成一堆文件

于 2013-11-21T12:00:47.540 回答