日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Linux 下的Core Dump

發(fā)布時(shí)間:2025/3/15 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 下的Core Dump 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

相信大家都有過在linux 下變成出現(xiàn)core dump或者Segment fault的情況,有的時(shí)候這種崩潰情況不一定每次都出現(xiàn),復(fù)現(xiàn)有一定的難度,那樣我們可以查看的就只有coredump文件了。

接下來要說的就是如何設(shè)置coredump以及調(diào)試corddump文件。

一般情況下,linux(目前我用的是centos 6.7)默認(rèn)是不開啟coredump的。

[root@localhost test]# ulimit -c(出現(xiàn)為0的話就代表coredump的文件緩存為0,這樣的話就不會(huì)出現(xiàn)coredump文件)
0

我們可以執(zhí)行ulimit -c unlimited來完成(我們可以手動(dòng)設(shè)置為無限制)

[root@localhost test]# ulimit -c unlimited
[root@localhost test]# ulimit -c
unlimited

這樣的話當(dāng)我們的程序運(yùn)行初選崩潰段錯(cuò)誤的時(shí)候就會(huì)在同級(jí)目錄生成一個(gè)core.xxxx的文件。這個(gè)就是我們可以調(diào)試的文件啦。

接下來我們還可以設(shè)置文件的名字屬性,不然的話很多個(gè)進(jìn)程一起調(diào)試的話會(huì)崩潰掉的,傻傻分不清楚啊。

echo "/var/core/core-%e-%p-%t" > /proc/sys/kernel/core_pattern

將會(huì)控制所產(chǎn)生的core文件會(huì)存放到/var/core目錄下,產(chǎn)生的文件名為core-命令名-pid-時(shí)間戳

以下是參數(shù)列表:

????%p - insert pid into filename?添加pid

????%u - insert current uid into filename?添加當(dāng)前uid

????%g - insert current gid into filename?添加當(dāng)前gid

????%s - insert signal that caused the coredump into the filename?添加導(dǎo)致產(chǎn)生core的信號(hào)

????%t - insert UNIX time that the coredump occurred into filename?添加core文件生成時(shí)的unix時(shí)間

????%h - insert hostname where the coredump happened into filename?添加主機(jī)名

????%e - insert coredumping executable name into filename?添加命令名


這樣設(shè)置的話就差不多啦,至少我就這么用了。

最后的話大家編譯的時(shí)候記得加-g調(diào)試信息,關(guān)于怎么調(diào)試coredump的話 ,我相信比較簡單,就是gdb core.xxx,然后把你的可執(zhí)行程序加載進(jìn)來(file xxx), 接下來所有的信息都可以看到啦,具體的GDB調(diào)試的話,我這里就不詳細(xì)說明了。


總結(jié)

以上是生活随笔為你收集整理的Linux 下的Core Dump的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。