回覆列表
  • 1 # 使用者6887075063750

    在Linux上只要開啟core dump檔案開關,當程式crash時系統生成相應的core檔案。下面是簡單的一些步驟:

    1.檢視當前是否已經打開了此開關 透過命令:ulimit -c 如果輸出為 0 ,則代表沒有開啟。如果為unlimited則已經打開了,就沒必要在做開啟。

    2.透過命令開啟 ulimit -c unlimited .然後透過步驟1,可以監測是否開啟成功。

    3.如果你要取消,很簡單:ulimit -c 0 就可以了透過上面的命令修改後,一般都只是對當前會話起作用,當你下次重新登入後,還是要重新輸入上面的命令,所以很麻煩。我們可以把透過修改 /etc/profile檔案 來使系統每次自動開啟。步驟如下:1.首先開啟/etc/profile檔案一般都可以在檔案中找到 這句語句:ulimit -S -c 0 > /dev/null 2>&1.ok,根據上面的例子,我們只要把那個0 改為 unlimited 就ok了。然後儲存退出。2.透過source /etc/profile 使當期設定生效。3.透過ulimit -c 檢視下是否已經開啟。其實不光這個命令可以加入到/etc/profile檔案中,一些其他我們需要每次登入都生效的都可以加入到此檔案中,因為登入時linux都會載入此檔案。比如一些環境變數的設定。還有一種方法可以透過修改/etc/security/limits.conf檔案來設定,這個方法沒有試過,也是網上看到。不過上面兩種就可以了! 最後說一下生成core dump檔案的位置,預設位置與可執行程式在同一目錄下,檔名是core.***,其中***是一個數字。core dump檔名的模式儲存在/proc/sys/kernel/core_pattern中,預設值是core。透過以下命令可以更改core dump檔案的位置(如希望生成到/tmp/cores目錄下)echo “/tmp/cores/core” > /proc/sys/kernel/core_pattern 設定完以後我們可以做個測試,寫個程式,產生一個異常。然後看到當前目錄會有個core*的檔案。

  • 中秋節和大豐收的關聯?
  • 茄子肉餡餅的家常做法?