Les premiers pas pour une analyse de DUMP sont les suivants :
- Trouver le nom du programme responsable du core : '/usr/lib/ras/check_core nom_core |tail -1'
# /usr/lib/ras/check_core nom_core |tail -1
dsmc
- Lancer la commande 'dbx' avec le nom du programme source et le nom du fichier core :
# dbx dsmc /tmp/core.198678387
- Lancer la commande 'where' pour voir le lieu du problème.
- Approfondir avec les autres commandes de 'dbx'.
Il y a également la commande 'snapcore' qui récupère les traces liés à un core existant :
# snapcore /tmp/core.ldapCrash1603_1318 /usr/sbin/secldapclntd # Pour analyser le core /tmp/core.ldapCrash1603_1318 lié au programme '/usr/sbin/secldapclntd'
Cela génère un fichier sous le répertoire '/tmp/snapcore'.
Ci-dessous un extrait de la documentation IBM :
AIX Core Dump Data Collection
Question & Answer
Question
Answer
1. The binary must have been shipped with AIX as IBM has to be the source code owner. Third party applications must be analyzed by the respective vendor.
2. Data collection has to be done using the "snapcore" command. The core file itself is not sufficient. snapcore will ensure the core file, program binary and all relevant libraries are gathered which allows for analysis outside the customer's environment.
First, determine the name of the failing program and the location of the core file in the detailed Error Report (errpt -a) output. For instance, a "CORE_DUMP" label with the following contents:
LABEL: CORE_DUMP
IDENTIFIER: A924A5FC
Date/Time: Tue Jun 11 22:58:18 2019
......USER'S PROCESS ID:
4194354
FILE SYSTEM SERIAL NUMBER
16
INODE NUMBER
132661
CORE FILE NAME
/tmp/core
PROGRAM NAME
java.......The core file location is given with the full path. The program name just displays the actual name of the executable file, but the full path to this needs to be supplied to
snapcore as well.snapcore command is commonly executed by root, however, if a database binary such as Oracle or DB2 is creating core files it is best to login as the respective user. This sets the environment, such as the PATH and LIBPATH variables, and ensures proper data collection.Using the above error report example and assuming the java executable exists in /usr/java8/jre/bin:# snapcore /path/to/corefile /path/to/binary
e.g.# snapcore /tmp/core /usr/java8/jre/bin/javaCreating directory /tmp/snapcore ...
Core file "/tmp/core" created by "java"
pass1() in progress ....
Calculating space required .
Total space required is 14391 kbytes ..
Checking for available space ...
Available space is 2994064 kbytes
pass1 complete.
pass2() in progress ....
Collecting fileset information .
Collecting error report of CORE_DUMP errors ..
Creating readme file ..
Creating archive file ...
Compressing archive file ....
pass2 completed.
Snapcore completed successfully. Archive created in /tmp/snapcore.Note: If you do not give a full path to the executable the snapcore command will search for it using your PATH variable.The resulting file will be located in /tmp/snapcore and named snapcore_<pid>.pax.Z:# ls -l /tmp/snapcore
total 12320
-rw-r--r-- 1 root system 6303760 Jul 11 16:42 snapcore_4194354.pax.Z