使用DBX分析AIX下的 CoreDump.doc_第1页
使用DBX分析AIX下的 CoreDump.doc_第2页
使用DBX分析AIX下的 CoreDump.doc_第3页
使用DBX分析AIX下的 CoreDump.doc_第4页
使用DBX分析AIX下的 CoreDump.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用DBX分析AIX 下的 CoreDumpPS:Where can you get dbx?It is part of bos.adt.debug# lslpp -w /usr/bin/dbxFile Fileset Type-/usr/bin/dbx bos.adt.debug Symlink以下转自/?6141/viewspace-18882I core dump 分析入门AIX专家俱乐部E ?!CR8Z#S)环境变量设置#X49h|80;Uy%D6sQ.i9O0 可以通过 /etc/security/limits 文件对各用户的基本配置参数包括 core 大小进行限制。或者通过 ulimit 更改当前环境下的 core 大小限制。AIX专家俱乐部vF?I9u:B1!HCc!v_J-r)r3U0 默认情况下应用进程生成 core dump 时都使用文件名 core。为了避免同一工作目录下的进程 core 相互覆盖可以定义环境变量 CORE_NAMING=true然后启动进程这样将生成名为 core.pid.ddhhmmss 的文件。可以使用 file core 命令查看 core 是哪个进程产生的。:EvFu#O$n*s)g0AIX专家俱乐部0U(p#k2_:J/ Gv$D.E默认情况下应用进程 dump 时会包含所有的共享内存如果 dump 时想排除共享内存内容可以在启动进程之前设置环境变量 CORE_NOSHM=true.R1I rjg09kkS%v!6o0 系统有一个参数 fullcore 用于控制是否在程序 coredump 时生成完整的 core。为避免信息丢失建议打开 fullcore。可以使用 lsattr El sys0 查询是否将 fullcore 打开使用 chdev -l sys0 -a fullcore=true 将 fullcore 状态更改为打开。也可以在程序内部调用 sigaction 例程设置 fullcore参考如下测试程序AIX专家俱乐部*Pp3Qi4L3gNuy_0fullcore 设置示例 AIX专家俱乐部n4m4E,c/ ewz8g|9zx9GvF0/test.CAIX专家俱乐部5D)bx*?)F#include AIX专家俱乐部?&QNC!rB*ox#include BYesPG0AIX专家俱乐部nAZ4gzd7(Kint main(int argc, char* argv)AIX专家俱乐部4s$Q0QY5j6N)?6Z,M/z-lfWBAL0 char str10;AIX专家俱乐部J&BoCS5q struct sigaction s;azZqqo-oWO-f?0 s.sa_handler = SIG_DFL; AIX专家俱乐部t?:j h,jD s.sa_mask.losigs = 0;4L7nMMB#k lI0 s.sa_mask.hisigs = 0;-C9fo RnP k%M(NN0 s.sa_flags = SA_FULLDUMP;AIX专家俱乐部4REOxg sigaction(SIGSEGV,&s,(struct sigaction *) NULL); AIX专家俱乐部5h;avpAIX专家俱乐部)?#dh%SE.H)v std:cout input str!n str;AIX专家俱乐部SHF2S-A8_q return 0;2CwQTA0AIX专家俱乐部+j+xYc-bMAIX专家俱乐部KQ0i.jDAE#O&m+H2*G0 寻找 core dump0v5Qh!fhZ0AIX专家俱乐部(lJ4QZdD)nEV应用进程的 core 产生在其当前工作目录下可以在应用程序内部使用 chdir 函数切换当前工作目录。使用 procwdx 命令可以查看进程的当前工作目录。系统的 core 生成在 lg_dumplv 下并在重启时转移到 /var/adm/ras/ 目录下如果有足够空间的话否则继续保留在 lg_dumplv并随时有可能被覆盖。8o3A/Y;N8JZQ*p0AIX专家俱乐部;?8zUs9WaG可以使用 errpt -a 查看标识 C0AA5338 SYSDUMP系统 core、B6048838 CORE_DUMP进程 core的详细错误信息获取生成 core 的进程以及 core 文件位置。使用 snap ac 收集系统的 dump 信息。QDCZo|#G60AIX专家俱乐部-4s+jO%sLcore dump 信息收集 AIX专家俱乐部; G!J,R-C_!+JR6c,p?-o5_?10 如果可能 , 直接在发生 coredump 的机器上用 dbx 分析出结果 , 这样是最方便的分析方法 . 这种情况下注意不要直接以 root 用户登录然后用 dbx 分析 , 而必须在应用程序所属的用户下进行此操作 , 因为 core 可能需要依赖应用程序运行时对应环境下的某些库 , 这样就要借助应用程序的环境变量 .xW2wVZ%P8G;k)el01ApsXSv_0 如果需取回生产机上的 core 信息在实验室分析 , 则需要搜集一些相关信息 . 进程 core 分析一般至少需要依赖应用可执行程序有时还需要包括一些运行时动态库信息。如果需要收集 core 相关的完整信息可运行 snapcore 例如 snapcore ./core ./a.out然后在 /tmp/snapcore 下取下相应的 .pax.Z 文件。AIX专家俱乐部 iH+v,xpYU*f:t,cu1A1qGZW s0 正常的收集过程应该如下 :Y3l JF8,At+p0yWi*JU0snap core 收集过程 AIX专家俱乐部!E5_WriwAIX专家俱乐部F)k;n%q*U# snapcore ./core ./a.out7BO ?I8T7i,.4J S0Core file ./core created by a.outqO,Q Vy0nc#nNd |,c Zj5h0pass1() in progress .YMXw(sZY i0AIX专家俱乐部3FF#eRq nW%E&p#W Calculating space required .AIX专家俱乐部*_vDLjZ!P?8neAIX专家俱乐部b kR(x&D Total space required is 14130 kbytes .!u.o-BHuSVH02lrX.Ol)Cq R0 Checking for available space .AIX专家俱乐部4H2e9_0kGX?7iAIX专家俱乐部)hBoov Available space is 807572 kbytesAIX专家俱乐部)L%DFS(j;ec+mci0pass1 complete. bcfkhI:Z J:iL_N02| z)X!P9XC0pass2() in progress .W7o$!?f0$?6y;wCF0 Collecting fileset information .AIX专家俱乐部0Xlp77-d7a!IYc0 Collecting error report of CORE_DUMP errors .z%c%MR0|s0AIX专家俱乐部0| _u52L_) Creating readme file .AIX专家俱乐部Oc6s$Z,dAIX专家俱乐部R p#M.p$H;He Creating archive file .T3z4hK#u0AIX专家俱乐部)/Bw y4K Compressing archive file .NU:WLzw$z3+p0gab lD3Dr3T0pass2 completed.lXUP*Wd*T,?X0AIX专家俱乐部+/HfVMSnapcore completed successfully. Archive created in /tmp/snapcore.Z5,o3PW0.WQZY8k0H0# cd /tmp/snapcoreAIX专家俱乐部mhl*pN# ls:p,vX%uG%x0snapcore_352276.pax.ZAIX专家俱乐部)B3S.9HJ+cv7r# uncompress snapcore_352276.pax.ZAIX专家俱乐部2f1(Gk8?# ls w#G&E*A$Y3g0snapcore_352276.pax-Jjkw%nI:0# pax -r -f snapcore_352276.paxAIX专家俱乐部l-%uz;5s# ls 注意需要保证有类似如下文件 ( 可执行文件/core/errpt/lslpp/usr 目录等 ):h s.v1? ncdC0README errpt.out usr2_+H0N m/l!k0a.out lslpp.out,DbO r9gX-C0core snapcore_352276.paxR3Hd3O(?4Y4?0#(w9ecg(yt;c4f0v0AIX专家俱乐部+WQqW.Kqh$MamHAIX专家俱乐部G N8o58FNLK/II 使用 dbx 分析 core dump 的例子X b4?6Q7xJ04!I$C4h0dbx 是 AIX 下基于命令行界面的源码级调试工具。本文档只提供一些基本的 dbx 分析指令详细内容请参考“General Programming Concepts: Writing and Debugging Programs”关于 dbx 的描述。WI1h_EHi0t&k8QtJf g0 初步分析 j zf)aIQ07Zj2IP%Pw0#dbx core4W7iacY+M0AIX专家俱乐部4IP i6zb;L19t7?VrA(c0 示例AIX专家俱乐部a8Z*mY3gK# dbx ./test coreAIX专家俱乐部5V%c7uWType help for help.AIX专家俱乐部:&enLdwarning: The core file is not a fullcore. Some info may+B R&Mj4|xW4GHD,D0not be available.AIX专家俱乐部%H3Z&Di0TGSs)ifusing memory image in coreAIX专家俱乐部:s&n:b *RhX-b5zPreading symbolic information .warning: no source compiled with -g,Iv0O.Dz0AIX专家俱乐部0sle/jh6X jSegmentation fault in raise at 0xd022e1e4AIX专家俱乐部|_UU;R%V0nu0xd022e1e4 (raise+0x40) 80410014 lwz r2,0x14(r1)AIX专家俱乐部vf3Nnj y4 YeSjTKsx0(S,NS6m,N)|+Q:0 显示出 core 发生时当前进程执行到的位置-g 编译的情况下能够看到具体的行AIX专家俱乐部S1U#F;(dbx) whereCk%-l/q:bL%0raise(?) at 0xd022e1e4-ELn8i9P1uAO0main(0x1, 0x2ff22d48) at 0x100019c4AIX专家俱乐部be+a!|jsBzutk(M3Z0?)Z*EF*vuD2w0 注意AIX专家俱乐部E;pL4n/ Nj Xu fnH0 如果分析的是异地 core 文件需要采用 snapcore 收集相关 core 信息。对于依赖链接库的情况注意需要增加 -p ldpath=newpath:. 重新设置链接库路径只有所有依赖的库都已经被链接才能完整的复现 coredump 故障现场参考 dbx 的帮助文档获取更多信息。f#Ep3L0# cd /tmp/snapcoreZs6lq6i0# dbx p /=./ a.out coreF.cfX!AY c0Type help for help.7R r c!Mm6D0using memory image in coreQt):Olur9h0reading symbolic information .warning: no source compiled with -gn8Dw.K/MEE)_+02C2wA5DvD8z1B0AIX专家俱乐部.zmdVIOT/Abort trap in raise at 0xd01f4f60#S8Cb7vR+ov00xd01f4f60 (raise+0x40) 80410014 lwz r2,0x14(r1) 1kL1q7g0AIX专家俱乐部X9A#eai5JDAIX专家俱乐部CmLxj K?C列举源码信息n(SJw%q0AIX专家俱乐部j,tX8J|7J列举程序源码list需要在运行 dbx 命令时使用 -I 指明源码搜索路径并使用 -g 编译或者汇编码listiAIX专家俱乐部WKR/L (dbx) listi mainAIX专家俱乐部ew;a0tjr0x10001924 (main) 7c0802a6 mflr r0AIX专家俱乐部1v4+mv0t;e0z0x10001928 (main+0x4) bfa1fff4 stmw r29,-12(r1)AIX专家俱乐部Ptfef Y&_%0x1000192c (main+0x8) 90010008 stw r0,0x8(r1),l?0OW00x10001930 (main+0xc) 9421ffa0 stwu r1,-96(r1)%O0hcTwn(00x10001934 (main+0x10) 83e20064 lwz r31,0x64(r2)Zub)jG00x10001938 (main+0x14) 90610078 stw r3,0x78(r1)mW/2v2F00x1000193c (main+0x18) 9081007c stw r4,0x7c(r1)AIX专家俱乐部?N)K9)L0x10001940 (main+0x1c) 83a20068 lwz r29,0x68(r2)AIX专家俱乐部H)S;m)U6j%Xe-AIX专家俱乐部9H_nHN4$h9f; qLGy!3cF0 列举变量内容hiD_Y0y5dPjhL%H0 示例代码AIX专家俱乐部)p3mb|UW#include AIX专家俱乐部+w!ko*K#include %P-.y58sW/K0int g_test =0;!v9z&K b6G0AIX专家俱乐部(lE1h;Ylint testfunc(int ¶)AIX专家俱乐部*V!Yq:p3Od0p?uy;?!0 para+;8r?;/p3|0 return 0;Fu(l$ih$TO7ns_0!thr K8O9I0D|8u)Kg3WYyjcw0int main(int argc, char* argv)AIX专家俱乐部twW aJ)|&bf3OKJ:wx:w!Hz$h0 struct sigaction s;AIX专家俱乐部 iHt|7w0 s$kL s.sa_handler = SIG_DFL;AIX专家俱乐部fFeR,sb._4 s.sa_mask.losigs = 0;AIX专家俱乐部A*g/E$P KbJ!y s.sa_mask.hisigs = 0;AIX专家俱乐部Xr&?:A_ s.sa_flags = SA_FULLDUMP;E0X;PL*w S0 sigaction(SIGSEGV,&s,(struct sigaction *) NULL);:;f-e(OT01Y9zloYK0 char str10;AIX专家俱乐部N$r2Ei2m g_test =0;AIX专家俱乐部$Q:Hu9LW:x9U:YVc)A8&q&aM0 testfunc(g_test);AIX专家俱乐部a#K9PF Zb abort();AIX专家俱乐部eVba7_OAIX专家俱乐部0L RgE-XYH# xlC test.C -gMXmg7VeWAG B08kCR(V Cw:x0!dcY2U Ew t-s!0 以全局变量 g_test 举例AIX专家俱乐部.nqZ_g2z.xAIX专家俱乐部4vlgP2q/#print g_test 显示 g_test 的取值F2k(Pc1M,T0,q.CQ)z!mp6Z0#print sizeof(g_test) 显示 g_test 的大小.D(l!Oh3K0spQ%bo(hN/0#whatis g_test 显示 g_test 的类型C? A#wB0w3xsU%EP0#print &g_test 显示 g_test 的地址 AIX专家俱乐部%do-ctQxAIX专家俱乐部yTdrEc.vV,?#&g_test/16x 显示从 g_test 的地址开始处连续 16 个 WORD?byte的取值WI:X2L2rHavd0$d2P-mK9F!o0 如果没有使用 -g 编译则不能动态获取 g_test 的类型、大小等信息但能够得到 g_test 的地址并查询该地址所在区域存储空间的值。.Q?EIz0&yd $n4z,l0 例如!mSN6A0# ./a.outH+y7 z*jKyC%s0IOT/Abort trap(coredump),kKE!u1(u0# dbx ./a.out core.,G!Uv-O,DM r0Type help for help.g.Ec+v-NA#V!gD4N0using memory image in core:cUyXnqjk$Qg4G&d0reading symbolic information .o)R E qc#6ydw)Pb0AIX专家俱乐部yC0i:w75? rHN!DIOT/Abort trap in raise at 0xd03365bcF-h6b;00xd03365bc (raise+0x40) 80410014 lwz r2,0x14(r1)AIX专家俱乐部1E4J1jl;Tc$oe(dbx) print g_testAIX专家俱乐部j8Ac|&k1AIX专家俱乐部E+C WK;T;s(dbx) whatis g_testp0N5um3n#LG8mBD0int g_test;AIX专家俱乐部4h Nv;mI+o(dbx) print sizeof(g_test)M2q:O:yz(Di04Y*f-nY&qE/c0(dbx) print &g_test6fj,a9iY.A00x20000428AIX专家俱乐部,a7pqvIJu-Cc(dbx) &g_test/16xAIX专家俱乐部:B%RCqxS0x20000428: 0000 0001 0000 0000 0000 0000 0000 0000E%U4JtR8x8G7b9aB00x20000438: 0000 0000 0000 0000 0000 0000 0000 0000%Gv&G n%yNW_#05j5|R$m8c0AIX专家俱乐部_4eN2zh8|列举寄存器内容-i*O(o;igs0&tl2k;|gLY2HAS9P0 列举寄存器内容AIX专家俱乐部m yB7J!q5?H?v4MFHhdfiBn0(dbx) registersm5F9$l8W)h0/KnTke2s0 如下模拟一个简单的 core dump对 0 地址赋值引发 core dump 的问题AIX专家俱乐部N vHfwjTI Ma# dbx ./a.out coreAIX专家俱乐部:A2gIP_1Type help for help.P _2c.c!Y+?0warning: The core file is not a fullcore. Some info may;L*Ns%IL8m)r0not be available.AIX专家俱乐部P-U8K2_!yTusing memory image in coreAIX专家俱乐部Npa4p-Ireading symbolic information .warning: no source compiled with -g5y#X2FF#T0)mws?%k4V.Ivg!h0U&n7O;Xz&xt0Segmentation fault in main at 0x10000348AIX专家俱乐部!X6rOTC0x10000348 (main+0x18) 90640000 stw r3,0x0(r4)$KQ7mEp0(dbx) whereAIX专家俱乐部)kZwmain(0x1, 0x2ff22ccc) at 0x10000348AIX专家俱乐部-fs;n:?z/T(dbx) registersiS%c m/m#u0 $r0:0x00000000 $stkp:0x2ff22bf0 $toc:0x20000414 $r3:0x00000012AIX专家俱乐部,|%NdIW*K*c&C $r4:0x00000000 $r5:0x2ff22cd4 $r6:0xdeadbeef $r7:0x2ff22ff8Q4n(j!k+wG6f 0 $r8:0x00000000 $r9:0x04030000 $r10:0xf0577538 $r11:0xdeadbeefAIX专家俱乐部yhh:K#PVN $r12:0xdeadbeef $r13:0xdeadbeef $r14:0x00000001 $r15:0x2ff22cccAIX专家俱乐部dq7Li#z:+y $r16:0x2ff22cd4 $r17:0x00000000 $r18:0xdeadbeef $r19:0xdeadbeefAIX专家俱乐部+P*c(B+o8o/jyA $r20:0xdeadbeef $r21:0xdeadbeef $r22:0xdeadbeef $r23:0xdeadbeefAIX专家俱乐部K2Zi9Ja9QJ $r24:0xdeadbeef $r25:0xdeadbeef $r26:0xdeadbeef $r27:0xdeadbeef9qOn6X0O0F0 $r28:0xdeadbeef $r29:0xdeadbeef $r30:0xdeadbeef $r31:0xdeadbeefv,z0_,kJg0 $iar:0x10000348 $msr:0x0000d0b2 $cr:0x22282489 $link:0x100001b4AIX专家俱乐部d!K-n:nD*e2df$Y7D $ctr:0xdeadbeef $xer:0x20000020%h0 WS2v-od0 Condition status = 0:e 1:e 2:e 3:l 4:e 5:g 6:l 7:lo(w2f8YY:Y0 unset $noflregs to view floating point registersy |;|C-C0 unset $novregs to view vector registersAIX专家俱乐部,N#_p5hin main at 0x10000348AIX专家俱乐部n:ycbA-LWY:V0x10000348 (main+0x18) 90640000 stw r3,0x0(r4)I-p?$?6B8T&vBkq)a$z0L0(dbx) print $r3AIX专家俱乐部#? dJ5xv1WXU!NX0x00000012AIX专家俱乐部 cFe#Qv)|F(dbx) print $r4Nllc;X1D)j0(nil),NpL)kMc;PW0AIX专家俱乐部G iOD3s-A3htmsr/m9;j/C0 这个例子比较简单从最后汇编指令“stw r3,0x0(r4)”就可以简单的看到程序 core dump 是因为向 0 地址0+r4存入 18r3 寄存器值造成。AIX专家俱乐部6e0o!S8zh n*PdAIX专家俱乐部$ja$J3uf4a查看多线程相关信息3uhPZ9Xp3f0qk?&nPg!0 如果以下环境变量采用默认的 OFF 值则系统会完全禁止适当的调试列表这意味着 dbx 命令将显示不出任何对象W#C:hwi0AIX专家俱乐部!AV9AO;lAIXTHREAD_MUTEX_DEBUGAIX专家俱乐部-l)v N!d3k3a%yx r5G0AIXTHREAD_COND_DEBUG)V&cJd;0AIX专家俱乐部b I;h0 x a!pu vAIXTHREAD_RWLOCK_DEBUGbyit A4z0AIX专家俱乐部(FF6Y可以使用4t!m4D |6P KtbT0AIX专家俱乐部 |fv:W?Y1Pm#hexport AIXTHREAD_MUTEX_DEBUG=ONL-r;f+n,v0BFQ Ogg xK0 打开 AIXTHREAD_MUTEX_DEBUG。AIX专家俱乐部$s.A*DtZ查看线程信息 AIX专家俱乐部2s ug.Xl.| Rr1q(dbx) print $t1 / 打印 t1 线程的基本信息SA!YS+#2V1Z0/LJLhDHk+U0(dbx) attributeIs7j%S(AU00P:Z+we5%N90(dbx) conditionW6ZZUb0AIX专家俱乐部(MVV)e3n(dbx) mutexV;M5m/hPX+eV#FO0AIX专家俱乐部Px DBH/W;X)I2B(dbx) rwlockAIX专家俱乐部,vqGwQQmAIX专家俱乐部0ZX3C;HW%p(5C2bh |(dbx) threadlL IG#A(wo0nw:xJ0 例如AIX专家俱乐部 AdU2x!QLAIX专家俱乐部B+d#Tur*X,_%q(thread_id = 1, state_u = 4, priority = 60, policy = other, attributes = 0x20001078)56Wv;u0切换当前线程默认当前线程为收到 core 触发信号所在线程 AIX专家俱乐部$Jw2oHqK(dbx) thread current tid0h8nIs|3fqOr(G0AIX专家俱乐部PQ)WDq;T$R例如 表明 core dump 时的当前线程)-H-|GaM*v-sh x0(dbx)threadJ?-i.Z#ZF0 thread state-k wchan state-u k-tid mode held scope functionAIX专家俱乐部3Ge:s!l $t1 wait 0x31bbb558 running 10321 k no pro _ptrgl 8 PZ4FEUM0 $t2 wait 0x311fb958 running 6275 k no pro _ptrgl AIX专家俱乐部1lE40o-sU5l+|H$t3 run running 6985 k no pro _p_nsleep 8G|6wb hj0 $t4 wait 0x31bbbb18 running 6571 k no pro _ptrgl AIX专家俱乐部&ODV5chQ $t5 wait 0x311fb9d8 running 7999 k no pro _ptrgl AIX专家俱乐部fh4?hwm!o)r $t6 wait 0x31bf8f98 running 8257 k no pro _ptrgl AIX专家俱乐部-T,G(v!RH%n*K $t7 wait 0x311fba18 running 8515 k no pro _ptrgl 7ZR+X0_(F n PMq-r0 $t8 wait 0x311fb7d8 running 8773 k no pro _ptrgl AIX专家俱乐部Zp2_me1lX v4v $t9 wait 0x311fbb18 running 9031 k no pro _ptrgl HSIKtIExA;VQ0 $t10 wait 0x311fb898 running 9547 k no pro _ptrgl #O5imH0 $t11 wait 0x311fb818 running 9805 k no pro _ptrgl Ku5Hg+s,N)0 $t12 wait 0x311fba58 running 10063 k no pro _ptrgl 3oq40 $t13 wait 0x311fb8d8 running 10579 k no pro _ptrgl E,GC-Rd1%A0(dbx) thread current 3F.3iq (dbx) where;QR:?(wO6BX3I2um0_p_nsleep(?, ?) at 0xd005f740AIX专家俱乐部7s!FGl;_D6R&doE|raise.nsleep(?, ?) at 0xd022de3cAIX专家俱乐部 fRlYvN)Csleep(?) at 0xd0260344AIX专家俱乐部 T2zm.J$Qhelper(?) at 0x100005ac+m8Nf p0(dbx) thread current 4UPUT#p,NbH0warning: Thread is in kernel mode, not all registers can be accessed.n o2lZ Y 0(dbx) where5xN.vqis:G0ptrgl._ptrgl() at 0xd020e470 CKGx8a2_(zuc+d0raise.nsleep(?, ?) at 0xd022de3cAIX专家俱乐部(DLkDraise.nsleep(?, ?) at 0xd022de3cAIX专家俱乐部WL:M-Tl6_+Sxsleep(?) at 0xd02603441phE UQ.S0helper(?) at 0x100005acAIX专家俱乐部5y9do&akH(dbx) gKhw0N.Sj0ifPoh0AIX专家俱乐部5L#Q!S)Q3XZsDcore dump 分析的局限性 AIX专家俱乐部;B *vti5?mkAIX专家俱乐部5R6H.HIKI不要期待能依赖 core dump 分析解决所有的问题下面是一个简单的模拟缓冲区溢出的例子在这个例子中由于缓冲区溢出覆盖了调用栈信息从而完全丢失了定位依据AIX专家俱乐部nUw#WNRF_Sroot/tmp#xlC test.C -g -o test2AIX专家俱乐部dLb5a6Z;vu zh2Hroot/tmp#j2lQB K5U0root/tmp#./testAIX专家俱乐部+h(O1/cS1DUZ input str!+Z;mN-Ki3C9z)V0AIX专家俱乐部|I8q2$A)|F.-e.N!B012345678901234567890123456789AIX专家俱乐部$i5l)v+P vD)#ESegmentation fault(coredump)AIX专家俱乐部oU%LR)root/tmp#dbx ./test2 core#O1sS1t6bAB0Type help for help.&Zl6I,j/JYy4e P0using memory image in coreAIX专家俱乐部4hI6|i2$Breading symbolic information .v|?7Oj)8Z0 SU:U3?0Segmentation fault in test2. at 0x34353634 tHcs t00x34353634 (?) warning: Unable to access address 0x34353634 from coreAIX专家俱乐部*Z)K2D2Ajo$o(dbx) where&Hh(/X:De/A.j2(S0warning: Unable to access address 0x34353634 from coreU(Dc+/1u4Y+m0warning: Unable to access address 0x34353634 from coreA1E;P&C1x_0warning: Unable to access address 0x34353630 from coreAIX专家俱乐部3cF5fBknnE&twarning: Unable to access address 0x34353630 from corehU)Y,Kb*K r0warning: Unable to access address 0x34353634 from core$e7W*C%vD9F0warning: Unable to access address 0x34353634 from coreAIX专家俱乐部.L&O5K*m.zwarning: Unable to access address 0x34353630 from coreAIX专家俱乐部:Gk8Yn6IVwarning: Unable to access address 0x34353630 from coreAIX专家俱乐部D$sbO_!i cwarning: Unable to access address 0x34353634 from coreAIX专家俱乐部 73EcGwarning: Unable to access address 0x36373841 from coreAIX专家俱乐部E Jc9 V?ltest2.() at 0x34353634m-w#U%S0m#wIK0warning: Unable to access address 0x36373839 from coreAIX专家俱乐部)Kl#h*qGwarning: Unable to access address 0x36373839 from core.;b+b$dH0(dbx)D+Jtz-Auh0c8SSa!K8Lc/i0D cpSVAz9k q0blue_rule.gifAIX专家俱乐部E-p6ffmOT6AUc.gifc.gifAIX专家俱乐部3JT#H9BDoV z%B(OtLFgBN1v0AIX专家俱乐部_%Cs?1m5hN4QN%Z&Ho8o,h0AIX专家俱乐部*Ol5R.Y$|3oBh|系统 dump 分析 AIX专家俱乐部!RVG-GgAIX专家俱乐部)Zs1EWaQ环境变量设置v!P5uw2gpc9c|oT(0B$Bny8E,no0 可以通过“sysdumpdev l”查看系统当前的 dump 配置信息xR&yYI0root/#sysdumpdev -lAIX专家俱乐部h/MG/uEx9SUSprimary /dev/hd6AIX专家俱乐部d q?6U Nsecondary /dev/sysdumpnullAIX专家俱乐部 br9X4X Q+Fcopy directory /var/adm/rasAIX专家俱乐部jq*L(n.M)b/Faforced copy flag TRUE|R*iF T+,l0always allow dump FALSEH1Umq0dump compression ONB9u;zi;Q0L(d10AIX专家俱乐部(sp*p QESAIX专家俱乐部u&gB3e6hL注意旧版本的 AIX “always allow dump”可能默认为关闭为方便系统 crash 时问题定位建议打开可使用命令 sysdumpdev K 或者使用 smitty - System Environments- Change / Show Characteristics of System Dump 菜单设置。?H;V5T7jdx7r3H0;dJ6R%s$cb3W0sysdumpdev L 获得最近系统产生的 dump 的相关统计信息W+q2J/U4B/R0#sysdumpdev -LAENZcvw8Z )j00453-039zL?1Pu0Device name: /dev/hd6AIX专家俱乐部vK$e;y3G%Major device number: 10AIX专家俱乐部P$M4h%b2ZtOMinor device number: 22WX5iT,o0Size: 18885120 bytese&dxP&ZI$i0Uncompressed Size: 113724523 bytesAIX专家俱乐部)S#?B12Tj3)L)XDate/Time: Sat Jul 21 14:20:22 BEIST 2007AIX专家俱乐部jpL&pfDump status: 0f7o:Uj!h0dump completed successfullyAIX专家俱乐部+z)l#FqF4N0A?)FDump copy filename: /var/adm/ras/vmcore.2.Z:C/LMF vA0AIX专家俱乐部$lu u#ba-m)F2Tc%aAIX专家俱乐部$|R:tY X7|bm c为保证系统出现 crash 时dump device 能够保存下 dump 信息需要合理的配置 dump device 的大小可以使用 sysdumpdev e 估计系统 dump 需要的空间。一般推荐的 dump device 值大小为 sysdumpdev e 估计值的 1.5 倍。AIX专家俱乐部4S;JD0pQi#W!jdo0 环境变量设置GvyD O/Lc*g0-D N,n o*FFN0 本文档只提供一些基本的 dump 分析指令详细内容请参考“KDB kernel debugger and kdb command ”。AIX专家俱乐部af6r&LR+K,#Xl.q0 初步分析 AIX专家俱乐部)wy8_LFAIX专家俱乐部5br.h7_-Zlkdb 对 dump 文件分析需要借助于产生 dump 的内核文件 /unix一般 snap ac 会对此文件进行收集。初步命令如下AIX专家俱乐部C%F,4oIZA)GAIX专家俱乐部mxn+#nz$B C#kdb ./dump ./unixAIX专家俱乐部(Np; Q%RUYAIX专家俱乐部&WP:.I7t1j i5P示例,fHI#N!sWu0#kdb ./dump ./unixAIX专家俱乐部2Vr+j|/iThe specified kernel file is a 64-bit kernelAIX专家俱乐部nr;jxx./dump mapped from 700000000000000 to 70000007da53bd5AIX专家俱乐部Sa5WtPreserving 1317350 bytes of symbol table;Y5C-I&|%o t%K q0First symbol _mulhN;v8qBA,Jy(ir0Component Names:i!A!FX% nR0 1) minidump 2 entriesAIX专家俱乐部0iXD/jmE.if 2) dmp_minimal 9 entriesAIX专家俱乐部.RGOfs3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论