Deterministic debugging with Delve
summary
Shows a concrete workflow: build an unoptimized Go binary, record it with Mozilla rr, then attach Delve + rr backend to replay the exact run on Linux x86_64/arm64. Implements record-and-replay using ptrace, perf counters and syscall interception so records syscalls and file reads and reproduces identical memory addresses and thread IDs. Replay runs single-threaded under rr (so slower for highly parallel programs) but enables reverse execution and deterministic root-cause debugging; requires Linux and hardware perf counters.
AI-written summary · about
chapters (8)
- 0:00Start
- 2:23Senior Software Engineer RedHat @DerkTheDaring
- 7:59What is deterministic debugging?
- 14:08Must debug within a virtual machine that supports this feature
- 15:58Eliminating sources of nondeterminism
- 29:55Option 1
- 32:54Option 2
- 34:37Option 3
related talks
47mDeterministically Debugging Go Programs
17mDebuggers from scratch
42mLearn how debuggers work by building your own one
04mA New Debugging Mindset
31mDebugging Go: from zero to Kubernetes - Michele Caci
35mBe Smug, Debug Why You Should Be a Delve Power User
14mDebugging debuggers!!!
40mDebugging in Golang Apps Inside K8s Environment
