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

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            在AIX中文件名為core的文件有用嗎?

            Posted on 2008-10-29 15:02 Prayer 閱讀(507) 評論(0)  編輯 收藏 引用 所屬分類: LINUX/UNIX/AIX
            Q:在AIX系統中,經常會看到文件名為core的文件,這個文件有用處嗎?如果有用,怎么使用?

              A:當進程在異常終止運行時,系統會把該進程對應的地址空間中的數據寫到core文件中(這個過程被稱為dump),以便程序員對其進行分析,找出進程異常終止的原因。缺省情況下,異常終止的進程在啟動它的當前目錄下產生core文件。

              在AIX 4.3.3中,所有的core文件的文件名都是core,如果不只一個程序產生dump或者相同的程序dump多次,它們都會產生相同文件名的core文件,那么就會丟失比較早的core文件。從AIX 5.1開始,改變了core文件的命名方法,使得每一個core文件擁有惟一的文件名,從而避免了新的core文件覆蓋舊的core文件,這個特色更加有助于程序員調試和跟蹤運行失敗的程序。

              默認情況下,一個core文件的文件名是core。要使用AIX 5L中core文件命名的新方法,就要把CORE_NAMING環境變量的值設置為yes。

              在AIX 5L中,把當前用戶的CORE_NAMING環境變量的值設置成yes之后,隨后啟動的進程產生的core文件名才能惟一的。新的core文件名的格式是core.pid.ddhhmmss。其中pid是進程號,dd是當前月份中的日子,hh表示小時,mm表示分,ss表示秒。

              對于一個占用內存資源很大的進程產生的core文件也非常大,因此如果經常有進程產生core文件,而core文件名都不相同,那么產生的core就會占用非常多的文件系統空間,所以系統管理員要定期為程序員收集這些core文件,并刪除這些文件。在AIX 5.3中,用戶可以設置產生壓縮的core文件和指定一個目錄來保存core文件,用lscore命令查看當前用戶或指定用戶的core設置,例如:

              $ lscore compression: off path specification: off corefile location: not set naming specification: off $

              要查看peter用戶的core設置,命令是lscore peter。查看整個系統的core設置,命令是lscore –d 用chcore命令修改當前用戶的core設置,例如: $ chcore –c on –p on –l /tmp/coredir –n on

              上面的命令修改當前用戶的core設置,-c on參數的作用是打開壓縮core文件功能,用戶可以用uncompress命令來解壓縮,-p on參數的作用是打開指定的core文件位置,保存core文件的目錄是由-l參數指定為/tmp/coredir目錄,-n on參數的作用相當于把CORE_NAMING環境變量值設置為yes。其中on表示打開這些功能,將on換成off表示關閉這些功能。

              如果要修改指定用戶的core設置,在上面的命令最后加上用戶名,要修改整個系統的core設置,在上面的命令最后加上-d即可。其實每個用戶的core設置保存在/etc/security/user文件中,chcore和lscore命令存取user文件的內容,讀者可以參考user文件的內容用vi來設置某個用戶的core設置。

             每一個core dump會產生一個新的錯誤日志記錄。用errpt命令查看這樣的錯誤日志記錄可以幫助程序員識別導致core dump的應用程序。程序員可以用dbx命令來調試產生core文件的程序,要用dbx命令調試有問題的程序時,必須保證core文件和產生core文件的程序都在當前目錄下,調試程序的最簡單的命令格式如下:

              $ dbx ProgramFile CoreFile

              ProgramFile是程序文件名,CoreFile是core文件名。在dbx中用where子命令可以查看程序在異常終止時正在執行的函數名,也就是說能夠查看程序在執行哪個函數時而異常終止的,然后在源程序中找這個函數,再進一步定位異常語句。dbx命令的詳細用法讀者可以參考dbx命令的手冊。

              當一個進程正在運行時,如果程序員想獲得這個進程所占內存空間中的內容,可以用gencore命令把這個進程對應的地址空間中的數據寫到一個指定的文件中,gencore命令并不會終止進程的運行。例如要把進程號為3682983的進程的內存鏡像寫到文件名為/tmp/core. 3682983的文件中,命令如下:

              $ gencore 3682983 /tmp/core.3682983

              如果gencore命令指定的core文件名帶有路徑,那么用chcore命令所修改的core設置中core文件名和core文件保存目錄就無效了。

            亚洲精品国产成人99久久| 久久午夜福利电影| 久久99精品久久只有精品| 久久99精品久久久大学生| 国产精品免费福利久久| 国内精品久久久久久久亚洲 | 国产精品美女久久福利网站| 国产精品一区二区久久精品涩爱 | 精品综合久久久久久88小说| 国产精品久久新婚兰兰| 欧美777精品久久久久网| 2019久久久高清456| 国产L精品国产亚洲区久久| 国产成人精品综合久久久| 激情综合色综合久久综合| 久久精品天天中文字幕人妻| 欧美国产成人久久精品| 国产精品久久国产精品99盘| 亚洲欧美成人综合久久久| 成人午夜精品久久久久久久小说 | 精品久久久无码中文字幕天天| 久久久久久曰本AV免费免费| 久久黄视频| 国产综合成人久久大片91| 久久天堂电影网| 久久99精品国产自在现线小黄鸭| 亚洲va久久久久| 久久夜色精品国产亚洲| 欧美久久久久久午夜精品| 中文字幕亚洲综合久久2| 精品久久无码中文字幕| 亚洲人成网亚洲欧洲无码久久| 伊人热热久久原色播放www| 久久久久国产成人精品亚洲午夜| 日韩亚洲欧美久久久www综合网| 国产精品久久久天天影视| 久久久亚洲欧洲日产国码aⅴ| 久久久久久久97| 国产一区二区三区久久| 99久久这里只有精品| 一本大道加勒比久久综合|