|
What should I do if I get a core dump ? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ As with any problem you should first note down the FULL version numbers of the product, the RDBMS, PL/SQL (if used) and any related products. You should also note the EXACT command you were running when this occurred. Eg: If it was a SQL*Forms problem and you were using 'mrunform30', write this down. This command will be referred to as 'program' below. Now follow the instructions below in order: 1) Check if you have a 'core' file, it should be in the directory where the command was issued, or in $ORACLE_HOME/dbs OR $ORACLE_HOME/dbs/core_NNNNN if it is the 'oracle' executable. 2) Log in as ORACLE and cd to the directory containing the core file. Then issue: file core This should identify the "program" name to use in the next step, e.g.: oracle 3) Log in as ORACLE and change in to the $ORACLE_HOME/bin directory. Enter the command: file program and write the result down letter for letter. If the word 'dynamic' or 'dynamically linked' appears in the output of this command then please make a note of this as there are a few platforms on which Oracle does NOT support dynamic linking and this may be the cause of your problem. 4) Now enter: chmod +r program to add read permission to the program. 5) Log out , then log in as the user who encountered the error. The next step will vary slightly depending on which version of Unix you are using. One of the following commands should exist on your machine - try each in order until you find one that exists: Command NB Exit command Stack Trace command ------- -- ------------ ------------------- dbx quit where xdb (HPUX 10) quit t gdb (HPUX 11) q bt dde (HPUX 11) q bt sdb q t adb $q (or Ctrl-D) $c debug (PTX only) quit stack gdb (Linux) quit bt Change to the directory where the core dump is located and enter the commands as in the relevant example below. If you are not sure which program produced the 'core' file then on some Unix platforms the command 'file core' will tell you the executable name that the core file is from (this does not work on ALL Unix platforms, see note below.) . Example commands: DBX: $ script /tmp/mystack $ dbx $ORACLE_HOME/bin/<program> core (dbx) where ... << Stack should appear here (dbx) quit $ exit XDB: $ script /tmp/mystack $ xdb $ORACLE_HOME/bin/<program> core (xdb) t ... << Stack should appear here (xdb) quit $ exit SDB: $ script /tmp/mystack $ sdb $ORACLE_HOME/bin/<program> core (sdb) t ... << Stack should appear here (sdb) q $ exit (NOTE: In the 'adb' commands below literally type the $c & $q) ADB: $ script /tmp/mystack $ adb $ORACLE_HOME/bin/<program> core $c << NB: adb has no prompt so just enter $c ... $q $ exit DEBUG: $ script /tmp/mystack $ debug -c core $ORACLE_HOME/bin/<program> debug> stack ... << Stack should appear here debug> quit $ exit GDB: $ script /tmp/mystack $ gdb $ORACLE_HOME/bin/<program> core (gdb) bt ... << Stack should appear here (gdb) quit $ exit DDE: $ script /tmp/mystack $ dde -ui line core $ORACLE_HOME/bin/<program> dde> bt ... dde> q $exit Assuming this worked then the stack trace should be shown in the file '/tmp/mystack'. Upload this to Oracle Support. 6) If the debug command failed to give a stack trace then try using a different debugger from the list above (if available). If all debuggers fail then there is probably a problem with either the permissions or the file type - see the section below and then contact Oracle Support with all the details you have so far. |
|