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