• <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>
            posts - 297,  comments - 15,  trackbacks - 0

            在程序不尋常退出時,內核會在當前工作目錄下生成一個core文件(是一個內存映像,同時加上調試信息)。使用gdb來查看core文件,可以指示出導致程序出錯的代碼所在文件和行數。


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


            2.core文件的名稱和生成路徑
            ----------------------------
            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.core文件的查看
            -----------------
             core文件需要使用gdb來查看。
             gdb ./a.out
             core-file core.xxxx
             使用bt命令即可看到程序出錯的地方。 
            以下兩種命令方式具有相同的效果,但是在有些環境下不生效,所以推薦使用上面的命令。 
            1)gdb -core=core.xxxx
            file ./a.out
            bt 
            2)gdb -c core.xxxx
            file ./a.out
            bt


            4.開發板上使用core文件調試
            -----------------------------
            如果開發板的操作系統也是linux,core調試方法依然適用。如果開發板上不支持gdb,可將開發板的環境(依賴庫)、可執行文件和core文件拷貝到PC的linux下
            在PC上調試開 發板上產生的core文件,需要使用交叉編譯器自帶的gdb,并且需要在gdb中指定solib-absolute-prefix和solib- search-path兩個變量以保證gdb能夠找到可執行程序的依賴庫路徑。有一種建立配置文件的方法,不需要每次啟動gdb都配置以上變量,即:在待 運行gdb的路徑下建立.gdbinit。
            配置文件內容:
            set solib-absolute-prefix YOUR_CROSS_COMPILE_PATH
            set solib-search-path YOUR_CROSS_COMPILE_PATH
            set solib-search-path YOUR_DEVELOPER_TOOLS_LIB_PATH
            handle SIG32 nostop noprint pass


            注意:待調試的可執行文件,在編譯的時候需要加-g,core文件才能正常顯示出錯信息!有時候core信息很大,超出了開發板的空間限制,生成的core信息會殘缺不全而無法使用,可以通過掛載到PC的方式來規避這一點。


            轉自:

            http://blog.chinaunix.net/u2/67780/showart_2070065.html

            posted on 2009-11-19 17:33 chatler 閱讀(280) 評論(0)  編輯 收藏 引用 所屬分類: Linux_Coding
            <2009年11月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            常用鏈接

            留言簿(10)

            隨筆分類(307)

            隨筆檔案(297)

            algorithm

            Books_Free_Online

            C++

            database

            Linux

            Linux shell

            linux socket

            misce

            • cloudward
            • 感覺這個博客還是不錯,雖然做的東西和我不大相關,覺得看看還是有好處的

            network

            OSS

            • Google Android
            • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
            • os161 file list

            overall

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            国产精品九九久久免费视频| 久久午夜夜伦鲁鲁片免费无码影视 | 亚洲精品NV久久久久久久久久| 久久天天躁狠狠躁夜夜不卡| 伊人久久精品无码二区麻豆| 狠狠色丁香久久综合婷婷| 久久精品国产欧美日韩| 久久精品久久久久观看99水蜜桃| 99精品久久精品| 久久99精品久久久大学生| 久久亚洲精品中文字幕三区| 久久午夜福利无码1000合集| 亚洲国产精品人久久| 国产偷久久久精品专区| 久久国产精品二国产精品| 亚洲AV日韩AV永久无码久久| 久久九色综合九色99伊人| 久久精品毛片免费观看| 久久天天躁狠狠躁夜夜不卡| 久久夜色精品国产亚洲| 精品乱码久久久久久久| 熟妇人妻久久中文字幕| 色综合久久夜色精品国产| 国内精品久久久久久久影视麻豆 | 久久精品成人一区二区三区| 久久久精品人妻一区二区三区蜜桃| 欧美久久综合九色综合| 99久久免费只有精品国产| 99久久精品国内| 久久99精品久久久久久久不卡| 亚洲精品国产第一综合99久久| 国产精品免费看久久久| 久久人人爽人人爽人人av东京热| 四虎影视久久久免费观看| 久久精品国产亚洲精品| 久久久久久久综合日本| 99久久综合狠狠综合久久| 精品久久久久国产免费| 久久久久无码专区亚洲av| 久久亚洲电影| 午夜精品久久久久久影视777|