Module 1 - Obtaining and Identifying Crash Dumps
- Estimate the size of a crash dump
- Describe how to get information from a hard hang system
- Identify the types of crashes
- Describe how to work with partial or corrupt crash dump information
Module 2 - SPARC Architecture
- Describe the SPARC architecture implementations
- Describe instruction pipelining
- Describe SPARC architecture data types
- Describe the organization of data in memory
- Describe SPARC architecture registers and their usage
- Describe the use of register windows
- Explain major components of SPARC architecture instructions
Module 3 - Analyzing Bad Trap Panics
- Describe how traps occur and what events they handle
- Describe how bad trap panics occur
- Describe useful information in bad trap messages
- Describe how to relate stack data to function protoypes
- Find the data that caused the trap
- Describe how to determine if a crash is related to a hardware problem
Module 4 - Analyzing Unique Panic String Panics
- Describe common types of unique panic string panics
- Describe how to get information about kernel memory corruption
- Analyze kernel heap corruption panics
- Analyze unique panic string panics caused by locks
- Analyze file system corruption panics
Module 5 - Analyzing User-Forced Crash Dumps
- Describe how to detect a hung system
- Describe common causes of system hangs
- Recognize normal stacks
- Diagnose hang problems created by memory shortages
- Diagnose hang problems created by locks
- Diagnose hang problems created by hardware
- Diagnose hang problems related to the clock
- Describe procedures for analyzing difficult hangs
Module 6 - Analyzing Live Crash Dumps
- Run debugging tools on a live system
- Describe the risks of modifying information on a live system
- Create a live crash dump
- Describe what information is not likely to be valid in a live crash dump file
- Diagnose an unkillable process
- Diagnose a memory leak
Module 7 - SPARC Assembly Language
- Describe assembly language conventions
- Describe SPARC architecture instruction types
- Identify arithmetic and logical instructions
- Describe the use of the sethi instruction
- Identify load and store instructions
- Describe the instructions that are used for locks
- Describe alternate address spaces
- Describe floating point instructions
- Describe transfers of control
- Identify synthetic instructions
Module 8 - SPARC Architecture Stacks and Arguments
- Describe simple argument passing
- Describe stack formats
- Describe complex argument passing
- Verify argument validity
- Describe how local variables are accessed
- Describe the characteristics of leaf functions
- Describe what a tail call is and how it effects the stack
Module 9 - SPARC Architecture Traps and Interrupts
- Describe the purposes of traps
- Describe how the UltraSPARC(R) processor handles traps
- Describe trap levels
- Describe watchdog resets and RED state exceptions
- Analyze RED state output
- Analyze XIR data
- Describe how interrupts are processed
- Analyze crashes at trap levels greater than zero
Module 10 - Matching Assembly Language to C Code
- Describe the differences between optimized and unoptimized code
- Describe how variables are accessed
- Describe the assembly instruction that indicates a function call
- Find the line of C code that corresponds to or includes that assembly instruction (given a system dump and an instruction in a function)