Core dump file and adding debug codes in the application executable for Oracle Apps

Last updated on September 3rd, 2019 at 04:34 am

Core dump file generation of Oracle Concurrent Manager

Oracle concurrent managers consists of many executable and we often faced various issues with it.When an executable ends with a segmentation fault or signal 11, a core file for oracle concurrent manager  should be created.

If you are not finding that a core file is created, then the ulimit may be set to 0 for core files on your system.
Check this as follows:
ulimit -a

ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) unlimited
coredump(blocks) unlimited
nofiles(descriptors) 4096
vmemory(kbytes) unlimited

Check the output for “core file size (blocks)” If this is set to 0 or a low value, it can be reset to allow core files of any size to be created in the current session using the syntax:

ulimit -c unlimited

If Unix user has this set in the environment before starting the concurrent manager, and the Apps listener,
then the concurrent processing environment will be able to create core files.

The executable that is ending in segmentation fault or signal 11 should be re-link with debug symbols in
order to get a useful core file. This is done by passing the link_debug=y parameter to adrelink.sh.
For example:

adrelink.sh force=y link_debug=y "fnd FNDLIBR"

Once the executable is relinked with debug symbols and you have a core file, make sure you have the right
core file for the executable that crashed using the syntax:

file core
core: ELF 32-bit MSB core file SPARC Version 1, from 'FNDLIBR'

Now use the debugger to get a stack trace.
For Linux the debugger is gdb:

gdb $FND_TOP/bin/FNDLIBR core

For Solaris the debugger is dbx:

dbx $FND_TOP/bin/FNDLIBR core

Adding Debug code to the Application Executable as provided by Oracle Support

It is often seen that the core dump generated above is not enough to trouble shoot the issue.So Oracle Support might provide a debug code to further deep dive the issue

Here are the General steps on How to add debug codes in the application executable.

In fact these are steps even followed  by adpatch to replace lib files in the product executable

Let’s say that you need to link the object file “invir.o” into the INVLIBR executable.

Before doing anything make sure the concurrent managers are shut down.

First lets check the versions:

adident Header $INV_TOP/lib/invir.o
$Header: invir.opp 115.6 2001/04/11 16:14:32 pkm ship $

adident Header /u00/to/debug/file/invir.o
$Header: invir.opp 115.6.debug 2001/04/11 21:19:07 aeisber ship $

adident Header $INV_TOP/bin/INVLIBR |grep invir
$Header: invir.op 115.6 2001/04/11 16:14:32 pkm ship $

So we currently have version 115.6 on our system, and need to link in 115.6.debug
The first step is to back up the current version:

cd $INV_TOP/lib; cp invir.o invir.o.save

Copy in the debug version:

cp /u00/to/debug/file/invir.o .

Take backup of files

cp libinv.a libinv.a.save

Now add the debug version to libinv.a (Do not forget this step)

ar rv libinv.a invir.o

Now you can relink INVLIBR: (you can also use adadmin)

adrelink.sh force=y "inv INVLIBR"

Checking the version now shows:

adident Header $INV_TOP/bin/INVLIBR |grep invir.o
$Header: invir.opp 115.6.debug 2001/04/11 21:19:07 aweisber ship $

Our debug code is linked in and ready to be run. Start the managers back up, and debugging stuff would be available. Once the issue is reproduced , we can turn off the debugging by following the below procedure

The first step is to back up the current version and move the old code back

cd $INV_TOP/lib; 
cp invir.o invir.o.debug
cp invir.o.save invir.o

Restore the old .a file

cp libinv.a.save libinv.a

Now you can relink INVLIBR: (you can also use adadmin)

adrelink.sh force=y "inv INVLIBR"

Checking the version now shows:

adident Header $INV_TOP/bin/INVLIBR |grep invir.o
$Header: invir.opp 115.6 2001/04/11 21:19:07 aweisber ship $

Related Articles

How to find EBS R12 components Version

Oracle EBS 11i/R12/R12.1/R12.2

Oracle DBA: Hanganalyze ,system state dump,v$wait_chains

How to turn on the SQL trace, 10046 event in Oracle database and trcsess, tkprof utility

Leave a Reply