我是靠谱客的博主 文艺服饰,这篇文章主要介绍gdb调试之--read by other session 等待事件的重现,现在分享给大家,希望可以做个参考。

        gdb调试之--read by other session 等待事件的重现       

        分类:            Oracle Debug 290人阅读 评论(0) 收藏 举报

转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/18461845

     发生read by other session 等待事件,肯定是两个会话同时物理读同一个数据块,假设有两个会话,会话1发生物理读,会话2正要去物理读发现会话1正在物读理产生,此时会话2发生等待,此等待就是read by other session 等待事件。


实验步骤如下:
1、开会话1,先查出会话1的进程号7376

[html] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. gyj@OCM> select spid from v$session s,v$process p where s.paddr=p.addr and sid in(select distinct sid from v$mystat); 
  2.  
  3. SPID 
  4. ------------------------ 
  5. 7376 
复制代码
1
2
3
4
5
gyj@OCM> select spid from v$session s,v$process p where s.paddr=p.addr and sid in(select distinct sid from v$mystat); SPID ------------------------ 7376


2、刷新buffer cache,目的就是让select发生物理读

[html] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. gyj@OCM> alter system flush buffer_cache; 
  2.  
  3. System altered. 
复制代码
1
2
3
gyj@OCM> alter system flush buffer_cache; System altered.


3、通过进程号7376,打开gdb

[html] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. [oracle@mydb ~]$ gdb $ORACLE_HOME/bin/oracle 7376 
  2. GNU gdb Fedora (6.8-27.el5) 
  3. Copyright (C) 2008 Free Software Foundation, Inc. 
  4. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
  5. This is free software: you are free to change and redistribute it. 
  6. There is NO WARRANTY, to the extent permitted by law.  Type "show copying" 
  7. and "show warranty" for details. 
  8. This GDB was configured as "x86_64-redhat-linux-gnu"... 
  9. (no debugging symbols found) 
  10. Attaching to program: /u01/app/oracle/product/11.2.0/bin/oracle, process 7376 
  11. Reading symbols from /u01/app/oracle/product/11.2.0/lib/libodm11.so...(no debugging symbols found)...done. 
  12. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libodm11.so 
  13. Reading symbols from /u01/app/oracle/product/11.2.0/lib/libcell11.so...done. 
  14. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libcell11.so 
  15. Reading symbols from /u01/app/oracle/product/11.2.0/lib/libskgxp11.so...done. 
  16. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libskgxp11.so 
  17. Reading symbols from /lib64/librt.so.1...done. 
  18. Loaded symbols for /lib64/librt.so.1 
  19. Reading symbols from /u01/app/oracle/product/11.2.0/lib/libnnz11.so...done. 
  20. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libnnz11.so 
  21. Reading symbols from /u01/app/oracle/product/11.2.0/lib/libclsra11.so...done. 
  22. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libclsra11.so 
  23. Reading symbols from /u01/app/oracle/product/11.2.0/lib/libdbcfg11.so...done. 
  24. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libdbcfg11.so 
  25. Reading symbols from /u01/app/oracle/product/11.2.0/lib/libhasgen11.so...done. 
  26. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libhasgen11.so 
  27. Reading symbols from /u01/app/oracle/product/11.2.0/lib/libskgxn2.so...done. 
  28. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libskgxn2.so 
  29. Reading symbols from /u01/app/oracle/product/11.2.0/lib/libocr11.so...done. 
  30. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libocr11.so 
  31. Reading symbols from /u01/app/oracle/product/11.2.0/lib/libocrb11.so...done. 
  32. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libocrb11.so 
  33. Reading symbols from /u01/app/oracle/product/11.2.0/lib/libocrutl11.so...done. 
  34. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libocrutl11.so 
  35. Reading symbols from /usr/lib64/libaio.so.1...done. 
  36. Loaded symbols for /usr/lib64/libaio.so.1 
  37. Reading symbols from /lib64/libdl.so.2...done. 
  38. Loaded symbols for /lib64/libdl.so.2 
  39. Reading symbols from /lib64/libm.so.6...done. 
  40. Loaded symbols for /lib64/libm.so.6 
  41. Reading symbols from /lib64/libpthread.so.0...done. 
  42. [Thread debugging using libthread_db enabled] 
  43. [New Thread 0x2b0b8fef0910 (LWP 7376)] 
  44. Loaded symbols for /lib64/libpthread.so.0 
  45. Reading symbols from /lib64/libnsl.so.1...done. 
  46. Loaded symbols for /lib64/libnsl.so.1 
  47. Reading symbols from /lib64/libc.so.6...done. 
  48. Loaded symbols for /lib64/libc.so.6 
  49. Reading symbols from /lib64/ld-linux-x86-64.so.2...done. 
  50. Loaded symbols for /lib64/ld-linux-x86-64.so.2 
  51. Reading symbols from /usr/lib64/libnuma.so.1...done. 
  52. Loaded symbols for /usr/lib64/libnuma.so.1 
  53. Reading symbols from /lib64/libnss_files.so.2...done. 
  54. Loaded symbols for /lib64/libnss_files.so.2 
  55. Reading symbols from /u01/app/oracle/product/11.2.0/lib/libnque11.so...done. 
  56. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libnque11.so 
  57. 0x0000003f0d40d290 in __read_nocancel () from /lib64/libpthread.so.0 
  58. (gdb)  
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
[oracle@mydb ~]$ gdb $ORACLE_HOME/bin/oracle 7376 GNU gdb Fedora (6.8-27.el5) Copyright (C) 2008 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"... (no debugging symbols found) Attaching to program: /u01/app/oracle/product/11.2.0/bin/oracle, process 7376 Reading symbols from /u01/app/oracle/product/11.2.0/lib/libodm11.so...(no debugging symbols found)...done. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libodm11.so Reading symbols from /u01/app/oracle/product/11.2.0/lib/libcell11.so...done. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libcell11.so Reading symbols from /u01/app/oracle/product/11.2.0/lib/libskgxp11.so...done. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libskgxp11.so Reading symbols from /lib64/librt.so.1...done. Loaded symbols for /lib64/librt.so.1 Reading symbols from /u01/app/oracle/product/11.2.0/lib/libnnz11.so...done. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libnnz11.so Reading symbols from /u01/app/oracle/product/11.2.0/lib/libclsra11.so...done. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libclsra11.so Reading symbols from /u01/app/oracle/product/11.2.0/lib/libdbcfg11.so...done. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libdbcfg11.so Reading symbols from /u01/app/oracle/product/11.2.0/lib/libhasgen11.so...done. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libhasgen11.so Reading symbols from /u01/app/oracle/product/11.2.0/lib/libskgxn2.so...done. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libskgxn2.so Reading symbols from /u01/app/oracle/product/11.2.0/lib/libocr11.so...done. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libocr11.so Reading symbols from /u01/app/oracle/product/11.2.0/lib/libocrb11.so...done. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libocrb11.so Reading symbols from /u01/app/oracle/product/11.2.0/lib/libocrutl11.so...done. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libocrutl11.so Reading symbols from /usr/lib64/libaio.so.1...done. Loaded symbols for /usr/lib64/libaio.so.1 Reading symbols from /lib64/libdl.so.2...done. Loaded symbols for /lib64/libdl.so.2 Reading symbols from /lib64/libm.so.6...done. Loaded symbols for /lib64/libm.so.6 Reading symbols from /lib64/libpthread.so.0...done. [Thread debugging using libthread_db enabled] [New Thread 0x2b0b8fef0910 (LWP 7376)] Loaded symbols for /lib64/libpthread.so.0 Reading symbols from /lib64/libnsl.so.1...done. Loaded symbols for /lib64/libnsl.so.1 Reading symbols from /lib64/libc.so.6...done. Loaded symbols for /lib64/libc.so.6 Reading symbols from /lib64/ld-linux-x86-64.so.2...done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Reading symbols from /usr/lib64/libnuma.so.1...done. Loaded symbols for /usr/lib64/libnuma.so.1 Reading symbols from /lib64/libnss_files.so.2...done. Loaded symbols for /lib64/libnss_files.so.2 Reading symbols from /u01/app/oracle/product/11.2.0/lib/libnque11.so...done. Loaded symbols for /u01/app/oracle/product/11.2.0/lib/libnque11.so 0x0000003f0d40d290 in __read_nocancel () from /lib64/libpthread.so.0 (gdb)


4、在会话1,执行select语句,此时select被阻塞

[html] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. gyj@OCM> select * from gyj_test where id=1
复制代码
1
gyj@OCM> select * from gyj_test where id=1;


5、在gdb设断点,用等待事件的函数,并运行

[html] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. (gdb) b kslwtbctx 
  2. Breakpoint 1 at 0x8f9a5c2 
  3. (gdb) c 
  4. Continuing. 
复制代码
1
2
3
4
(gdb) b kslwtbctx Breakpoint 1 at 0x8f9a5c2 (gdb) c Continuing.


6、查等待事件kslwtbctx函数的第一个参数,用命令info all-register显示寄存器

[html] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. (gdb) info all-register 
  2. rax            0x62657100       1650815232 
  3. rbx            0x15c    348 
  4. rcx            0x0      0 
  5. rdx            0x1      1 
  6. rsi            0x7a59   31321 
  7. rdi            0x7fff1c576d40   140733668879680 
  8. rbp            0x7fff1c576ce0   0x7fff1c576ce0 
  9. rsp            0x7fff1c576ce0   0x7fff1c576ce0 
  10. r8             0x2      2 
  11. r9             0x25     37 
  12. r10            0x7      7 
  13. r11            0x0      0 
  14. r12            0x0      0 
  15. r13            0xbb0c348        196133704 
  16. r14            0xbb09d40        196123968 
  17. r15            0x1      1 
  18. rip            0x8f9a5c2        0x8f9a5c2 <kslwtbctx+4> 
  19. eflags         0x246    [ PF ZF IF ] 
  20. cs             0x33     51 
  21. ss             0x2b     43 
  22. ds             0x0      0 
  23. es             0x0      0 
  24. fs             0x0      0 
  25. gs             0x0      0 
  26. st0            0        (raw 0x00000000000000000000) 
  27. ---Type <return> to continue, or q <return> to quit--- 
  28. st1            0        (raw 0x00000000000000000000) 
  29. st2            0        (raw 0x00000000000000000000) 
  30. st3            0        (raw 0x00000000000000000000) 
  31. st4            0        (raw 0x00000000000000000000) 
  32. st5            0        (raw 0x00000000000000000000) 
  33. st6            73280    (raw 0x400f8f20000000000000) 
  34. st7            73280    (raw 0x400f8f20000000000000) 
  35. fctrl          0x27f    639 
  36. fstat          0x0      0 
  37. ftag           0xffff   65535 
  38. fiseg          0x0      0 
  39. fioff          0x9394e95        154750613 
  40. foseg          0x7fff   32767 
  41. fooff          0x1c573f50       475479888 
  42. fop            0x0      0 
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
(gdb) info all-register rax 0x62657100 1650815232 rbx 0x15c 348 rcx 0x0 0 rdx 0x1 1 rsi 0x7a59 31321 rdi 0x7fff1c576d40 140733668879680 rbp 0x7fff1c576ce0 0x7fff1c576ce0 rsp 0x7fff1c576ce0 0x7fff1c576ce0 r8 0x2 2 r9 0x25 37 r10 0x7 7 r11 0x0 0 r12 0x0 0 r13 0xbb0c348 196133704 r14 0xbb09d40 196123968 r15 0x1 1 rip 0x8f9a5c2 0x8f9a5c2 <kslwtbctx+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) ---Type <return> to continue, or q <return> to quit--- st1 0 (raw 0x00000000000000000000) st2 0 (raw 0x00000000000000000000) st3 0 (raw 0x00000000000000000000) st4 0 (raw 0x00000000000000000000) st5 0 (raw 0x00000000000000000000) st6 73280 (raw 0x400f8f20000000000000) st7 73280 (raw 0x400f8f20000000000000) fctrl 0x27f 639 fstat 0x0 0 ftag 0xffff 65535 fiseg 0x0 0 fioff 0x9394e95 154750613 foseg 0x7fff 32767 fooff 0x1c573f50 475479888 fop 0x0 0


7、找到第一个参数
rdi            0x7fff1c576d40

8、用x/32命令查内存中32个字节

[html] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. gdb) x/32 0x7fff1c576d40 
  2. 0x7fff1c576d40: 0x1c577a59      0x00007fff      0x1c576e50      0x00007fff 
  3. 0x7fff1c576d50: 0x1c576ee0      0x00007fff      0x0918adf2      0x00000000 
  4. 0x7fff1c576d60: 0x00000000      0x00000000      0x00000000      0x00000000 
  5. 0x7fff1c576d70: 0x00000000      0x00000001      0x00000000      0x00000000 
  6. 0x7fff1c576d80: 0x002adb17      0x00000000      0x00000000      0x00000000 
  7. 0x7fff1c576d90: 0x00000000      0x00000000      0x00000001      0x00000000 
  8. 0x7fff1c576da0: 0x09b958cc      0x00000000      0x0000015c      0x00000000 
  9. 0x7fff1c576db0: 0x7fffffff      0x00000000      0x62657100      0x00000000 
复制代码
1
2
3
4
5
6
7
8
9
gdb) x/32 0x7fff1c576d40 0x7fff1c576d40: 0x1c577a59 0x00007fff 0x1c576e50 0x00007fff 0x7fff1c576d50: 0x1c576ee0 0x00007fff 0x0918adf2 0x00000000 0x7fff1c576d60: 0x00000000 0x00000000 0x00000000 0x00000000 0x7fff1c576d70: 0x00000000 0x00000001 0x00000000 0x00000000 0x7fff1c576d80: 0x002adb17 0x00000000 0x00000000 0x00000000 0x7fff1c576d90: 0x00000000 0x00000000 0x00000001 0x00000000 0x7fff1c576da0: 0x09b958cc 0x00000000 0x0000015c 0x00000000 0x7fff1c576db0: 0x7fffffff 0x00000000 0x62657100 0x00000000


9、找到0x0000015c,通过此等待事件号,找等待事件

[html] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. gyj@OCM> select  name from v$event_name where event# in(select to_number('15c','xxxxxxxxxxxxxx') from dual); 
  2.  
  3.  
  4. NAME 
  5. ---------------------------------------------------------------- 
  6. SQL*Net message to client 
复制代码
1
2
3
4
5
6
gyj@OCM> select name from v$event_name where event# in(select to_number('15c','xxxxxxxxxxxxxx') from dual); NAME ---------------------------------------------------------------- SQL*Net message to client


10、重复第5、6、7、8、9步(注用从第5步的c命令开始)

[html] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. (gdb) c 
  2. Continuing. 
  3.  
  4. Breakpoint 1, 0x0000000008f9a5c2 in kslwtbctx () 
  5. (gdb) info all-register 
  6. rax            0x0      0 
  7. rbx            0x2000   8192 
  8. rcx            0x0      0 
  9. rdx            0x0      0 
  10. rsi            0x0      0 
  11. rdi            0x7fff1c574c38   140733668871224 
  12. rbp            0x7fff1c574970   0x7fff1c574970 
  13. rsp            0x7fff1c574970   0x7fff1c574970 
  14. r8             0x5bbb295        96187029 
  15. r9             0x2f8b5f0        49853936 
  16. r10            0x52da848e       1390052494 
  17. r11            0x2b0b9057e7a8   47328666314664 
  18. r12            0x99837da8       2575531432 
  19. r13            0x0      0 
  20. r14            0x0      0 
  21. r15            0x99437498       2571334808 
  22. rip            0x8f9a5c2        0x8f9a5c2 <kslwtbctx+4> 
  23. eflags         0x246    [ PF ZF IF ] 
  24. cs             0x33     51 
  25. ss             0x2b     43 
  26. ds             0x0      0 
  27. es             0x0      0 
  28. fs             0x0      0 
  29. gs             0x0      0 
  30. st0            0        (raw 0x00000000000000000000) 
  31. ---Type <return> to continue, or q <return> to quit--- 
  32. st1            0        (raw 0x00000000000000000000) 
  33. st2            0        (raw 0x00000000000000000000) 
  34. st3            0        (raw 0x00000000000000000000) 
  35. st4            0        (raw 0x00000000000000000000) 
  36. st5            0        (raw 0x00000000000000000000) 
  37. st6            73280    (raw 0x400f8f20000000000000) 
  38. st7            73280    (raw 0x400f8f20000000000000) 
  39. fctrl          0x27f    639 
  40. fstat          0x0      0 
  41. ftag           0xffff   65535 
  42. fiseg          0x0      0 
  43. fioff          0x9394e95        154750613 
  44. foseg          0x7fff   32767 
  45. fooff          0x1c573f50       475479888 
  46. fop            0x0      0 
  47. xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,  
  48.     0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000
  49. xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,  
  50.     0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000
  51. xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,  
  52.     0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000
  53. xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x54, 0x3, 0x1, 0x0, 0x0, 0x0, 0x0,  
  54.     0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x354, 0x1, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x10354, 0x0, 0x0}, v2_int64 = { 
  55.     0x1035400000000, 0x0}, uint128 = 0x00000000000000000001035400000000
  56. xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x64, 0x0 <repeats 15 times>}, v8_int16 = {0x64, 0x0,  
  57. ---Type <return> to continue, or q <return> to quit--- 
  58.     0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x64, 0x0, 0x0, 0x0}, v2_int64 = {0x64, 0x0}, uint128 = 0x00000000000000000000000000000064
  59. xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x32, 0xa3, 0xd7, 0x2, 0x0 <repeats 12 times>},  
  60.   v8_int16 = {0xa332, 0x2d7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x2d7a332, 0x0, 0x0, 0x0}, v2_int64 = {0x2d7a332, 0x0},  
  61.   uint128 = 0x00000000000000000000000002d7a332
  62. xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,  
  63.     0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000
  64. xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0xda, 0x87, 0xd7, 0x2, 0x0 <repeats 12 times>},  
  65.   v8_int16 = {0x87da, 0x2d7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x2d787da, 0x0, 0x0, 0x0}, v2_int64 = {0x2d787da, 0x0},  
  66.   uint128 = 0x00000000000000000000000002d787da
  67. xmm8           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,  
  68.     0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000
  69. xmm9           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,  
  70.     0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000
  71. xmm10          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,  
  72.     0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000
  73. xmm11          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,  
  74.     0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000
  75. xmm12          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x18, 0xe, 0x73, 0x90, 0xb, 0x2b, 0x0, 0x0, 0x0, 0x0,  
  76.     0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xe18, 0x9073, 0x2b0b, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x90730e18, 0x2b0b, 0x0, 0x0},  
  77.   v2_int64 = {0x2b0b90730e18, 0x0}, uint128 = 0x000000000000000000002b0b90730e18
  78. xmm13          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,  
  79.     0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000
  80. xmm14          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,  
  81.     0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000
  82. xmm15          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,  
  83. ---Type <return> to continue, or q <return> to quit--- 
  84.     0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000
  85. mxcsr          0x1fa1   [ IE PE IM DM ZM OM UM PM ] 
  86. (gdb)  
  87. (gdb) x/32 0x7fff1c574c38 
  88. 0x7fff1c574c38: 0x08f97a59      0x00000000      0x9079c6d8      0x00002b0b 
  89. 0x7fff1c574c48: 0x90742970      0x00002b0b      0x9079c748      0x00002b0b 
  90. 0x7fff1c574c58: 0x1c574df0      0x00007fff      0x9079c748      0x00002b0b 
  91. 0x7fff1c574c68: 0x9079c6d8      0x00002b0b      0x00000000      0x00000000 
  92. 0x7fff1c574c78: 0x00000000      0x00000000      0x00000013      0x20000000 
  93. 0x7fff1c574c88: 0x00000000      0x00000000      0x00000001      0x00000000 
  94. 0x7fff1c574c98: 0x0a0fcd50      0x00000000      0x00000092      0x00000000 
  95. 0x7fff1c574ca8: 0x7fffffff      0x00000000      0x00000006      0x00000000 
  96. (gdb)  
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
(gdb) c Continuing. Breakpoint 1, 0x0000000008f9a5c2 in kslwtbctx () (gdb) info all-register rax 0x0 0 rbx 0x2000 8192 rcx 0x0 0 rdx 0x0 0 rsi 0x0 0 rdi 0x7fff1c574c38 140733668871224 rbp 0x7fff1c574970 0x7fff1c574970 rsp 0x7fff1c574970 0x7fff1c574970 r8 0x5bbb295 96187029 r9 0x2f8b5f0 49853936 r10 0x52da848e 1390052494 r11 0x2b0b9057e7a8 47328666314664 r12 0x99837da8 2575531432 r13 0x0 0 r14 0x0 0 r15 0x99437498 2571334808 rip 0x8f9a5c2 0x8f9a5c2 <kslwtbctx+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) ---Type <return> to continue, or q <return> to quit--- st1 0 (raw 0x00000000000000000000) st2 0 (raw 0x00000000000000000000) st3 0 (raw 0x00000000000000000000) st4 0 (raw 0x00000000000000000000) st5 0 (raw 0x00000000000000000000) st6 73280 (raw 0x400f8f20000000000000) st7 73280 (raw 0x400f8f20000000000000) fctrl 0x27f 639 fstat 0x0 0 ftag 0xffff 65535 fiseg 0x0 0 fioff 0x9394e95 154750613 foseg 0x7fff 32767 fooff 0x1c573f50 475479888 fop 0x0 0 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} 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 = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x54, 0x3, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x354, 0x1, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x10354, 0x0, 0x0}, v2_int64 = { 0x1035400000000, 0x0}, uint128 = 0x00000000000000000001035400000000} xmm4 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x64, 0x0 <repeats 15 times>}, v8_int16 = {0x64, 0x0, ---Type <return> to continue, or q <return> to quit--- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x64, 0x0, 0x0, 0x0}, v2_int64 = {0x64, 0x0}, uint128 = 0x00000000000000000000000000000064} xmm5 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x32, 0xa3, 0xd7, 0x2, 0x0 <repeats 12 times>}, v8_int16 = {0xa332, 0x2d7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x2d7a332, 0x0, 0x0, 0x0}, v2_int64 = {0x2d7a332, 0x0}, uint128 = 0x00000000000000000000000002d7a332} 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 = {0xda, 0x87, 0xd7, 0x2, 0x0 <repeats 12 times>}, v8_int16 = {0x87da, 0x2d7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x2d787da, 0x0, 0x0, 0x0}, v2_int64 = {0x2d787da, 0x0}, uint128 = 0x00000000000000000000000002d787da} xmm8 {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} xmm9 {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} 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 = {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} xmm12 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x18, 0xe, 0x73, 0x90, 0xb, 0x2b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xe18, 0x9073, 0x2b0b, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x90730e18, 0x2b0b, 0x0, 0x0}, v2_int64 = {0x2b0b90730e18, 0x0}, uint128 = 0x000000000000000000002b0b90730e18} 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, 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} xmm15 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, ---Type <return> to continue, or q <return> to quit--- 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} mxcsr 0x1fa1 [ IE PE IM DM ZM OM UM PM ] (gdb) (gdb) x/32 0x7fff1c574c38 0x7fff1c574c38: 0x08f97a59 0x00000000 0x9079c6d8 0x00002b0b 0x7fff1c574c48: 0x90742970 0x00002b0b 0x9079c748 0x00002b0b 0x7fff1c574c58: 0x1c574df0 0x00007fff 0x9079c748 0x00002b0b 0x7fff1c574c68: 0x9079c6d8 0x00002b0b 0x00000000 0x00000000 0x7fff1c574c78: 0x00000000 0x00000000 0x00000013 0x20000000 0x7fff1c574c88: 0x00000000 0x00000000 0x00000001 0x00000000 0x7fff1c574c98: 0x0a0fcd50 0x00000000 0x00000092 0x00000000 0x7fff1c574ca8: 0x7fffffff 0x00000000 0x00000006 0x00000000 (gdb)



11、找到0x00000092,通过此等待事件号,找等待事件0x00000092

[html] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. gyj@OCM> gyj@OCM> select  name from v$event_name where event# in(select to_number('92','xxxxxxxxxxxxxx') from dual); 
  2.  
  3.  
  4. NAME 
  5. ---------------------------------------------------------------- 
  6. db file sequential read 
复制代码
1
2
3
4
5
6
gyj@OCM> gyj@OCM> select name from v$event_name where event# in(select to_number('92','xxxxxxxxxxxxxx') from dual); NAME ---------------------------------------------------------------- db file sequential read

说明此时会话1发生了物理读(db file sequential read等待事件你懂我)



12、打开会话2(此会话2号的SID=146),并在会话2执行SELECT语句,此时SELECT也被阻塞了

[html] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. gyj@OCM> select sid from v$mystat where rownum=1
  2.  
  3.        SID 
  4. ---------- 
  5.        146 
  6.  
  7. gyj@OCM> select * from gyj_test where id=1
复制代码
1
2
3
4
5
6
7
gyj@OCM> select sid from v$mystat where rownum=1; SID ---------- 146 gyj@OCM> select * from gyj_test where id=1;


13、打开一个会话3,看会话2(此会话2号的SID=146)的等待事件

[html] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. sys@OCM> select sid ,event from v$session_wait where sid=146 and wait_class<>'Idle'; 
  2.  
  3.        SID EVENT 
  4. ---------- ---------------------------------------------------------------- 
  5.        146 read by other session 
复制代码
1
2
3
4
5
6
sys@OCM> select sid ,event from v$session_wait where sid=146 and wait_class<>'Idle'; SID EVENT ---------- ---------------------------------------------------------------- 146 read by other session


哈哈。。。终于发现了read by other session等待事件,以后可以用同样的方法去研究其它等待事件!


QQ:252803295

技术交流QQ群:
DSI&Core Search  Ⅰ 群:127149411(2000人技术群:未满)
DSI&Core Search  Ⅱ 群:177089463(1000人技术群:未满)
DSI&Core Search  Ⅲ 群:284596437(500人技术群:未满)
DSI&Core Search  Ⅳ 群:192136702(500人技术群:未满)
DSI&Core Search  Ⅴ 群:285030382(500人闲聊群:未满)


MAIL:dbathink@hotmail.com

BLOG: http://blog.csdn.net/guoyjoe

WEIBO:http://weibo.com/guoyJoe0218

ITPUB: http://www.itpub.net/space-uid-28460966.html

OCM:   http://education.oracle.com/education/otn/YGuo.HTM

ACONG: http://www.acoug.org/category/membership



更多 0

最后

以上就是文艺服饰最近收集整理的关于gdb调试之--read by other session 等待事件的重现的全部内容,更多相关gdb调试之--read内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部