国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Linux > 正文

linux中core dump開啟使用教程

2024-08-27 23:59:34
字體:
供稿:網(wǎng)友

一、什么是coredump

我們經(jīng)常聽到大家說到程序core掉了,需要定位解決,這里說的大部分是指對(duì)應(yīng)程序由于各種異常或者bug導(dǎo)致在運(yùn)行過程中異常退出或者中止,并且在滿足一定條件下(這里為什么說需要滿足一定的條件呢?下面會(huì)分析)會(huì)產(chǎn)生一個(gè)叫做core的文件。

通常情況下,core文件會(huì)包含了程序運(yùn)行時(shí)的內(nèi)存,寄存器狀態(tài),堆棧指針,內(nèi)存管理信息還有各種函數(shù)調(diào)用堆棧信息等,我們可以理解為是程序工作當(dāng)前狀態(tài)存儲(chǔ)生成第一個(gè)文件,許多的程序出錯(cuò)的時(shí)候都會(huì)產(chǎn)生一個(gè)core文件,通過工具分析這個(gè)文件,我們可以定位到程序異常退出的時(shí)候?qū)?yīng)的堆棧調(diào)用等信息,找出問題所在并進(jìn)行及時(shí)解決。

二、cored dump開啟

執(zhí)行ulimit –c 檢查是否開啟core dump,若結(jié)果為0,則認(rèn)為沒有啟用core dump文件的生成,需要打開core dump 。開啟core dump的方法有三種,一種是臨時(shí)啟用,兩種是永久啟用。

臨時(shí)啟用,方法1,ulimit命令法,執(zhí)行如下命令:

ulimit -c 1024 或 ulimit -c unlimited

上例中,前一種是限制core dump的文件大小不超過1024K,后一種是不限制core dump文件的大小,現(xiàn)在的程序占用內(nèi)存都比較兇猛,以前寫C程序需要計(jì)算內(nèi)存的時(shí)代已經(jīng)過去了。如果不加限制,可能一個(gè)core文件,幾個(gè)G就出去了。所以最好還是限制該在小。

永久啟用的兩個(gè)方法:

方法二,profile文件修改法:

打開/etc/profile文件,增加如下以下并生使其生效:

ulimit -S -c unlimited > /dev/null 2>&1

注:如果該文件有ulimit -S -c 0 > /dev/null 2>&1 一行,需要先將該行注釋掉,設(shè)置完成后通過執(zhí)行 source /etc/profile 生效.

方法三,修改/etc/security/limits.conf文件,找到【* soft core 0】行,將其修改為如下內(nèi)容:

user soft core 1024 或 @group soft core 1024

這個(gè)方法可以針對(duì)指定用戶或用戶組打開core dump,如設(shè)置成【* soft core 10485760】,即core dump文件大小是10G.

需要注意的是此處的設(shè)置和方法二中的設(shè)置是沖突的,在其中一處設(shè)置即可,此處建議用第三種方法設(shè)置,因?yàn)槠淇梢葬槍?duì)不同的用戶和組進(jìn)行設(shè)置,更加靈活.

注:上面三種方法設(shè)置都不需重啟機(jī)器,需要做的是退出終端并重新連接,重啟需要core dump的程序即可。

三、修改core dump文件格式

定制core的路徑,名稱格式,通過修改下面兩個(gè)配置:

  1. echo 1 >/proc/sys/kernel/core_uses_pid 
  2. echo '/corefiles/core-%e-%p-%t' > /proc/sys/kernel/core_pattern 

這里先說下后一參數(shù)的配置說明:

  1. %% 單個(gè)%字符 
  2. %p 所dump進(jìn)程的進(jìn)程ID 
  3. %u 所dump進(jìn)程的實(shí)際用戶ID 
  4. %g 所dump進(jìn)程的實(shí)際組ID 
  5. %s 導(dǎo)致本次core dump的信號(hào) 
  6. %t core dump的時(shí)間 (由1970年1月1日計(jì)起的秒數(shù)) 
  7. %h 主機(jī)名 
  8. %e 程序文件名 

再說下第一句配置,/proc/sys/kernel/core_uses_pid 如果這個(gè)文件的內(nèi)容被配置成1,那么即使core_pattern中沒有設(shè)置%p,最后生成的core dump文件名仍會(huì)加上進(jìn)程ID.

需要注意的是,由于/proc下的配置是即時(shí)生效的,reboot后,之前的配置就會(huì)失效,所以可以增加如下配置到/etc/sysctl.conf文件中,如下:

  1. kernel.core_uses_pid = 1  //Vevb.com 
  2. kernel.core_pattern = /corefiles/core-%e-%p-%t 

保存后,執(zhí)行sysctl -p生效.

注:需要注意的是,上面配置的corefiles該目錄必須有寫權(quán)限,否則無法生成core dump文件,可以通過下面的命令創(chuàng)建:

  1. mkdir /corefiles 
  2. chmod 777 /corefiles

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 西青区| 东港市| 万宁市| 盖州市| 黄浦区| 深州市| 鹿邑县| 麦盖提县| 陆河县| 武义县| 宾阳县| 荃湾区| 神池县| 浦县| 三门峡市| 渝中区| 河池市| 乐清市| 西安市| 綦江县| 综艺| 三亚市| 丹阳市| 会宁县| 增城市| 平凉市| 浮梁县| 海盐县| 郑州市| 兴海县| 长春市| 友谊县| 郎溪县| 呼伦贝尔市| 永年县| 芒康县| 朝阳区| 新兴县| 拜泉县| 长汀县| 长葛市|