Overview
Syllabus
00:00 - Intro: Why Multithreaded Debugging is Hard
00:35 - Launching the C++ Demo Program
01:25 - Using GDB: Listing and Identifying Threads
02:10 - Switching Threads and Inspecting Backtraces
03:05 - Naming Threads with pthread_setname_np
04:00 - Enabling Scheduler Locking in GDB
04:45 - Understanding Thread Scheduling Behavior
05:30 - Controlling Execution with GDB Commands
06:25 - Diagnosing Deadlocks and Blocking Threads
07:15 - Inspecting Internal Locks and Shared Memory
08:10 - Handling Signals and SIGINT
09:00 - Debugging Spinners and Race Conditions
10:00 - Cleanly Finishing Thread Execution in GDB
11:00 - Recap: Thread Debugging Best Practices
11:45 - Outro: What to Try Next with GDB
Taught by
Undo