簡體   English   中英

如何在OSX上模擬進程/守護程序崩潰?

[英]How to simulate process/daemon crash on OSX?

如何在OSXinvoke / simulate process / daemon崩潰,以及接收崩潰報告的結果

/圖書館/日志/ DiagnosticRepors

(例如opendirectoryd_2013-06-11-125032_macmini61.crash )?

我嘗試使用Activity Monitor強制退出守護進程,但沒有收到任何報告。 我需要崩潰一些系統或第三方進程(不是我自己開發的)。

您可以通過發送“分段違規”信號強制幾乎任何進程崩潰。

示例:查找“opendirectoryd”的進程ID:

$ ps -ef | grep opendirectoryd
    0    15     1   0  9:14am ??         0:01.11 /usr/libexec/opendirectoryd
          ^-- process id

向進程發送信號:

$ sudo kill -SEGV 15

這將終止進程並導致編寫診斷報告,這可以在“system.log”中進行驗證:

Oct 31 09:17:17 hostname com.apple.launchd[1] (com.apple.opendirectoryd[15]): Job appears to have crashed: Segmentation fault: 11
Oct 31 09:17:20 hostname ReportCrash[420]: Saved crash report for opendirectoryd[15] version ??? (???) to /Library/Logs/DiagnosticReports/opendirectoryd_2013-10-31-091720_localhost.crash

但請注意,故意崩潰系統服務可能會導致嚴重問題(系統不穩定,數據丟失......),因此您應該確切知道自己在做什么。

除非你能找到合法的bug並讓它以這種方式崩潰,否則你不能以一種導致診斷報告的方式外部崩潰一個守護進程。 所有退出強制功能都免於診斷報告,因為它們是外部問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM