• <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 閱讀(502) 評論(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文件保存目錄就無效了。

            91久久精品国产91性色也| 午夜天堂av天堂久久久| 999久久久国产精品| 国产精品99久久久久久www| 亚洲国产天堂久久久久久| 亚洲αv久久久噜噜噜噜噜| 国产国产成人精品久久| 麻豆久久| 久久99国产综合精品女同| 久久99国产精品久久久| 欧美久久久久久| 久久精品国产99国产精品澳门 | 久久99这里只有精品国产| 亚洲狠狠婷婷综合久久蜜芽 | 99蜜桃臀久久久欧美精品网站| 久久亚洲AV成人无码电影| 人妻少妇精品久久| 久久国产精品77777| 精品久久久久成人码免费动漫| 97久久精品午夜一区二区| 久久伊人五月丁香狠狠色| 91久久成人免费| 99久久中文字幕| 久久精品国产亚洲av麻豆小说 | 亚洲国产日韩欧美久久| 91久久国产视频| 精品综合久久久久久888蜜芽| 亚洲美日韩Av中文字幕无码久久久妻妇 | 人妻无码中文久久久久专区| 久久精品视屏| 久久精品国产99国产精品| 日韩一区二区久久久久久| 婷婷久久香蕉五月综合加勒比| 色综合久久天天综线观看| 精品免费久久久久国产一区| 丁香五月网久久综合| 国产精品对白刺激久久久| 99久久婷婷免费国产综合精品| 国产激情久久久久久熟女老人| 97香蕉久久夜色精品国产 | 久久久久久毛片免费看|