linux 下如何打開core dump文件開關
dump文件可以在程序crash時,方便我們查看程序crash的地方和上下文信息。在window下,要能生成dump文件,需要自己編寫相應的代碼。不過現在網上可以找到相應的代碼,只要把它下載後然後加到自己的工程中去,就可以了!在linux下面就簡單的許多。只要打開相應的開關,linux會自動在程序crash時生成相應的core文件。這個文件和window下的dump文件類似。下面是簡單的壹些步驟:1.查看當前是否已經打開了此開關通過命令:ulimit -c 如果輸出為 0,則代表沒有打開。如果為unlimited則已經打開了,就沒必要在做打開。2.通過命令打開ulimit -c unlimited .然後通過步驟1,可以監測是否打開成功。3.如果妳要取消,很簡單:ulimit -c 0 就可以了通過上面的命令修改後,壹般都只是對當前會話起作用,當妳下次重新登錄後,還是要重新輸入上面的命令,所以很麻煩。我們可以把通過修改/etc/profile文件 來使系統每次自動打開。步驟如下:1.首先打開/etc/profile文件壹般都可以在文件中找到 這句語句:ulimit -S -c 0 /dev/null2&1.ok,根據上面的例子,我們只要把那個0 改為unlimited 就ok了。然後保存退出。2.通過source /etc/profile 使當期設置生效。3.通過ulimit -c 查看下是否已經打開。其實不光這個命令可以加入到/etc/profile文件中,壹些其他我們需要每次登錄都生效的都可以加入到此文件中,因為登錄時linux都會加載此文件。比如壹些環境變量的設置。還有壹種方法可以通過修改/etc/security/limits.conf文件來設置,這個方法沒有試過,也是網上看到。不過上面兩種就可以了!最後說壹下生成coredump文件的位置,默認位置與可執行程序在同壹目錄下,文件名是core.***,其中***是壹個數字。coredump文件名的模式保存在/proc/sys/kernel/core_pattern中,缺省值是core。通過以下命令可以更改coredump文件的位置(如希望生成到/tmp/cores目錄下)echo “/tmp/cores/core”/proc/sys/kernel/core_pattern設置完以後我們可以做個測試,寫個程序,產生壹個異常。然後看到當前目錄會有個core*的文件。然後我們可以gdb core。* 程序 進行調試。