linux檢視呼叫堆疊的資訊,只是需要更改linux設定,使程式崩潰時候產生core檔案。然後gdb除錯即可。
1產生core檔案方法
產生coredump的條件,首先需要確認當前會話的ulimit –c,若為0,則不會產生對應的coredump,需要進行修改和設定。
ulimit -c unlimited (可以產生coredump且不受大小限制),這種設定僅對當前生效,如果想永久生效
那麼需要在/etc/profile中加入以下一行,這將允許生成coredump檔案
ulimit-c unlimited
2 更改core dump生成路徑
因為core dump缺省會生成在程式的工作目錄,但是有些程式存在切換目錄的情況,導致core dump生成的路徑沒有規律,
所以最好是自己建立乙個資料夾,存放生成的core檔案。
我建立乙個 /data/coredump 資料夾,在根目錄data裡的coredump資料夾。
呼叫如下命令
echo /data/coredump/core.%e.%p> /proc/sys/kernel/core_pattern
將更改core檔案生成路徑,自動放在這個/data/coredump資料夾裡。
%e表示程式名, %p表示程序id
linux下 c程式崩潰時產生core檔案的設定
c程式執行崩潰時,如果能夠自動產生core檔案,會對問題的分析和定位有一定的幫助,但是需要一定的設定才可以開啟該選項 如果程式本身有問題,在崩潰時,可能會產生core檔案 注意 不是一定會產生的 產生的core檔案預設是在執行檔案的目錄下,但也可以指定 修改 etc security limits....
Linux環境崩潰生成core檔案以及除錯
步驟很詳細具體,很有幫助,所以 windows環境崩潰問題可根據vs除錯工具檢視,linux同樣可以檢視呼叫堆疊的資訊,只是 需要更改linux設定,使程式崩潰時候產生core檔案。然後gdb除錯即可。1產生core檔案方法 產生coredump的條件,首先需要確認當前會話的ulimit c,若為0...
使用core檔案除錯程式
1 首先編譯程式,命令 gcc g text.c o text 這裡加上 g才能正常顯示出錯資訊。2 然後執行程式,命令 text 如果出錯會提示有段錯誤。3 一般出現錯誤,會在當前目錄產生乙個core.的檔案,如果沒有,你需要執行ulimit c檢視預設的core檔案大小,如果是0,則應該執行命令...