系统HANG住分析工具及方法

32 篇文章 0 订阅
如果系统HANG住了,这个时候做一个SYSTEM STATE DUMP,对于分析HANG的原因十分重要。但是很多情况下,系统HANG住了就无法登录,那么如何进行分析呢?
METALINK DOC :359536.1提供了一些好的办法,在这里和大家共享:
支持的数据库版本:9.2.0.1-10.2
平台(部分是UNIX平台,部分适用于所有平台)

1、10G以前,使用DBX,GDB之类的工具:

找到一个前台进程的PID(ps -ef|grep LOCAL),然后用gdb $ORACLE_HOME/bin/oracle 进行跟踪
oracle@gurufl02:~> ps -ef|grep LOCAL
oracle   26358 26357  0 09:52 ?        00:00:00 oracleora9 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   27848 27810  0 10:41 pts/3    00:00:00 grep LOCAL
oracle@gurufl02:~> gdb $ORACLE_HOME/bin/oracle 26358
然后执行:print ksudss(10)
(gdb) print ksudss(10)
[Switching to Thread 4154533552 (LWP 26358)]
warning: Unable to restore previously selected frame.
$1 = 181773020
Current language:  auto; currently asm

这个时候在UDUMP或者BDUMP下会生成一个TRACE文件。里面包含SYSTEM STATE DUMP


例如:
1:
SQL> select spid from v$session s,v$process p where s.paddr=p.addr and sid in(select distinct sid from v$mystat);  


SPID
------------------------
6093


SQL> update scott.emp set comm=1000 where empno=7369;
2:
[root@test ~]# gdb $ORACLE_HOME/bin/oracle 6093
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
/bin/oracle: No such file or directory.
Attaching to process 6093
Reading symbols from /u01/app/product/11.2.0/dbhome_1/bin/oracle...(no debugging symbols found)...done.
Reading symbols from /u01/app/product/11.2.0/dbhome_1/lib/libodm11.so...(no debugging symbols found)...done.
Loaded symbols for /u01/app/product/11.2.0/dbhome_1/lib/libodm11.so
Reading symbols from /u01/app/product/11.2.0/dbhome_1/lib/libcell11.so...done.
Loaded symbols for /u01/app/product/11.2.0/dbhome_1/lib/libcell11.so
Reading symbols from /u01/app/product/11.2.0/dbhome_1/lib/libskgxp11.so...(no debugging symbols found)...done.
Loaded symbols for /u01/app/product/11.2.0/dbhome_1/lib/libskgxp11.so
Reading symbols from /lib64/librt.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/librt.so.1
Reading symbols from /u01/app/product/11.2.0/dbhome_1/lib/libnnz11.so...(no debugging symbols found)...done.
Loaded symbols for /u01/app/product/11.2.0/dbhome_1/lib/libnnz11.so
Reading symbols from /u01/app/product/11.2.0/dbhome_1/lib/libclsra11.so...done.
Loaded symbols for /u01/app/product/11.2.0/dbhome_1/lib/libclsra11.so
Reading symbols from /u01/app/product/11.2.0/dbhome_1/lib/libdbcfg11.so...(no debugging symbols found)...done.
Loaded symbols for /u01/app/product/11.2.0/dbhome_1/lib/libdbcfg11.so
Reading symbols from /u01/app/product/11.2.0/dbhome_1/lib/libhasgen11.so...done.
Loaded symbols for /u01/app/product/11.2.0/dbhome_1/lib/libhasgen11.so
Reading symbols from /u01/app/product/11.2.0/dbhome_1/lib/libskgxn2.so...(no debugging symbols found)...done.
Loaded symbols for /u01/app/product/11.2.0/dbhome_1/lib/libskgxn2.so
Reading symbols from /u01/app/product/11.2.0/dbhome_1/lib/libocr11.so...done.
Loaded symbols for /u01/app/product/11.2.0/dbhome_1/lib/libocr11.so
Reading symbols from /u01/app/product/11.2.0/dbhome_1/lib/libocrb11.so...done.
Loaded symbols for /u01/app/product/11.2.0/dbhome_1/lib/libocrb11.so
Reading symbols from /u01/app/product/11.2.0/dbhome_1/lib/libocrutl11.so...done.
Loaded symbols for /u01/app/product/11.2.0/dbhome_1/lib/libocrutl11.so
Reading symbols from /lib64/libaio.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libaio.so.1
Reading symbols from /lib64/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /lib64/libm.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib64/libm.so.6
Reading symbols from /lib64/libpthread.so.0...(no debugging symbols found)...done.
[Thread debugging using libthread_db enabled]
Loaded symbols for /lib64/libpthread.so.0
Reading symbols from /lib64/libnsl.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libnsl.so.1
Reading symbols from /lib64/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /usr/lib64/libnuma.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libnuma.so.1
Reading symbols from /lib64/libnss_files.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libnss_files.so.2
Reading symbols from /u01/app/product/11.2.0/dbhome_1/lib/libnque11.so...(no debugging symbols found)...done.
Loaded symbols for /u01/app/product/11.2.0/dbhome_1/lib/libnque11.so
0x000000388300e530 in __read_nocancel () from /lib64/libpthread.so.0
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.107.el6.x86_64 libaio-0.3.107-10.el6.x86_64 numactl-2.0.7-6.el6.x86_64
(gdb) 
(gdb) b kslgetl
Breakpoint 1 at 0x93f9818
(gdb) c
Continuing.


Breakpoint 1, 0x00000000093f9818 in kslgetl ()
(gdb) info all-register 
rax            0x0      0
rbx            0x75414010       1967210512
rcx            0xf97    3991
rdx            0x75413fe0       1967210464
rsi            0x1      1
rdi            0x6010f6c8       1611724488
rbp            0x7fff09c28b40   0x7fff09c28b40
rsp            0x7fff09c28b40   0x7fff09c28b40
r8             0xf97    3991
r9             0xc0cc9e0        202164704
r10            0x75413fe0       1967210464
r11            0xf97    3991
r12            0xc0cc9e0        202164704
r13            0x6010f6c8       1611724488
r14            0x1      1
r15            0x1      1
rip            0x93f9818        0x93f9818 <kslgetl+4>
eflags         0x246    [ PF ZF IF ]
cs             0x33     51
ss             0x2b     43
ds             0x0      0
es             0x0      0
fs             0x0      0
gs             0x0      0
st0            0        (raw 0x00000000000000000000)
st1            0        (raw 0x00000000000000000000)
st2            0        (raw 0x00000000000000000000)
st3            0        (raw 0x00000000000000000000)
st4            0        (raw 0x00000000000000000000)
st5            0        (raw 0x00000000000000000000)
st6            105264   (raw 0x400fcd98000000000000)
st7            8156     (raw 0x400bfee0000000000000)
fctrl          0x27f    639
fstat          0x0      0
ftag           0xffff   65535
fiseg          0x0      0
fioff          0x14b99c1        21731777
foseg          0x7fff   32767
fooff          0x9c26f70        163737456
fop            0x55d    1373
xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0xa <repeats 16 times>}, v8_int16 = {0xa0a, 0xa0a, 
    0xa0a, 0xa0a, 0xa0a, 0xa0a, 0xa0a, 0xa0a}, v4_int32 = {0xa0a0a0a, 0xa0a0a0a, 0xa0a0a0a, 0xa0a0a0a}, v2_int64 = {0xa0a0a0a0a0a0a0a, 
---Type <return> to continue, or q <return> to quit---
    0xa0a0a0a0a0a0a0a}, uint128 = 0x0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a}
xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x0}, v16_int8 = {0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 
    0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xff00, 0xffff, 0xff00, 0xffff, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0xffffff00, 
    0xffffff00, 0x0, 0x0}, v2_int64 = {0xffffff00ffffff00, 0x0}, uint128 = 0x0000000000000000ffffff00ffffff00}
xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x200000, 0x0, 0x0}, v2_int64 = {
    0x20000000000000, 0x0}, uint128 = 0x00000000000000000020000000000000}
xmm8           {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x38, 0xfa, 0xfe, 0x42, 0x2e, 0xe6, 0x3f, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x3800, 0xfefa, 0x2e42, 0x3fe6, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0xfefa3800, 
    0x3fe62e42, 0x0, 0x0}, v2_int64 = {0x3fe62e42fefa3800, 0x0}, uint128 = 0x00000000000000003fe62e42fefa3800}
xmm9           {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x1, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x3f, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x3ff0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x3ff00000, 0x0, 0x0}, 
  v2_int64 = {0x3ff0000000000000, 0x0}, uint128 = 0x00000000000000003ff0000000000000}
xmm10          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm11          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x30, 0x67, 0xc7, 0x93, 0x57, 0xf3, 0x2e, 0x3d, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x6730, 0x93c7, 0xf357, 0x3d2e, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x93c76730, 
    0x3d2ef357, 0x0, 0x0}, v2_int64 = {0x3d2ef35793c76730, 0x0}, uint128 = 0x00000000000000003d2ef35793c76730}
xmm12          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm13          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm14          {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x38, 0xfa, 0xfe, 0x42, 0x2e, 0xe6, 0x3f, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x3800, 0xfefa, 0x2e42, 0x3fe6, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0xfefa3800, 
    0x3fe62e42, 0x0, 0x0}, v2_int64 = {0x3fe62e42fefa3800, 0x0}, uint128 = 0x00000000000000003fe62e42fefa3800}
xmm15          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x1, 0x0 <repeats 15 times>}, v8_int16 = {0x1, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x1, 0x0, 0x0, 0x0}, v2_int64 = {0x1, 0x0}, uint128 = 0x00000000000000000000000000000001}
mxcsr          0x1fa0   [ PE IM DM ZM OM UM PM ]
(gdb) x/32 0x6010f6c8
0x6010f6c8:     0       0       17012821        336
0x6010f6d8:     7       3991    -1731922304     1
0x6010f6e8:     5094    8656    0       0
0x6010f6f8:     86320   0       96      0
0x6010f708:     0       0       8565    0
0x6010f718:     0       0       1611724576      0
0x6010f728:     1611724576      0       1611724432      0
0x6010f738:     1611724752      0       0       0
(gdb) b kslwtbctx
Breakpoint 2 at 0x93fde48
(gdb) c
Continuing.


Breakpoint 1, 0x00000000093f9818 in kslgetl ()
(gdb) info all-register
rax            0x0      0
rbx            0xc0cc9e0        202164704
rcx            0xfc7    4039
rdx            0x0      0
rsi            0x1      1
rdi            0x6010f628       1611724328
rbp            0x7fff09c26b20   0x7fff09c26b20
rsp            0x7fff09c26b20   0x7fff09c26b20
r8             0xfc7    4039
r9             0xc0cc9e0        202164704
r10            0x0      0
r11            0xfc7    4039
r12            0x600052c0       1610633920
r13            0x6010f628       1611724328
r14            0x1      1
r15            0x1      1
rip            0x93f9818        0x93f9818 <kslgetl+4>
eflags         0x246    [ PF ZF IF ]
cs             0x33     51
ss             0x2b     43
ds             0x0      0
es             0x0      0
fs             0x0      0
gs             0x0      0
st0            0        (raw 0x00000000000000000000)
st1            0        (raw 0x00000000000000000000)
st2            0        (raw 0x00000000000000000000)
st3            0        (raw 0x00000000000000000000)
st4            0        (raw 0x00000000000000000000)
st5            0        (raw 0x00000000000000000000)
st6            105264   (raw 0x400fcd98000000000000)
st7            8156     (raw 0x400bfee0000000000000)
fctrl          0x27f    639
fstat          0x0      0
ftag           0xffff   65535
fiseg          0x0      0
fioff          0x14b99c1        21731777
foseg          0x7fff   32767
fooff          0x9c26f70        163737456
fop            0x55d    1373
xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
---Type <return> to continue, or q <return> to quit---
xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xfe, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, v8_int16 = {0xfffe, 0xffff, 0xffff, 0xffff, 0xfffe, 0xffff, 
    0xffff, 0xffff}, v4_int32 = {0xfffffffe, 0xffffffff, 0xfffffffe, 0xffffffff}, v2_int64 = {0xfffffffffffffffe, 0xfffffffffffffffe}, 
  uint128 = 0xfffffffffffffffefffffffffffffffe}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x200000, 0x0, 0x0}, v2_int64 = {
    0x20000000000000, 0x0}, uint128 = 0x00000000000000000020000000000000}
xmm8           {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x38, 0xfa, 0xfe, 0x42, 0x2e, 0xe6, 0x3f, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x3800, 0xfefa, 0x2e42, 0x3fe6, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0xfefa3800, 
    0x3fe62e42, 0x0, 0x0}, v2_int64 = {0x3fe62e42fefa3800, 0x0}, uint128 = 0x00000000000000003fe62e42fefa3800}
xmm9           {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x1, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x3f, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x3ff0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x3ff00000, 0x0, 0x0}, 
  v2_int64 = {0x3ff0000000000000, 0x0}, uint128 = 0x00000000000000003ff0000000000000}
xmm10          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm11          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x30, 0x67, 0xc7, 0x93, 0x57, 0xf3, 0x2e, 0x3d, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x6730, 0x93c7, 0xf357, 0x3d2e, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x93c76730, 
    0x3d2ef357, 0x0, 0x0}, v2_int64 = {0x3d2ef35793c76730, 0x0}, uint128 = 0x00000000000000003d2ef35793c76730}
xmm12          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm13          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm14          {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x38, 0xfa, 0xfe, 0x42, 0x2e, 0xe6, 0x3f, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x3800, 0xfefa, 0x2e42, 0x3fe6, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0xfefa3800, 
    0x3fe62e42, 0x0, 0x0}, v2_int64 = {0x3fe62e42fefa3800, 0x0}, uint128 = 0x00000000000000003fe62e42fefa3800}
xmm15          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x1, 0x0 <repeats 15 times>}, v8_int16 = {0x1, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x1, 0x0, 0x0, 0x0}, v2_int64 = {0x1, 0x0}, uint128 = 0x00000000000000000000000000000001}
mxcsr          0x1fa0   [ PE IM DM ZM OM UM PM ]
(gdb) x/32 0x6010f628
0x6010f628:     0       0       16702834        336
0x6010f638:     7       3991    -2070483712     1
0x6010f648:     6820    8704    0       0
0x6010f658:     29819   0       124     0
0x6010f668:     0       0       8592    0
0x6010f678:     0       0       1611724416      0
0x6010f688:     1611724416      0       1611724272      0
0x6010f698:     1611724592      0       0       0
(gdb) info breakpoints 
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x00000000093f9818 <kslgetl+4>
        breakpoint already hit 2 times
2       breakpoint     keep y   0x00000000093fde48 <kslwtbctx+4>
(gdb) 

rdi/edi是第一个参数, rsi/esi是第二个参数,贴出info all-register命令所显示函数 kslwtbctx() 的两个参数,如下
rsi            0x1      1        ----第二个参数
rdi            0x6010f6c8       1611724488    ----第一个参数


常用的gdb调试命令:

1. file <文件名> :  加载被调试的可执行程序文件.
2. run(简写r也可以): 运行被调试程序,直到遇到断点.
3. c : 继续执行被调试程序,直到下一断点.
4. b : 设置断点.
5. d <编号> : 删除断点.
6. info breakpoints : 显示已设置的断点列表.
7. s : 源码级的单步进入.
8. n : 源码级的单步步过.
9. si/ni : 指令级的单步进入和步过.(需要先运行display /i $pc)
10. info all-register: 显示所有寄存器的值.
11. p /x $eax : 以16进制显示某一特定寄存器的值.
12. q: 退出gdb调试环境.
13. disassemble <0xXXXXXXXX> : 反汇编指定地址处的指令.(加/r选项,显示对应汇编代码的机器码)
14. set disassembly-flavor <intel | att> : 设定汇编显示的格式(Intel格式或者AT&T格式)
15. 修改指定地址的内存数据:set {unsigned char} <0xXXXXXXXX>= <new data>
16. 显示源代码文件: list
17. info stack: 查看栈追踪(栈回溯). 或者使用 backtrace 也可以
18. x /nfu <addr> : 查看指定地址处的内存内容.
     n: 表示个数.   f(format): x,16进制.  d,10进制.   u(每一项的长度): b,单字节. w,4字节. h,双字节.
     例如: x /1xw 0x804a010


2、sqlplus -prelim

如果10G,可以使用sqlplus -prelim选项强制登录
export ORACLE_SID=ora9                              
sqlplus -prelim '/ as sysdba'
oradebug setmypid
oradebug unlimit;
oradebug dump systemstate 10
oradebug tracefile_name


SQL> o radebug setmypid
Statement processed.
SQL> oradebug unlimit
Statement processed.
SQL> oradebug dump systemstate 10
Statement processed.
SQL> oradebug tracefile_name
/u01/app/oracle/admin/emrep/udump/emrep_ora_5112.trc
SQL> oradebug help


3、如果还不行可以使用pstack把堆栈信息取出来,另外也可以使用truss, tusc 之类的工具看看到底在等什么



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值