Introduction
~~~~~~~~~~~~
This short article explains how to disassemble code on
various Unix machines , generally from the “oracle” executable.
Typically this may be needed to help progress an ORA-7445 or
core dump issue in order to help confirm the exact code which is
failing.
You should have been given the name of the executable and
the name/s of functions for which disassembly is required.
See Note:211909.1 for an introduction to ORA-7445 errors.
Typically for ORA-7445 type errors the disassembly required
is for the top 2 or 3 significant functions in the call stack.
Why might disassembly output be needed ?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Although the exact version and patch information should identify
the exact code in use at the time of a problem the disassembly
output can be helpful for several reasons:
- Sometimes patches thought to be applied are not
installed correctly and so the executing code is not
exactly what is expected.
- On older versions of Oracle there was no proper
mechanism to track which patches were applied
- Some patches are superceded by slightly modified
versions and so installed code may differ from
current copies.
- Some combinations of code / patches may take time
set up inside Oracle . In cases where the disassembly
is needed to help progress an issue this can add
needless delay given that the exact code combination
is already in use at the customer site.
Obtaining disassembly output
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
It is important the the executable in use at the time of the
problem is used or false assumptions may be taken. Hence it is
usually best to obtain disassembly data as close to any problem
as possible.
1) Determine which disassembler exists on your machine from the
table below.
2) Given an executable name “exec” and a function name “func”
use the relevant instructions to get the disassebled output
thus:
script _.asm
Use the relevant debugger commands here
Exit the debugger
exit
Repeat the above for each function for which disassembly
is required. This helps to keep each disassembled funtion
in its own file.
Table of debuggers and disassembly instructions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Command NB Exit command Disassembly commands
——- — ———— ——————-
dbx (Solaris) quit dis
dis +
dbx (AIX) quit & /1000i
./1000i
gdb (HPUX/Linux) quit set pagination off
disassemble
ladebug (Tru64) quit &/1000i
# keep pressing
adb $q (or Ctrl-D) ?i
# keep pressing
mdb (Solaris) $q ?i
# keep entering “+/i”
Example commands to disassemble “ksedmp” in “oracle”:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
***********************************************************
NOTE that these are EXAMPLES for disassembling “ksedmp”.
You should replace “ksedmp” with the function name
that you want to disassemble.
eg: If asked to disassemble opifch then replace “ksedmp”
in the examples below with “opifch”.
***********************************************************
DBX on Solaris:
~~~~~~~~~~~~~~~
$ script /tmp/oracle_ksedmp.asm
$ dbx $ORACLE_HOME/bin/oracle
(dbx) dis ksedmp /1000
0x001b1388: ksedmp : save %sp, -0xe8, %sp
0x001b138c: ksedmp+0×0004: call kslcvt
…
( if the output function name has not changed in the output
then enter “dis + /1000″ until the output changes to be
disassembly for a different function.
eg: )
(dbx) dis +
…
0x001b2304: ksedst+0x02b8: add %g3, %g2, %g2
(dbx) quit
$ exit
DBX on AIX:
~~~~~~~~~~~~~~~
$ script /tmp/oracle_ksedmp.asm
$ dbx $ORACLE_HOME/bin/oracle
(dbx) &ksedmp /1000i
0x1000b5f0c (ksedmp) 7c0802a6 mflr r0
0x1000b5f10 (ksedmp+0×4) fbc1fff0 std r30,-16(r1)
…
( if the output function name has not changed in the output
then enter “. /1000i” until the output changes to be
disassembly for a different function.
eg: )
(dbx) ./1000i
…
0x1000b6ef8 (ksefic+0x6c) 38630070 addi r3,0×70(r3)
(dbx) quit
$ exit
GDB:
~~~~~
$ script /tmp/oracle_ksedmp.asm
$ gdb $ORACLE_HOME/bin/oracle
(gdb) set pagination off
(gdb) disassemble ksedmp
0x082b5f8a : push %ebp
0x082b5f8b : mov %esp,%ebp
…
( if pagination did not disable then you may need to press
return several times here )
(gdb) quit
$ exit
ADB:
~~~~~
(NOTE: Most versions of adb give no command prompt so just type in
the commands shown after the (adb) example prompt below )
$ script /tmp/oracle_ksedmp.asm
$ adb $ORACLE_HOME/bin/oracle
(adb) ksedmp?i
ksedmp:
ksedmp: save %sp, -0x1a0, %sp
( Keep pressing return until the leading function name
changes. This is preferable to using func/1000i or similar
as giving a count in that form does not show the offset
of each assembly instruction in most versions of adb
which makes the output hard to use. Pressing return
continually gets function + offset information for each
instruction )
(adb) $q
$ exit
LADEBUG :
~~~~~~~~~
$ script /tmp/oracle_ksedmp.asm
$ ladebug $ORACLE_HOME/bin/oracle
(ladebug) &ksedmp /20i
ksedmp(void): kse.c
[line 2093, 0x121108fd0] ldah gp, 7967(r27)
[line 2093, 0x121108fd4] ldq_u r31, 0(sp)
…
( You probably have to press return after each pages.
Watch the output for a new function name occuring
and interrupt when seen. If more output is needed
now the last address and then ADDR/1000i again.
eg:
)
[line 2255, 0x121109480] …
(ladebug) 0×121109484/1000i
…
(ladebug) quit
$ exit
MDB:
~~~~~
(The mdb prompt is typically a “>” )
$ script /tmp/oracle_ksedmp.asm
$ mdb $ORACLE_HOME/bin/oracle
> ksedmp?i
ksedmp:
ksedmp: cmp %o0, 0x3e8
> +?i
ksedmp+4: bcs,pn %icc,+0×28
> +?i
ksedmp+8: mov 2, %o5
( Keep entering “+?i” until the leading function name
changes. This is preferable to using “func?1000i” or similar
as giving a count in that form does not show the offset
of each assembly instruction which makes the output hard to use.
Entering “+?i” continually gets function + offset information
for each instruction )
> $q
$ exit
~~~~~
Assuming this worked then the disassembly should be shown in the
file ‘/tmp/oracle_ksedmp.asm’. Upload all of the disassembled
output to Oracle Support along with any other information requested.
Common reasons for problems disassembling
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Stripped Executable
Some program executables are stripped of symbol information.
In this case some of the functions asked for may not have
symbol information in the executable itself.
If “file executable” shows the word ‘stripped’ or ‘nm executable’
shows no output then it is likely that the executable is stripped
of symbolic information.
In this case the problem tool must be relinked without being
stripped – on most Unix platforms this involves ensuring there is
no ‘-s’ option on the link line. Contact Oracle Support with
details of the link line used to link the tool.
Function is in a shared library
In some cases the function to be disassembled may be in a
shared library and so is not available by attaching a
debugger to the oracle executable. In many cases the
library can be mapped and made available by setting a
breakpoint in “main” and then running the oracle executable -
execution should stop as soon as main() is entered and
usually the shared library will then be mapped to allow
disassembly.
eg: In dbx
dbx $ORACLE_HOME/bin/oracle
stop in main
run
^ debugger stops again quickly. Then continue
with the disassembly commands.
In gdb
gdb $ORACLE_HOME/bin/oracle
break main
run
^ debugger stops again quickly. Then continue
with the disassembly commands.
In adb
adb $ORACLE_HOME/bin/oracle
main:b
:r
^ debugger should stop here. Then continue
with disassembly commands.
If the disassembly commands still do
not seem to work try “func/i” instead of
“func?i” . ie: Change the “?” in the
commands to a “/”.
In mdb
mdb $ORACLE_HOME/bin/oracle
main:b
:r
^ debugger should stop here. Then continue
with disassembly commands.
If the disassembly commands still do
not seem to work try “func/i” instead of
“func?i” and “+/i” instead of “+?i” .
ie: Change the “?” in the commands to a “/”
for instance on linux , disassembling function ksmdscan(one of the kernel service memory function):
[appl@rh2 ~]$ script oracle_ksmdscan
Script started, file is oracle_ksmdscan
[appl@rh2 ~]$ source 102.sh
[appl@rh2 ~]$ gdb /d01/10204/bin/ora
oracg oracle oracleO oradism oradismO oraenv orajaxb orapipe orapki orapwd orapwdO oratclsh oraxml oraxsl
[appl@rh2 ~]$ gdb /d01/10204/bin/oracle
GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-23.el5)
Copyright (C) 2009 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/>…
Reading symbols from /d01/10204/bin/oracle…(no debugging symbols found)…done.
(gdb) set pagination off
(gdb) disassemble ksmdscan
Dump of assembler code for function ksmdscan:
0×0000000001254940 <ksmdscan+0>: push %rbp
0×0000000001254941 <ksmdscan+1>: mov %rsp,%rbp
0×0000000001254944 <ksmdscan+4>: sub $0×20,%rsp
0×0000000001254948 <ksmdscan+8>: mov %r12,-0×10(%rbp)
0x000000000125494c <ksmdscan+12>: mov 0×8(%rdi),%r11
0×0000000001254950 <ksmdscan+16>: mov 0×10(%rsi),%rdi
0×0000000001254954 <ksmdscan+20>: mov $0×1,%r12d
0x000000000125495a <ksmdscan+26>: xor %eax,%eax
0x000000000125495c <ksmdscan+28>: mov $0×1,%r8d
0×0000000001254962 <ksmdscan+34>: cmp $0×0,%rdi
0×0000000001254966 <ksmdscan+38>: mov $0×0,%r9d
0x000000000125496c <ksmdscan+44>: cmovne %r8d,%r9d
0×0000000001254970 <ksmdscan+48>: mov %rbx,-0×8(%rbp)
0×0000000001254974 <ksmdscan+52>: test %r9d,%r9d
0×0000000001254977 <ksmdscan+55>: je 0x1254bf5 <ksmdscan+693>
0x000000000125497d <ksmdscan+61>: mov (%rdi),%r10
0×0000000001254980 <ksmdscan+64>: mov 0×8(%r10),%rbx
0×0000000001254984 <ksmdscan+68>: mov 0×10(%rdi),%edi
0×0000000001254987 <ksmdscan+71>: mov 0×34(%r11),%ecx
0x000000000125498b <ksmdscan+75>: lea 0xc8(%r11),%r9
0×0000000001254992 <ksmdscan+82>: mov $0×1,%r8d
0×0000000001254998 <ksmdscan+88>: cmp %r9,%rbx
0x000000000125499b <ksmdscan+91>: mov $0×0,%r9d
0x00000000012549a1 <ksmdscan+97>: cmove %r8d,%r9d
0x00000000012549a5 <ksmdscan+101>: mov 0×38(%r11),%r8d
0x00000000012549a9 <ksmdscan+105>: and %edi,%r8d
0x00000000012549ac <ksmdscan+108>: shr %cl,%edi
0x00000000012549ae <ksmdscan+110>: test %r9d,%r9d
0x00000000012549b1 <ksmdscan+113>: je 0x1254be9 <ksmdscan+681>
0x00000000012549b7 <ksmdscan+119>: test %rbx,%rbx
0x00000000012549ba <ksmdscan+122>: je 0x1254a1c <ksmdscan+220>
0x00000000012549bc <ksmdscan+124>: mov %r13,-0×18(%rbp)
0x00000000012549c0 <ksmdscan+128>: and $0×1,%edx
0x00000000012549c3 <ksmdscan+131>: test %r10,%r10
0x00000000012549c6 <ksmdscan+134>: je 0x1254c04 <ksmdscan+708>
0x00000000012549cc <ksmdscan+140>: test %r12d,%r12d
0x00000000012549cf <ksmdscan+143>: jne 0x1254bd1 <ksmdscan+657>
0x00000000012549d5 <ksmdscan+149>: mov %r8d,%r13d
0x00000000012549d8 <ksmdscan+152>: shr $0×3,%r13d
0x00000000012549dc <ksmdscan+156>: movzbl 0×10(%r13,%r10,1),%r12d
0x00000000012549e2 <ksmdscan+162>: mov %r8d,%ecx
0x00000000012549e5 <ksmdscan+165>: and $0×7,%ecx
0x00000000012549e8 <ksmdscan+168>: mov $0×1,%r13d
0x00000000012549ee <ksmdscan+174>: shl %cl,%r13d
0x00000000012549f1 <ksmdscan+177>: movzbl %r13b,%r13d
0x00000000012549f5 <ksmdscan+181>: test %r12d,%r13d
0x00000000012549f8 <ksmdscan+184>: je 0x1254be0 <ksmdscan+672>
0x00000000012549fe <ksmdscan+190>: test %edx,%edx
0x0000000001254a00 <ksmdscan+192>: jne 0x1254bc8 <ksmdscan+648>
0x0000000001254a06 <ksmdscan+198>: xor %r12d,%r12d
0x0000000001254a09 <ksmdscan+201>: add $0×1,%r8d
0x0000000001254a0d <ksmdscan+205>: cmp 0×30(%r11),%r8d
0x0000000001254a11 <ksmdscan+209>: jae 0x1254a78 <ksmdscan+312>
0x0000000001254a13 <ksmdscan+211>: test %rbx,%rbx
0x0000000001254a16 <ksmdscan+214>: jne 0x12549c3 <ksmdscan+131>
0x0000000001254a18 <ksmdscan+216>: mov -0×18(%rbp),%r13
0x0000000001254a1c <ksmdscan+220>: test %rbx,%rbx
0x0000000001254a1f <ksmdscan+223>: je 0x1254a74 <ksmdscan+308>
0x0000000001254a21 <ksmdscan+225>: test %r10,%r10
0x0000000001254a24 <ksmdscan+228>: je 0x1254a74 <ksmdscan+308>
0x0000000001254a26 <ksmdscan+230>: mov 0×4(%r10),%eax
0x0000000001254a2a <ksmdscan+234>: mov 0×58(%r11),%rdx
0x0000000001254a2e <ksmdscan+238>: add $0×7,%eax
0x0000000001254a31 <ksmdscan+241>: shr $0×3,%eax
0x0000000001254a34 <ksmdscan+244>: lea 0×17(%r10,%rax,1),%rcx
0x0000000001254a39 <ksmdscan+249>: and $0xfffffffffffffff8,%rcx
0x0000000001254a3d <ksmdscan+253>: mov %r8d,%r8d
0x0000000001254a40 <ksmdscan+256>: add $0x1f,%rdx
0x0000000001254a44 <ksmdscan+260>: and $0xfffffffffffffff8,%rdx
0x0000000001254a48 <ksmdscan+264>: imul %r8,%rdx
0x0000000001254a4c <ksmdscan+268>: add %rdx,%rcx
0x0000000001254a4f <ksmdscan+271>: mov -0×8(%rbp),%rbx
0x0000000001254a53 <ksmdscan+275>: mov -0×10(%rbp),%r12
0x0000000001254a57 <ksmdscan+279>: movl $0×0,(%rsi)
0x0000000001254a5d <ksmdscan+285>: mov %rcx,0×10(%rsi)
0x0000000001254a61 <ksmdscan+289>: lea 0×18(%rcx),%rax
0x0000000001254a65 <ksmdscan+293>: xor %edx,%edx
0x0000000001254a67 <ksmdscan+295>: cmp $0×0,%rcx
0x0000000001254a6b <ksmdscan+299>: cmove %rdx,%rax
0x0000000001254a6f <ksmdscan+303>: mov %rbp,%rsp
0x0000000001254a72 <ksmdscan+306>: pop %rbp
0x0000000001254a73 <ksmdscan+307>: retq
0x0000000001254a74 <ksmdscan+308>: xor %ecx,%ecx
0x0000000001254a76 <ksmdscan+310>: jmp 0x1254a4f <ksmdscan+271>
0x0000000001254a78 <ksmdscan+312>: xor %r8d,%r8d
0x0000000001254a7b <ksmdscan+315>: add $0×1,%edi
0x0000000001254a7e <ksmdscan+318>: test %r9d,%r9d
0x0000000001254a81 <ksmdscan+321>: je 0x1254abb <ksmdscan+379>
0x0000000001254a83 <ksmdscan+323>: mov 0xd0(%r11),%r13d
0x0000000001254a8a <ksmdscan+330>: cmp %r13d,%edi
0x0000000001254a8d <ksmdscan+333>: jae 0x1254bb0 <ksmdscan+624>
0x0000000001254a93 <ksmdscan+339>: cmp 0xcc(%r11),%edi
0x0000000001254a9a <ksmdscan+346>: jae 0x1254ba8 <ksmdscan+616>
0x0000000001254aa0 <ksmdscan+352>: add $0×7,%r13d
0x0000000001254aa4 <ksmdscan+356>: shr $0×3,%r13d
0x0000000001254aa8 <ksmdscan+360>: lea 0xe7(%r11,%r13,1),%r10
0x0000000001254ab0 <ksmdscan+368>: and $0xfffffffffffffff8,%r10
0x0000000001254ab4 <ksmdscan+372>: mov %edi,%r13d
0x0000000001254ab7 <ksmdscan+375>: mov (%r10,%r13,8),%r10
0x0000000001254abb <ksmdscan+379>: test %rbx,%rbx
0x0000000001254abe <ksmdscan+382>: je 0x1254a13 <ksmdscan+211>
0x0000000001254ac4 <ksmdscan+388>: test %r9d,%r9d
0x0000000001254ac7 <ksmdscan+391>: jne 0x1254a13 <ksmdscan+211>
0x0000000001254acd <ksmdscan+397>: test %rbx,%rbx
0x0000000001254ad0 <ksmdscan+400>: je 0x1254af2 <ksmdscan+434>
0x0000000001254ad2 <ksmdscan+402>: mov 0×40(%r11),%r13d
0x0000000001254ad6 <ksmdscan+406>: mov %r14,-0×20(%rbp)
0x0000000001254ada <ksmdscan+410>: mov %r13d,%ecx
0x0000000001254add <ksmdscan+413>: add %eax,%ecx
0x0000000001254adf <ksmdscan+415>: mov %edi,%r14d
0x0000000001254ae2 <ksmdscan+418>: shr %cl,%r14d
0x0000000001254ae5 <ksmdscan+421>: test %r14d,%r14d
0x0000000001254ae8 <ksmdscan+424>: jne 0x1254b88 <ksmdscan+584>
0x0000000001254aee <ksmdscan+430>: mov -0×20(%rbp),%r14
0x0000000001254af2 <ksmdscan+434>: test %rbx,%rbx
0x0000000001254af5 <ksmdscan+437>: je 0x1254b39 <ksmdscan+505>
0x0000000001254af7 <ksmdscan+439>: mov 0xc(%rbx),%r13d
0x0000000001254afb <ksmdscan+443>: cmp $0×1,%r13d
0x0000000001254aff <ksmdscan+447>: jbe 0x1254b39 <ksmdscan+505>
0x0000000001254b01 <ksmdscan+449>: mov %eax,%ecx
0x0000000001254b03 <ksmdscan+451>: mov %edi,%r13d
0x0000000001254b06 <ksmdscan+454>: shr %cl,%r13d
0x0000000001254b09 <ksmdscan+457>: and 0×44(%r11),%r13d
0x0000000001254b0d <ksmdscan+461>: cmp 0×4(%rbx),%r13d
0x0000000001254b11 <ksmdscan+465>: jae 0x1254ba0 <ksmdscan+608>
0x0000000001254b17 <ksmdscan+471>: sub 0×40(%r11),%eax
0x0000000001254b1b <ksmdscan+475>: mov 0×8(%rbx),%ecx
0x0000000001254b1e <ksmdscan+478>: mov %r13d,%r13d
0x0000000001254b21 <ksmdscan+481>: add $0×7,%ecx
0x0000000001254b24 <ksmdscan+484>: shr $0×3,%ecx
0x0000000001254b27 <ksmdscan+487>: lea 0x1f(%rbx,%rcx,1),%rbx
0x0000000001254b2c <ksmdscan+492>: and $0xfffffffffffffff8,%rbx
0x0000000001254b30 <ksmdscan+496>: mov (%rbx,%r13,8),%rbx
0x0000000001254b34 <ksmdscan+500>: test %rbx,%rbx
0x0000000001254b37 <ksmdscan+503>: jne 0x1254af7 <ksmdscan+439>
0x0000000001254b39 <ksmdscan+505>: test %rbx,%rbx
0x0000000001254b3c <ksmdscan+508>: je 0x1254a13 <ksmdscan+211>
0x0000000001254b42 <ksmdscan+514>: mov 0×44(%r11),%r13d
0x0000000001254b46 <ksmdscan+518>: mov %edi,%r10d
0x0000000001254b49 <ksmdscan+521>: and %r13d,%r10d
0x0000000001254b4c <ksmdscan+524>: cmp 0×4(%rbx),%r10d
0x0000000001254b50 <ksmdscan+528>: jb 0x1254b60 <ksmdscan+544>
0x0000000001254b52 <ksmdscan+530>: xor %r10d,%r10d
0x0000000001254b55 <ksmdscan+533>: jmpq 0x1254a13 <ksmdscan+211>
0x0000000001254b5a <ksmdscan+538>: xchg %ax,%ax
0x0000000001254b5d <ksmdscan+541>: xchg %ax,%ax
0x0000000001254b60 <ksmdscan+544>: mov %edi,%r10d
0x0000000001254b63 <ksmdscan+547>: mov %r13d,%r13d
0x0000000001254b66 <ksmdscan+550>: and %r13,%r10
0x0000000001254b69 <ksmdscan+553>: mov 0×8(%rbx),%r13d
0x0000000001254b6d <ksmdscan+557>: add $0×7,%r13d
0x0000000001254b71 <ksmdscan+561>: shr $0×3,%r13d
0x0000000001254b75 <ksmdscan+565>: lea 0x1f(%rbx,%r13,1),%r13
0x0000000001254b7a <ksmdscan+570>: and $0xfffffffffffffff8,%r13
0x0000000001254b7e <ksmdscan+574>: mov 0×0(%r13,%r10,8),%r10
0x0000000001254b83 <ksmdscan+579>: jmpq 0x1254a13 <ksmdscan+211>
0x0000000001254b88 <ksmdscan+584>: mov 0×10(%rbx),%rbx
0x0000000001254b8c <ksmdscan+588>: mov %ecx,%eax
0x0000000001254b8e <ksmdscan+590>: test %rbx,%rbx
0x0000000001254b91 <ksmdscan+593>: jne 0x1254ada <ksmdscan+410>
0x0000000001254b97 <ksmdscan+599>: mov -0×20(%rbp),%r14
0x0000000001254b9b <ksmdscan+603>: jmpq 0x1254af2 <ksmdscan+434>
0x0000000001254ba0 <ksmdscan+608>: xor %ebx,%ebx
0x0000000001254ba2 <ksmdscan+610>: jmp 0x1254b39 <ksmdscan+505>
0x0000000001254ba4 <ksmdscan+612>: xchg %ax,%ax
0x0000000001254ba8 <ksmdscan+616>: xor %r10d,%r10d
0x0000000001254bab <ksmdscan+619>: jmpq 0x1254abb <ksmdscan+379>
0x0000000001254bb0 <ksmdscan+624>: mov 0xc0(%r11),%rbx
0x0000000001254bb7 <ksmdscan+631>: mov 0×40(%r11),%eax
0x0000000001254bbb <ksmdscan+635>: xor %edi,%edi
0x0000000001254bbd <ksmdscan+637>: xor %r9d,%r9d
0x0000000001254bc0 <ksmdscan+640>: jmpq 0x1254abb <ksmdscan+379>
0x0000000001254bc5 <ksmdscan+645>: xchg %ax,%ax
0x0000000001254bc8 <ksmdscan+648>: mov -0×18(%rbp),%r13
0x0000000001254bcc <ksmdscan+652>: jmpq 0x1254a1c <ksmdscan+220>
0x0000000001254bd1 <ksmdscan+657>: cmpl $0×0,(%rsi)
0x0000000001254bd4 <ksmdscan+660>: je 0x1254a06 <ksmdscan+198>
0x0000000001254bda <ksmdscan+666>: jmpq 0x12549d5 <ksmdscan+149>
0x0000000001254bdf <ksmdscan+671>: nop
0x0000000001254be0 <ksmdscan+672>: mov -0×18(%rbp),%r13
0x0000000001254be4 <ksmdscan+676>: jmpq 0x1254a1c <ksmdscan+220>
0x0000000001254be9 <ksmdscan+681>: sub 0xd0(%r11),%edi
0x0000000001254bf0 <ksmdscan+688>: jmpq 0x12549b7 <ksmdscan+119>
0x0000000001254bf5 <ksmdscan+693>: mov -0×8(%rbp),%rbx
0x0000000001254bf9 <ksmdscan+697>: mov -0×10(%rbp),%r12
0x0000000001254bfd <ksmdscan+701>: xor %eax,%eax
0x0000000001254bff <ksmdscan+703>: mov %rbp,%rsp
0x0000000001254c02 <ksmdscan+706>: pop %rbp
0x0000000001254c03 <ksmdscan+707>: retq
0x0000000001254c04 <ksmdscan+708>: mov -0×18(%rbp),%r13
0x0000000001254c08 <ksmdscan+712>: jmpq 0x1254a1c <ksmdscan+220>
0x0000000001254c0d <ksmdscan+717>: xchg %ax,%ax
End of assembler dump.
© 2010, www.oracledatabase12g.com. 版权所有.文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.
相关文章 | Related posts:
- Oracle Database on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating Systems Installation and Configuration Requirements Quick Reference (8.0.5 to 11.2)
- Grid Control 11g WLS installation On 32bit Microsoft Windows Platforms
- autotrace在绑定变量情况下不准确的问题
- How to Get Function Names from the Call Stack that has Hexadecimal Numbers
- Oracle Supplemental 补全日志介绍
- The correct NLS_LANG setting in Unix Environments
- ora-7445 [kghalp+0500] [SIGSEGV]错误
- Collecting Diagnostic Data for OCFS2 Issues
- How to Relink Oracle Database Software on UNIX
- 部分行索引使用介绍




最新评论