C语言段错误-core文件
生活随笔
收集整理的這篇文章主要介紹了
C语言段错误-core文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
生成core文件
1. 添加生成core文件的準備
2. 修改配置文件
3. 重新執行一下,使能配置文件
core文件的解析
整體使用示例
1. 寫一個最簡單的段錯誤的文件(給空指針賦值)
2. 編譯執行
3. gdb執行core文件
--end--
生成core文件
1. 添加生成core文件的準備
ulimit -SHc unlimited ulimit -u unlimited2. 修改配置文件
vi /etc/sysctl.conf kernel.core_pattern = /tmp/core-%e-%p# 在文件的最后 添加上面這條命令,這條命令,是默認的保存位置,當前設置的保存位置是 /tmp/目錄下 # 文件名為 core-命令名-pid# 如果不添加這個,產生的core文件,默認 會在執行可執行文件時 所在的目錄下,文件名為 core3. 重新執行一下,使能配置文件
sysctl?-p?/etc/sysctl.confcore文件的解析
gdb <產生當前段錯誤的可執行文件> <產生的core文件>
進入gdb調試工具后
輸入 bt
打印出來的就是 產生?段錯誤(核心已轉儲)的對應位置,及原因
?
整體使用示例
1. 寫一個最簡單的段錯誤的文件(給空指針賦值)
#include <stdio.h>int test() {int *ptr = NULL;*ptr = 0; }int main() {test();return 0; }2. 編譯執行
3. gdb執行core文件
3.1?core文件名稱
-rw------- 1 root root 245760 Sep ?4 12:38 core_a.out_212167
3.2?gdb執行(我把可執行文件拿過來了--這樣看起來比較簡潔)
gdb ./a.out core_a.out_212167
3.3 回車后具體顯示如下
3.4?輸出 bt 回車
?根據 #0 能看出來 產生段錯誤的原因在 test()?函數中,所以可以直接去看一下 具體代碼,分析產生的原因(或者添加打印一些調試信息)
?
--end--
總結
以上是生活随笔為你收集整理的C语言段错误-core文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 金格iweboffice2003,ie文
- 下一篇: 使用iWebOffice实现电子签章