GDC is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Use the GDC 2021 Session Viewer to browse and sort the ever-growing list of sessions by day, time, pass type, topic, and format. All registered attendees will be able to build their personal schedule directly within the event platform, once live early July 2021. All times are listed in Pacific Time.

Scriptable Core Dump Debugging and Memory Stomp Tracking

Artem Kovalovs  (Graphics & Game Programmer, Naughty Dog, LLC)

Date: Wednesday, July 21

Time: 3:40pm - 4:10pm

Pass Type: All Access Pass, Core Pass

Topic: Programming

Format: Session

Vault Recording: Video

Audience Level: N/A: I prefer to present live on-site but I am open to delivering a virtual presentation

This session describes new executable/core dump debugging tools developed at Naughty Dog and most recently used during production of The Last of Us Part II. These tools are built on top of Microsoft Visual Studio debugger and allow for a scriptable interface to process memory and debugging. Game engines are extremely complicated executables with many threads/jobs running in parallel, racing data accesses, passing pointers around, iterating through many collections of complex data, etc. Each crash or erroneous condition is a digital forensic mystery for the programmer.

This talk will describe the development and use of the debugging tools that make it easier for programmers to solve some of these mysteries. The tools allow us to script game specific conditions, analyze variables, parse memory, etc. with interactive and iterative python scripting. Case studies will be shown on where and how these tools were used to track down complex errors and memory stomps in crash dumps.

Takeaway

This session is meant to show the programming community a new way programs could be debugged. Concepts shown in the session will allow programmers to improve the development environments for their projects and sometimes save a lot of time tracking down complicated issues such as memory stomps.

Intended Audience

This session is meant for programmers who work with lower level code such as C++ and spend time debugging complicated problems.