GDC 2011: Crash Analysis and Forensic Debugging

This is the support page for my talk at the 2011 Game Developer’s Conference, Forensic Debugging: How To Autopsy, Repair, and Reanimate a Release-built Game.

You can download the full slides for this program with my speaker’s notes as a PDF document here, or watch a video recording of my talk at the GDC Vault.

Here’s the contents of the bibliography slides from the end of the lecture:



•Pietrek, Matt. Just Enough Assembly Language To Get By, I & II. Microsoft Systems Journal, Feb-June 1998.

•(Microsoft) Kirk Glerum, Kinshuman Kinshumann, Steve Greenberg, Gabriel Aul, Vince Orgovan, Greg Nichols, David Grant, Gretchen Loihle, and Galen Hunt. Debugging in the (Very) Large: Ten Years of Implementation and Experience.

•(Jet Propulsion Laboratory) Reeves, Glenn; Neilson, Tracy. The Mars Rover Spirit FLASH Anomaly.
•IBM. PowerPC Microprocessor Family: Programming Environments Manual for 64 and 32-Bit Microprocessors.
•Intel. Intel 64 and IA-32 Architectures Software Developer’s Manual.
•Apple. Introduction to Mac OS X ABI Function Call Guide.
•Motorola, Inc. PowerPC Embedded Application Binary Interface.
•IBM. Developing PowerPC Embedded Application Binary Interface (EABI) Compliant Programs.
•Taylor, Ian Lance (Zembu Labs). 64-bit PowerPC ELF Application Binary Interface Supplement.
•ELF-64 Object File Format.
•Wikipedia. Executable and Linkable Format.
•Eager, Michael. Introduction to the DWARF Debugging Format.
•Apple. Debugging and Symbolizing Crash Dumps in Xcode.
•Microsoft. Symbol Server and Symbol Stores.
•Microsoft. Debugging Tools for Windows.
•WinDbg command cheat sheet:
•Sen, Saikat. A WinDbg Tutorial.
•Google Breakpad project home page:


  1. Dustin Russell says:

    Awesome talk!

  2. […] Crash Analysis and Forensic Debugging, Ellan Ruskin (Valve). Well, OK, more like a teaser, nothing there yet, but observe this space, Bookmark It […]

  3. Daniel says:

    Excellent talk. I spent a good chunk of last summer working with the breakpad library, and I ended up coding a 360 dump processor/stack walker and using XBWatson to watch for crashes, grab the minidump, and pop up a crash dialog on the user’s PC. It was really great having the same interface for handling crashes on PC and 360.

    I would have liked to do the same thing with PS3, but it was a summer internship and I had to get back to finishing my undergrad.

  4. Chad Austin says:

    Great presentation! We solve a lot of the same problems at IMVU. I’ve written a series of blog posts on our techniques, including stitching stack traces out of C++ exceptions:

    I wanted to make it to your presentation but had a conflict… thanks for spreading the word! There’s definitely an attitude in some studios that “if we code it right, it won’t crash in the field”, but you have no control over what else is on the system…

  5. Robert says:

    Awesome presentation. We run into the exact same problems at my workplace, and while I didn’t actually glean too much new info, this was just about the best presentation I’ve ever seen on the topic. Mandatory viewing for our new hires 🙂

Leave a Reply