Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Using Unix debuggers to attach to Oracle processes

Re: Using Unix debuggers to attach to Oracle processes

From: Tanel Põder <>
Date: Fri, 5 May 2006 01:49:54 +0800
Message-ID: <029a01c66fa3$2b192b60$3f121eac@porgand>

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.


  Wow, that is very good. Thanks Stefan and Tanel!

  Now I have to not only read that wealth of information, but understand it..... =) Also, we do not have access to gdb (used in Tanel's example), but I am hoping to use his examples and hack something together for our site.

  From: Stefan Knecht []   Sent: Thursday, May 04, 2006 8:43 AM
  To: Schultz, Charles
  Cc: oracle-l
  Subject: Re: Using Unix debuggers to attach to Oracle processes

  Tanel Põder has an interesting presentation on this:

  HTH   Stefan

  On 5/4/06, Schultz, Charles <> wrote:     Anyone familiar with using adb or mdb to attach to Unix (Solaris)     processes? I am working with Oracle Support, but the guy behind the     curtain (the developer) is in England, and it is hard to communicate     quickly since our shifts do not overlap for long.

    This is what I have so far - I bomb on #5 with an "unknown symbol":

  1. adb -P'> ' $ORACLE_HOME/bin/oracle
  2. Wait for the "> " prompt
  3. Determine the OS pid of the shadow ("oracle$ORACLE_SID") process. The steps below assume that the pid is 123456.
  4. Attach to the process by typing "0t123456:A" at the "> " prompt
  5. Set a breakpoint in qmxtgrGetBindVal() by typing "qmxtgrGetBindVal:b" at the "> " prompt.
  6. Allow the process to continue execution by typing ":c" at the "> " prompt.
  7. Repeat steps 1-6 for all of the shared_server processes(p00x)and QC process executing the "adb" command under different windows.

    charles schultz
    oracle dba
    aits - adsd
    university of illinois


-- Received on Thu May 04 2006 - 12:49:54 CDT

Original text of this message