• <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>

               C++ 技術(shù)中心

               :: 首頁 :: 聯(lián)系 ::  :: 管理
              160 Posts :: 0 Stories :: 87 Comments :: 0 Trackbacks

            公告

            鄭重聲明:本BLOG所發(fā)表的原創(chuàng)文章,作者保留一切權(quán)利。必須經(jīng)過作者本人同意后方可轉(zhuǎn)載,并注名作者(天空)和出處(CppBlog.com)。作者Email:coder@luckcoder.com

            留言簿(27)

            搜索

            •  

            最新隨筆

            最新評(píng)論

            評(píng)論排行榜

            Linux下的C程序常常會(huì)因?yàn)閮?nèi)存訪問錯(cuò)誤等原因造成segment fault(段錯(cuò)誤),此時(shí)如果系統(tǒng)core dump功能是打開的,那么將會(huì)有內(nèi)存映像轉(zhuǎn)儲(chǔ)到硬盤上來,之后可以用gdb對(duì)core文件進(jìn)行分析,還原系統(tǒng)發(fā)生段錯(cuò)誤時(shí)刻的堆棧情況。這對(duì)于我們發(fā)現(xiàn)程序bug很有幫助。
            使用ulimit -a可以查看系統(tǒng)core文件的大小限制;使用ulimit -c [kbytes]可以設(shè)置系統(tǒng)允許生成的core文件大小,例如
            ulimit -c 0 不產(chǎn)生core文件
            ulimit -c 100 設(shè)置core文件最大為100k
            ulimit -c unlimited 不限制core文件大小
            先看一段會(huì)造成段錯(cuò)誤的程序:
            #include
            int main()
            {
            char *ptr="linuxers.cn";
            *ptr=0;
            }
            編譯運(yùn)行后結(jié)果如下:
            [leconte@localhost test]$ gcc -g -o test a.c
            [leconte@localhost test]$ ./test
            段錯(cuò)誤
            此時(shí)并沒有產(chǎn)生core文件,接下來使用ulimit -c設(shè)置core文件大小為無限制,再執(zhí)行./test程序,結(jié)果如下:
            [leconte@localhost ~]$ ulimit -a
            core file size (blocks, -c) 0
            [leconte@localhost test]$ ulimit -c unlimited
            [leconte@localhost test]$ ulimit -a
            core file size (blocks, -c) unlimited
            [leconte@localhost test]$ ./test
            段錯(cuò)誤 (core dumped)
            [leconte@localhost test]$ ls -al core.*
            -rw------- 1 leconte leconte 139264 01-06 22:31 core.2065
            可見core文件已經(jīng)生成,接下來可以用gdb分析,查看堆棧情況:
            [leconte@localhost test]$ gdb ./test core.2065
            GNU gdb Fedora (6.8-27.el5)
            Copyright (C) 2008 Free Software Foundation, Inc.
            License GPLv3+: GNU GPL version 3 or later
            This is free software: you are free to change and redistribute it.
            There is NO WARRANTY, to the extent permitted by law. Type "show copying"
            and "show warranty" for details.
            This GDB was configured as "i386-redhat-linux-gnu"...
            warning: exec file is newer than core file.
            warning: Can't read pathname for load map: Input/output error.
            Reading symbols from /lib/libc.so.6...done.
            Loaded symbols for /lib/libc.so.6
            Reading symbols from /lib/ld-linux.so.2...done.
            Loaded symbols for /lib/ld-linux.so.2
            Core was generated by `./test'.
            Program terminated with signal 11, Segmentation fault.
            [New process 2065]
            #0 0x0804836f in main () at a.c:6
            6 *ptr=0;
            從上述輸出可以清楚的看到,段錯(cuò)誤出現(xiàn)在a.c的第6行,問題已經(jīng)清晰地定位到了。
            很多系統(tǒng)默認(rèn)的core文件大小都是0,我們可以通過在shell的啟動(dòng)腳本/etc/bashrc或者~/.bashrc等地方來加入 ulimit -c 命令來指定core文件大小,從而確保core文件能夠生成。
            除此之外,還可以在/proc/sys/kernel/core_pattern里設(shè)置core文件的文件名模板,詳情請(qǐng)看core的官方man手冊(cè)。
            posted on 2012-10-22 00:11 C++技術(shù)中心 閱讀(4077) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Linux 編程
            精品久久久久一区二区三区| 亚洲欧洲中文日韩久久AV乱码| 久久久精品人妻一区二区三区四| 久久久久久国产精品无码超碰| 国产精品久久波多野结衣| 欧美精品一区二区久久| 国产精品乱码久久久久久软件| 国内精品久久国产大陆| 亚洲国产精品无码久久九九| 久久99精品久久久久久久不卡| 欧美精品丝袜久久久中文字幕| 国产精品99精品久久免费| 久久99亚洲综合精品首页| 久久超乳爆乳中文字幕| 欧美精品一区二区久久 | 国产成人香蕉久久久久| 亚洲精品无码久久久影院相关影片| 久久99国产精品久久99| 亚洲中文字幕无码久久综合网| 国产精品免费久久久久电影网| 亚洲精品美女久久久久99| 一本综合久久国产二区| 狠狠综合久久综合中文88| 国产91久久精品一区二区| 久久乐国产综合亚洲精品| 亚洲AⅤ优女AV综合久久久| 97超级碰碰碰碰久久久久| 99久久综合狠狠综合久久止| 久久久亚洲欧洲日产国码aⅴ| 久久久久人妻一区二区三区| 亚洲国产成人精品无码久久久久久综合| 日产久久强奸免费的看| 久久精品午夜一区二区福利| 777午夜精品久久av蜜臀| 久久精品桃花综合| 99久久免费国产精品特黄| 性欧美大战久久久久久久| 久久婷婷是五月综合色狠狠| 久久精品中文字幕大胸| 亚洲国产精品无码久久久不卡| 中文字幕日本人妻久久久免费|