RE: Using Unix debuggers to attach to Oracle processes

  • From: "Schultz, Charles" <sac@xxxxxxxxxxxxx>
  • To: Tanel Põder <tanel.poder.003@xxxxxxx>
  • Date: Thu, 4 May 2006 15:05:23 -0500

Interesting. Can I ask a slightly different question. According to metalinks 
note #121779.1, one can use dbx (or gdb for HP in note #273324.1) to print/call 
ksudss. I see ksudss in the name list (via nm), but I am not sure how I call it 
with adb or mdb (the only two debuggers available to me). I also came across 
Egor's thread on this topic 
( which lead 
me to try some tests.
In mdb, :c and call are unrecognized symbols (at least on my system). Using a 
little bit of backward logic, I tried the same thing in adb (ksudss:c 10). It 
appears to be working, kinda - the call to ksudss simply hangs, as well as the 
process I am attached to.
Any ideas how to proceed from here. I have learned a lot today, so perhaps my 
quota is up and I need to wait until tomorrow. *grin*


From: Tanel Põder [mailto:tanel.poder.003@xxxxxxx] 
Sent: Thursday, May 04, 2006 12:50 PM
To: Schultz, Charles; Stefan Knecht
Cc: oracle-l
Subject: Re: Using Unix debuggers to attach to Oracle processes

You might not have such symbol in the oracle binary where you're trying to set 
the breakpoint. Sometimes compilers may change the external function names a 
bit, by adding a prefix or suffix to different versions of a function.
Try the following:
nm $ORACLE_HOME/bin/oracle | grep -i qmxtgr 
and see whether you see any function which reminds the one you're looking for.
I'm not familiar with adb, but a good mdb tutorial can be found at
It's a preview chapter from Solaris 10 internals book due to be out in June, so 
all cool features might not be available on earlier versions, but the basic 
stuff should be the same.

Other related posts: