What Is This Course About?

Discover prerequisites and qualifications for this core dump analysis course.

Introduction to core dump analysis

To diagnose any non-trivial hangs or crashes due to a user process or kernel faults, it’s essential to examine core dumps. Most of us have no training in dealing with core dumps; therefore, the causes of most of the crashes are left undiagnosed.

This course will take you through the following basic techniques:

  • Fundamental concepts underlying core dump analysis
  • How to collect core dumps
  • How to diagnose various types of hangs and crashes using GDB
  • How to analyze kernel dumps using the crash utility

Why take this course?

Instead of taking a theoretical route, this course focuses on practical exercises that are meant to take you through a variety of core dump analysis techniques. We’ve designed some sample applications that run into specific types of problems by design, such as NULL pointer exceptions, deadlocks, spiking threads, and stack overflows, to name a few. You can load the core dumps that we have pre-generated for your convenience using the provided interactive terminals, and follow along with the exercises. The applications are accompanied by a comprehensive source code, allowing you to generate the core dump. This will grant you a deeper understanding of the core dumps and the opportunity to explore various alternative methods for diagnosing the issues.

Another unique and innovative feature of the exercises in this course is that they teach you how to identify general patterns underlying typical problems encountered in the core dumps. This significantly speeds up the learning curve.

Prerequisites

You don’t need to be an expert to take this course. Since some of us have software development experience and some don’t, the prerequisites are hard to define. However, to get the most out of this course, you are expected to have prior troubleshooting experience.

A familiarity with hexadecimal notation and the ability to read programming source code in some languages is also useful for this course. The ability to read assembly language has some advantages but isn’t completely necessary for this training.

Note: Windows memory dump analysis experience may help ease the transition to Linux but is not absolutely necessary.