DOCUMENT ID: 1179-02 SYNOPSIS: How to use ADB to find out why your system panicked. OS RELEASE: PRODUCT: Solaris x86 KEYWORDS: ADB system panicked panic DESCRIPTION: This is an example on how to use ADB to find the cause of a panic. SOLUTION: To do this, go through the following steps. NOTE: You will see different address and threads when you run this on your machine, but if these steps are followed, it will help you see why your system panicked. ADB Example Objective: Use adb on a core dump to determine: 1. What instruction actually failed 2. What Process called or used the instruction 3. What was the failing file (argument) 1. What instruction actually failed? The first step is to run adb on the saved kernel and core file in the /var/crash/host_name directory and to examine the stack to determine where the system was when it crashed. Following is an example, the kernel and core file name may be different. # adb -k unix.0 vmcore.0 physmem 232a $c complete_panic (0x1, 0xf00ab800, 0xff1cfa24, 0xf00c9c1c, 0xf000a9ac, 0xe5 ) + 108 do_panic (0xf00b3408, 0xf0000, 0x30, 0xb, 0xb, 0xf00abc00) + 1c die (0x9, 0xf2796f4, 0x30, 0x80, 0x1, 0xf00b3408) + 5c trap (0x9, 0xf02796f4, 0x30, 0x80, 0x1, 0xf02788d8) + 554 ^^^^^^^^^^ |||||||||| This is the pointer to the structure The stack trace does not look very helpful initially, since the ramdisk routines are not on the stack trace. However, the call to "trap()" provides useful bits of information like the first argument which is the trap type - in this case 9- which is a T_DATA_FAULT trap (from. See the SPARC Architecture, version 8 manual for more information. The second argument to trap() is a pointer to a regs structure containing the state of the register at the time of the trap. 0xf02796f4$