



免費預覽已結束,剩余1頁可下載查看
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
HPUX下core文件總結當系統(tǒng)中一些進程由于收到一些信號而非正常結束時,系統(tǒng)便建立一個core文件(是一個內存映像,同時加上調試信息),記錄進程當時的一些信息,包括進程狀態(tài)、數(shù)據(jù)以及硬件寄存器的值等。1. 刪除core文件在這些core文件沒有用的時候,可以考慮刪除它們。core文件的刪除,應該首先確認要刪除的core文件是否還有使用價值,可通過file core命令查看是由哪些進程產生的,在確認對調試程序沒用的時候再進行刪除(find / -name core -exec rm ;),也可以通過下面的命令來刪除10天內未存取過的core文件(find / -name core atime +10 exec rm f ;)# file /root/core/root/core: core file from opcuiadm2. 查看core文件的內容進去后打 where, 就可以 show 出你是在程序哪一行當?shù)舻? 還有在當?shù)魰r在哪個 function 里, 這個 function是被哪個 function 所 call 的, 而這個 function 又是被哪個function所 call 的. 一直到 main()# gdb -c /root/core.Core was generated by opcuiadm.Program terminated with signal 11, Segmentation fault.#0 0xc020bbe8 in ()(gdb) where#0 0xc020bbe8 in ()warning: Attempting to unwind past bad PC 0xc020bbe8 #1 0xc0059228 in ()#2 0xc0059228 in ()#3 0xc0059228 in ()Cannot access memory at address 0x360000(gdb) q3.core文件的生成開關和大小限制使用ulimit -c命令可查看core文件的生成開關。若結果為0,則表示關閉了此功能,不會生成core文件。使用ulimit -c filesize命令,可以限制core文件的大?。╢ilesize的單位為kbyte)-c指定修改core文件的大小。若ulimit -c unlimited,則表示core文件的大小不受限制。如果生成的信息超過此大小,將會被裁剪,最終生成一個不完整的core文件。再gdb調試的時候,會提示出錯。# ulimit -c4194303#ulimit -c 1000#ulimit -c1000#ulimit -c unlimitedUnlimited4.core設置.1 后臺Core文件獲取方法 Solaris環(huán)境Core文件收集方法: 1) 修改Coreadm配置參數(shù)。當某個進程發(fā)生coredump后,Solaris操作系統(tǒng)自動將core文件轉儲到指定路徑。 請按如下范例步驟打開core文件轉儲開關: coreadm -d global 刪除# coreadm -e core.%f.%pusage:coreadm -g pattern -I patterncoreadm -e global | process | global-setid | proc-setid coreadm -d global | process | global-setid | proc-setid coreadm -p pattern -P enable | disable pid . coreadm -p pattern -P enable|disable -E command argumentsrootBMS105 # coreadm -e global rootBMS105 # coreadm -e global-setid rootBMS105 # coreadm -e proc-setid rootBMS105 # coreadm -e process rootBMS105 # coreadm -e log rootBMS105 # coreadm -g /opt/corefiles/core.%f.%p 設置完成后,查看coreadm狀態(tài),當與以下內容一致時,表示配置成功 rootBMS105 # coreadm 全局(主存儲器)信息轉儲文件模式: /opt/corefiles/core.%f.%p 初始(主存儲器)信息轉儲文件模式: core 全局(主存儲器)信息轉儲: enabled 每進程的(主存儲器)信息轉儲: enabled 全局 setid (主存儲器)信息轉儲: enabled 每進程的 setid (主存儲器)信息轉儲: enabled 全局(主存儲器)信息轉儲記錄: enabled 2) 在/opt/corefiles中尋找相應的core文件,使用pstack和mdb命令將其轉儲為txt文件(一般core文件比較大,不易附在問題單中,因此需要將其轉儲為txt文檔) 注:pstack與mdb的區(qū)別: pstack 能看到全部堆棧信息; 定位多線程導致的死鎖或異常很有用 mdb看到的是棧頂信息; 普通的錯誤用mdb來得更直接; 例一:使用pstack將UA5000G后臺的core文件轉儲為txt文檔 rootN2000Server106 # pwd /opt/corefiles rootN2000Server106 # pstack core.Ua5000GDm.2144.1159153487 Ua5000GDm1.txt rootN2000Server106 # ls Ua5000GDm1.txt core.Ua5000GDm.2144.1159153487 例二:使用mdb將UA5000G后臺的core文件轉儲為txt文檔 rootN2000Server106 # pwd /opt/corefiles rootN2000Server106 # mdb core.Ua5000GDm.2144.1159153487 Ua5000GDm2.txt rootN2000Server106 # ls Ua5000GDm1.txt Ua5000GDm2.txt core.Ua5000GDm.2144.1159153487 對于后臺coredump問題,需要分別在問題單中附上pstack和mdb轉儲的txt文件,以便開發(fā)定位。 何謂core文件 當一個程序崩潰時,在進程當前工作目錄的core文件中復制了該進程的存儲圖像。core文件僅僅是一個內存映象(同時加上調試信息),主要是用來調試的。1、unix core文件 有時自己的應用程序發(fā)生錯誤,比如訪問非法內存地址等,就會造成CoreDump,這時系統(tǒng)將相關的內存映像存為core文件,以便分析。用dbx,gdb,ladebug等工具可以對core文件進行分析,能夠定位到程序的哪一行出錯。不一定只有供應商的工程師才搞得明白。UNIX下core文件的分析 1、lquerypv -h core文件 6b1,可以查看到Core文件中報錯的進程名字。例如:lquerypv -h core_20041210 6b1得到如下的結果,2、采用file命令,直接 file core文件 即可$ file core_20041210core_20041210 AIX core file fulldump 32-bit, exe_CustInfo3、可以采用strings命令,直接將core文件中的所有垃圾提示去掉,只提取有用的信息,比如采用:strings 文件 | awk if (NR /dev/null 2&1但是在開發(fā)過程中有時為了調試問題,還是需要在特定的用戶環(huán)境下打開core文件產生的設置在用戶的/.bash_profile里加上ulimit -c unlimited來讓特定的用戶可以產生core文件如果ulimit -c 0 則也是禁止產生core文件,而ulimit -c 1024則限制產生的core文件的大小不能超過1024kb3. 設置Core Dump的核心轉儲文件目錄和命名規(guī)則/proc/sys/kernel/core_uses_pid可以控制產生的core文件的文件名中是否添加pid作為擴展,如果添加則文件內容為1,否則為0proc/sys/kernel/core_pattern可以設置格式化的core文件保存位置或文件名,比如原來文件內容是core-%e可以這樣修改:echo /corefile/core-%e-%p-%t core_pattern將會控制所產生的core文件會存放到/corefile目錄下,產生的文件名為core-命令名-pid-時間戳以下是參數(shù)列表: %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 添加命令名4. 使用core文件在core文件所在目錄下鍵入:gdb -c core它會啟動GNU的調試器,來調試core文件,并且會顯示生成此core文件的程序名,中止此程序的信號等等如果你已經(jīng)知道是由什么程序生成此core文件的,比如MyServer崩潰了生成core.12345,那么用此指令調試:gdb -c core MyServer以下怎么辦就該去學習gdb的使用了5. 一個小方法來測試產生core文件直接輸入指令:kill -s SIGSEGV $coreadm -p core.%f.%p擴展的核心轉儲文件名如果啟用了全局核心轉儲文件目錄,則可使用下表中介紹的變量來區(qū)分 core 文件。變量名變量定義%d可執(zhí)行文件目錄名,最多包含 MAXPATHLEN 個字符%f可執(zhí)行文件名,最多包含 MAXCOMLEN 個字符%g有效組 ID%m計算機名 (uname -m)%n系統(tǒng)節(jié)點名 (uname -n)%p進程 ID%t時間的十進制值 (2)%u有效用戶 ID%z在其中執(zhí)行進程的區(qū)域的名稱 (zonename)%字面值 %Example1 Setting the Core File Name PatternWhen executed from a users $HOME/.profile or $HOME/.login, the following command sets the core file name pattern for all processes that are run during the login session:example$ coreadm -p core.%f.%pNote that since the process-ID is omitted, the per-process core file name pattern will be set in the shell that is currently running and is inherited by all child processes. Example2 Dumping a Users Files Into a SubdirectoryThe following command dumps all of a users core dumps into the corefiles subdirectory of the home directory, discriminated by the system node name. This command is useful for users who use many different machines but have a shared home directory.example$ coreadm -p $HOME/corefiles/%n.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東華建鋁業(yè)考試試題及答案
- 科學實驗室培訓
- 如何構建文明健康綠色環(huán)保的生活方式
- 2025年中國男士不可充電頭燈行業(yè)市場全景分析及前景機遇研判報告
- 自然生命課程中班課件
- 基于化學核心素養(yǎng)的“教、學、評”一體化教學設計
- 客服培訓周會匯報
- 成本控制與成本控制效果評估合同
- 綠色能源場地租賃合同轉讓與環(huán)保責任協(xié)議
- 智能化彩鋼瓦施工與節(jié)能改造合同
- 醫(yī)療廢物交接與記錄的重要性
- 個人極端事件防范應急預案
- (環(huán)境管理)環(huán)境保護與水土保持監(jiān)理實施細則
- 軍事訓練傷的防治
- 國開《化工安全技術》形考任務1-4答案
- 安全生產月“一把手”講安全課件
- 產業(yè)命題賽道命題解決對策參考模板
- 985、211和雙一流大學名單
- 三人合伙經(jīng)營協(xié)議書電子版(2篇)
- 汽車產品認證
- 蛇類解剖生理特征(特種寵物疾病防治)
評論
0/150
提交評論