Original from http://www.dba-oracle.com/t_memory_stack_trace.htm
**Review process smon callstack:
--Get smon process id
[oracle@test ~]$ ps -ef | grep smon
oracle 13144 1 0 Jun12 ? 00:00:02 ora_smon_orcldg
[oracle@test ~]$ pstack 13144
#0 0x0000003e70ceb28a in semtimedop () from /lib64/libc.so.6
#1 0x00000000085bd037 in sskgpwwait ()
#2 0x00000000085bc20a in skgpwwait ()
#3 0x000000000821b495 in ksliwat ()
#4 0x000000000821aa86 in kslwaitctx ()
#5 0x0000000008217fbb in kslwait ()
#6 0x0000000000ea0c48 in ktmmon ()
#7 0x0000000000ea034a in ktmSmonMain ()
#8 0x0000000001c02dc1 in ksbrdp ()
#9 0x0000000001da0e27 in opirip ()
#10 0x0000000001437b81 in opidrv ()
#11 0x00000000018aac97 in sou2o ()
#12 0x00000000009d3f76 in opimai_real ()
#13 0x00000000018aff26 in ssthrdmain ()
#14 0x00000000009d3e5d in main ()
--Review short_stack by oradebug
[oracle@test ~]$ sqlplus / as sysdba
SQL> oradebug setospid 13144
Oracle pid: 13, Unix process pid: 13144, image: oracle@test (SMON)
SQL> oradebug short_stack
ksedsts()+461<-ksdxfstk()+32<-ksdxcb()+1782<-sspuser()+112<-__restore_rt()<-semtimedop()+10<-skgpwwait()+156<-ksliwat()+1821<-kslwaitctx()+162<-kslwait()+141<-ktmmon()+562<-ktmSmonMain()+206<-ksbrdp()+923<-opirip()+623<-opidrv()+603<-sou2o()+103<-opimai_real()+266<-ssthrdmain()+214<-main()+201<-__libc_start_main()+253<-_start()+36
--Stack summary
Summary Stack (to Full
stack) (to Function List)
----------------------------------------------------
ksedst # KSE: dump the call stack
ksedmp # KSE: dump the process state
ksddoa # Debug support Do an Action
ksdpcg # KSD: Post and check event in the specified
event group
ksdpec #KSD: Post Event and Check trigger
conditionPGOSF70_ksfpec104
kgesev KGE: Signal Error code (with Va_list)
ksesec0 # IGNORE: Signal an error
kpoblng
kpobsv
kpobii
kpobav
opibvg
opiexe opiexe - ORACLE Program Interface EXEcute
opipls opipls.c ??” contains opi bundled call executor
and
support routines
opiodr OPIODR: ORACLE
coderequestdriver-routethecurrentrequest PGOSF163_rpidrus
skgmstack skgmstack - call specified function with extra
STACK space
rpidru RPI: setup memory for the recursive session
(unclear)
rpiswu2 RPI: SWitch User in recursive sql
rpidrv RPI: Recursive Program Interface DRiVer
Summary Stack (to Full
stack) (to Function List)
----------------------------------------------------
psddr0 Null pointer definitions for ttcdrv callback
and context.Used in psddrv.
psdnal ARGSUSED */
pevm_EXECC
pfrinstr_EXECC
pfrrun_no_tool
pfrrun PSDEVN: PL/SQL Interpreter Main Instruction
Loop
plsql_run
peicnt PL/SQL controlled Execution
kkxexe KKX: execute plsql
opiexe opiexe - ORACLE Program Interface EXEcute
kpoal8 kpoal8.c - Kernel Programmatic Oracle ALl
Version 8
opiodr OPIODR: ORACLE code request driver - route the
current request
ttcpip TTCPIP: Two Task Common PIPe read/write
opitsk opitsk - Two Task Oracle Side Function
Dispatcher
opiino opiino - ORACLE Program Interface INitialize
Opi
opiodr OPIODR: ORACLE code request driver - route the
current request
opidrv # opidrv - ORACLE Program Interface DRiVer
(IGNORE)
sou2o # Main Oracle executable entry point
opimai_real
main # Standard executable entry point
Summary Stack (to Full stack) (to Function List)
ksedst # KSE: dump the call stack
ksedmp # KSE: dump the process state
ksddoa # Debug support Do an Action
ksdpcg # KSD: Post and check event in the specified event group
ksdpec # KSD: Post Event and Check trigger condition
PGOSF70_ksfpec
104
kgesev KGE: Signal Error code (with Va_list)
ksesec0 # IGNORE: Signal an error
kpoblng
kpobsv
kpobii
kpobav
opibvg
opiexe opiexe – ORACLE Program Interface EXEcute
opipls opipls.c — contains opi bundled call executor and support routines
opiodr OPIODR: ORACLE code request driver – route the current request
PGOSF163_rpidrus
skgmstack skgmstack – call specified function with extra STACK space
rpidru RPI: setup memory for the recursive session (unclear)
rpiswu2 RPI: SWitch User in recursive sql
rpidrv RPI: Recursive Program Interface DRiVer
psddr0 Null pointer definitions for ttcdrv callback and context. Used in psddrv.
psdnal ARGSUSED */
pevm_EXECC
pfrinstr_EXECC
pfrrun_no_tool
pfrrun PSDEVN: PL/SQL Interpreter Main Instruction Loop
plsql_run
peicnt PL/SQL controlled Execution
kkxexe KKX: execute plsql
opiexe opiexe – ORACLE Program Interface EXEcute
kpoal8 kpoal8.c – Kernel Programmatic Oracle ALl Version 8
opiodr OPIODR: ORACLE code request driver – route the current request
ttcpip TTCPIP: Two Task Common PIPe read/write
opitsk opitsk – Two Task Oracle Side Function Dispatcher
opiino opiino – ORACLE Program Interface INitialize Opi
opiodr OPIODR: ORACLE code request driver – route the current request
opidrv # opidrv – ORACLE Program Interface DRiVer (IGNORE)
sou2o # Main Oracle executable entry point
opimai_real
main # Standard executable entry point
Note: (Call stack is read starting from the bottom).
Summary Stack (to Full stack) (to Function List)
ksedmp # KSE: dump the process state
kgeriv # KGE Record Internal error code (with Va_list) (IGNORE)
kgesiv # KGE Signal Internal error code (with VA_list) (IGNORE)
ksesic2 # KSE: signal an internal error code
kftr2ah KFT: relative to absolute file number translation with hint
kftr2bz
kkdlgibz