In Chapter 17 and Chapter 18 we will be talking about the stack and stack tracebacks. Simply put, the stack traceback is a history of which routines called which and with what arguments. Nearly all initial system crash dump analysis using adb includes taking a look at the stack traceback, so let's show how that is done and we'll talk about it in greater detail later on. Figure 9-7 Displaying the stack tracebackHiya... adb -k unix.0 vmcore.0 physmem 1e05 $c complete_panic(0xf0049460,0xf05d03ac,0xf05d0238,0x3,0x0,0x1) + 10c do_panic(?) + 1c vcmn_err(0xf015f7a8,0xf05d03ac,0xf05d03ac,0x3cad8,0x2,0x3) cmn_err(0x3,0xf015f7a8,0x0,0x18,0x18,0xf0152400) + 1c die(0x9,0xf05d04c4,0x3,0x3a6,0x2,0xf015f7a8) + 78 trap(0x9,0xf05d04c4,0xf01822d8,0x3a6,0x2,0x0) + 598 fault(?) + 84 mutex_enter(0x0,0xd,0x64,0x1,0xd,0xf05d06ec) lookuppn(0xf05d06e4,0x0,0xf05d06ec,0x0,0x0,0xfc01dd14) + 148 lookupname(0x0,0x0,0x1,0x0,0xf05d07f4,0x0) + 28 vn_open(0x3cad8,0x0,0x3,0xb40,0xf05d08ac,0x0) + a4 copen(0x3cad8,0x3,0xb48,0xf05d0920,0x3cad8,0xf0156628) + 70 syscall(0xf0160f3c) + 3e4 $q Hiya... The top of the stack tracebacks show the most recently called routine, in this case, complete_panic() . This stack traceback was from a Solaris 2.3 SPARCstation 20, which was crashed by setting rootdir to zero. Later on, we will learn how to discover the point at which the system became unhappy about the null pointer we had created. |