• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運轉,開心的工作
            簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            Linux Core Dump

            Posted on 2010-04-09 10:24 S.l.e!ep.¢% 閱讀(760) 評論(0)  編輯 收藏 引用 所屬分類: Unix

            Linux Core Dump 配置與調試


            1.core文件的生成開關和大小限制
            ---------------------------------
            1)使用ulimit -c命令可查看core文件的生成開關。若結果為0,則表示關閉了此功能,不會生成core文件。
            2) 使用ulimit -cfilesize命令,可以限制core文件的大小(filesize的單位為kbyte)。若ulimit -cunlimited,則表示core文件的大小不受限制。如果生成的信息超過此大小,將會被裁剪,最終生成一個不完整的core文件。在調試此 core文件的時候,gdb會提示錯誤。


            2.core文件的名稱和生成路徑
            ----------------------------
            若系統生成的core文件不帶其它任何擴展名稱,則全部命名為core。新的core文件生成將覆蓋原來的core文件。
            1)/proc/sys/kernel/core_uses_pid可以控制core文件的文件名中是否添加pid作為擴展。文件內容為1,表示添加pid作為擴展名,生成的core文件格式為core.xxxx;為0則表示生成的core文件同一命名為core。
            可通過以下命令修改此文件:
            echo "1" > /proc/sys/kernel/core_uses_pid
            2)proc/sys/kernel/core_pattern可以控制core文件保存位置和文件名格式。
            可通過以下命令修改此文件:
            echo "/corefile/core-%e-%p-%t" > core_pattern,可以將core文件統一生成到/corefile目錄下,產生的文件名為core-命令名-pid-時間戳
            以下是參數列表:
            ??? %p - insert pid into filename 添加pid
            ??? %u - insert current uid into filename 添加當前uid
            ??? %g - insert current gid into filename 添加當前gid
            ??? %s - insert signal that caused the coredump into the filename 添加導致產生core的信號
            ??? %t - insert UNIX time that the coredump occurred into filename 添加core文件生成時的unix時間
            ??? %h - insert hostname where the coredump happened into filename 添加主機名
            ??? %e - insert coredumping executable name into filename 添加命令名

            3.用gdb查看core文件:
            下面我們可以在發生運行時信號引起的錯誤時發生core dump了.
            發生core dump之后, 用gdb進行查看core文件的內容, 以定位文件中引發core dump的行.
            gdb [exec file] [core file]
            如:
            gdb ./test test.core
            在進入gdb后, 用bt命令查看backtrace以檢查發生程序運行到哪里, 來定位core dump的文件->行.


            4.開發板上使用core文件調試
            -----------------------------
            如果開發板的操作系統也是linux,core調試方法依然適用。如果開發板上不支持gdb,可將開發板的環境(頭文件、庫)、可執行文件和core文件拷貝到PC的linux下,運行相關命令即可。
            注意:待調試的可執行文件,在編譯的時候需要加-g,core文件才能正常顯示出錯信息!

            ?

            注意的問題:

            在Linux下要保證程序崩潰時生成Coredump要注意這些問題:

              一、要保證存放Coredump的目錄存在且進程對該目 錄有寫權限。存放Coredump的目錄即進程的當前目錄,一般就是當初發出命令啟動該進程時所在的目錄。但如果是通過腳本啟動,則腳本可能會修改當前目 錄,這時進程真正的當前目錄就會與當初執行腳本所在目錄不同。這時可以查看”/proc/<進程pid>/cwd“符號鏈接的目標來確定進程 真正的當前目錄地址。通過系統服務啟動的進程也可通過這一方法查看。

              二、若程序調用了seteuid()/setegid()改變 了進程的有效用戶或組,則在默認情況下系統不會為這些進程生成Coredump。很多服務程序都會調用seteuid(),如MySQL,不論你用什么用 戶運行mysqld_safe啟動MySQL,mysqld進行的有效用戶始終是msyql用戶。如果你當初是以用戶A運行了某個程序,但在ps里看到的 這個程序的用戶卻是B的話,那么這些進程就是調用了seteuid了。為了能夠讓這些進程生成core dump,需要將/proc/sys/fs /suid_dumpable文件的內容改為1(一般默認是0)。

              三、這個一般都知道,就是要設置足夠大的Core文件大小限制 了。程序崩潰時生成的Core文件大小即為程序運行時占用的內存大小。但程序崩潰時的行為不可按平常時的行為來估計,比如緩沖區溢出等錯誤可能導致堆棧被 破壞,因此經常會出現某個變量的值被修改成亂七八糟的,然后程序用這個大小去申請內存就可能導致程序比平常時多占用很多內存。因此無論程序正常運行時占用 的內存多么少,要保證生成Core文件還是將大小限制設為unlimited為好。


            from?
            ??http://easwy.com/blog/archives/customize-filename-of-core-dump/
            ??http://www.unix-center.net/bbs/viewthread.php?tid=12164

            久久一日本道色综合久久| 婷婷久久综合九色综合98| 欧美国产成人久久精品| 久久这里有精品| 精品综合久久久久久888蜜芽| 伊人久久综合热线大杳蕉下载| 91精品国产91热久久久久福利 | 久久精品国产免费| 久久久久久亚洲精品不卡| 一本久久a久久精品vr综合| 91久久福利国产成人精品| 亚洲伊人久久精品影院| 久久99精品久久久久久不卡| 一本久久a久久精品综合香蕉| 久久久久中文字幕| 久久久无码精品亚洲日韩京东传媒| www.久久99| 亚洲精品乱码久久久久久中文字幕| 四虎国产精品成人免费久久| 国产精品久久网| 日韩精品久久无码人妻中文字幕 | 国产精品成人99久久久久| 一本久久a久久精品vr综合| 亚洲AV伊人久久青青草原| 91久久精品国产成人久久| 久久国产色AV免费观看| 国内精品久久国产| 久久午夜福利电影| 亚洲国产香蕉人人爽成AV片久久| 国产福利电影一区二区三区久久久久成人精品综合 | 天堂无码久久综合东京热| 88久久精品无码一区二区毛片 | 久久免费高清视频| 国内精品久久久久影院一蜜桃| 久久精品国产久精国产果冻传媒| 久久久久国产一区二区| 久久91这里精品国产2020| 国产精品久久久久久久久久免费| 99国内精品久久久久久久| 久久久久97国产精华液好用吗| 久久久无码精品亚洲日韩软件|