在Mac OS X上,如果我將SIGQUIT發送到我的C程序,它會終止,但沒有核心轉儲文件。在Mac上寫入的核心轉儲文件在哪裏?
您是否必須在Mac OS X上手動啓用核心轉儲(如何?),還是將它們寫入其他位置而不是工作目錄?
在Mac OS X上,如果我將SIGQUIT發送到我的C程序,它會終止,但沒有核心轉儲文件。在Mac上寫入的核心轉儲文件在哪裏?
您是否必須在Mac OS X上手動啓用核心轉儲(如何?),還是將它們寫入其他位置而不是工作目錄?
它似乎是默認禁止的。運行
$ ulimit -c unlimited
能令核心轉儲,它會被放在/核心/作爲core.PID
默認情況下,在Mac OSX上的特定目錄是隱藏的。您可能希望在終端中啓用此功能,然後核心轉儲應該在目錄/內核中可見。
默認寫com.apple.finder AppleShowAllFiles TRUE
謝謝。我正在瀏覽終端(ls -lah),但無論如何,這是一個有用的提示。 – xyz
上面的答案,
的ulimit -c無限
作品 - 但一定要運行在同一個終端上運行核心轉儲程序。您需要先運行ulimit命令。
在macOS上,您的故障轉儲將由Crash Reporter自動處理。
您可以回溯通過執行Console和去用戶診斷文件的報告部分(在「診斷和使用信息」組),或者你可以在~/Library/Logs/DiagnosticReports
找到它們。
您還可以通過監視system.log
文件(例如,文件)來檢查生成轉儲的位置。
tail -f /var/log/system.log | grep crash
實際核心轉儲文件,你可以在/cores
找到。
參見:
不要抱怨你可以重新修飾它 - 事實上你的標題甚至沒有動詞。我很樂意提出你的問題,因爲我對這個問題很感興趣。我仍然認爲這個問題並沒有遵循SO所要求的質量。 我甚至有關於coredump的相關問題http://stackoverflow.com/questions/2207233/how-to-enable-full-coredumps-on-os-x 順便說一句,coredumps要位於'/核心「,但使用終端和root帳戶查看此文件夾。 – sorin
@Sorin建議不是問題,小氣。 – xyz
@Sorin FYI'are'是(連接)動詞。不是說這裏真的很重要,但是如果我們批評語法,就讓它正確吧;)http://examples.yourdictionary.com/reference/examples/examples-of-linking-verbs.html –