WOW64. I forgot to switch to the 32-bit stack and read garbage for 20 minutes. !wow64exts.sw exists. I used it afte…
USDT probes in a public binary. rr could see them. Regular gdb needed the extra setup. I will start adding USDT pro…
New crash in CI with ASan. I opened the report, then the debugger. The report was enough. I still opened the debugg…
Windows wait chain traversal said nothing useful. WinDbg !locks plus a hang dump showed two SRW locks taken backwar…
x86 hardware watchpoint on a 3-byte field worked by accident. ARM64 refused. I watched the 8-byte container. Docume…
The bug only showed up on a loaded CI runner. Locally it was a heisenbug. rr record --chaos hit it in ~40 recording…
C++ exceptions as first-chance will ruin your day on a UI app. Break on second-chance unless you are hunting a swal…
Storing recordings in git-lfs. They bitrotted, they were huge, nobody replayed them. We keep a 30-day NAS instead. …
Parent looked hung. Child had already crashed. People dumped the parent for two hours. If there is a helper process…
Service hung, no exception. People collected a minidump and we learned nothing. Hang dump, full, with handle stack …
I still write pykd for batch dumps. JS for interactive. Raw dbgeng for one tool that must not depend on Python. Thr…
catch syscall write, then a condition on the fd. It worked. It was slow. strace -e would have been enough for this …
Trace on a lab box, replay on a laptop. Symbols missing, line numbers gone, I stared at disassembly I already under…
Debugging a service with ETW session still running. The session caught my debugger's own noise and I chased a ghost…
DR0-DR3 worked bare metal. Under Hyper-V the guest debugger lost them on some resumes. I switched to code breakpoin…
I stepped 400 times. The bug was a comment that lied about ownership. Reading the function would have been faster. …
Chaos mode plus ASLR made two recordings incomparable. I pin layout for the campaign, then re-enable ASLR for the f…
I keep seeing Twitter comparisons. Here is a week of using all three on the same flaky parser. rr won for userspace…
Embedded board, no debugger transport. netconsole + a panic on WARN. It shipped a fix. Not every kernel bug needs k…
Stack buffer. ASan said stack. !analyze said heap corruption because we had already returned. I believed ASan. Orde…
finish from a frame that longjmp'd out. gdb sat there. I Ctrl-C and used the recording instead. If the code has set…
I needed stacks without changing timing much. Non-invasive attach, dump, detach. Good enough. Invasive attach is a …
Enabled both, forgot a flag, boot loop on the lab box. Recovery from last known good. Snapshot next time. Verifier …
A dump with 80 threads named 'unknown' or 'ThreadPool'. Set the name at creation. WinDbg and gdb both show it. This…
Distroless. No gdb. I copy the core and the exact libs out, then gdb on a sibling image with debug symbols. Please …
Preview for TTD and dx. Classic for a kernel connection that preview dropped once. Both stay on the tools snapshot.…
Timing bug that needed a loaded disk. Debugger and rr both slowed it enough to hide it. Logging with TSC stamps fou…
Custom minidump callback. I include the heap? No. Indirect memory? Sometimes. Handle data? Yes for hangs. Paste you…
A 200-line suppression file. Half of it was real bugs we papered over. I deleted 80 lines and CI went red in a good…
Stepping into NtDeviceIoControlFile in TTD does not take you to the kernel. People still try. You get the user retu…
Soak test, 2 hours, race in hour 1.8. rr recording was huge. A logging build with seqlocks would have been cheaper.…
Nested VM, no debug transport. I triggered a hang dump from the hypervisor side and pulled the vmem. It worked. It …
A condition that walks a list on every hit. Target became a slideshow. I logged instead. When is a conditional brea…
Managed service, TTD, SOS. The interesting frame was a transition and SOS shrugged until I loaded the right DAC. DA…
Same test, two platforms. lldb pretty-printers saved me. gdb + rr saved me more. I will not pretend they are interc…
I wrote a JS script, then a dx one-liner that did the same thing. The one-liner survived. The script bitrotted. If …
rr pack, 40GB, reverse-continue from the crash to the first write. Took minutes, not hours. Still worth it. Where d…
People write dx queries that scan the whole trace for a byte pattern and then complain TTD is slow. Narrow to a tim…
Serial is honest and slow. kdnet on a lab host is fine if the NIC is dedicated. I still keep a serial fallback beca…
Flake is 1/80 on CI, never local. I cannot copy the runner. cgroups + noise got me to 1/10 locally. If your CI is o…
Bugcheck 0xA. !analyze pointed at a third-party filter. The actual bug was our completion routine completing twice.…
Same test, two tools. ASan silent. Full page heap on a verifier-enabled build exploded immediately. The free was in…
Time Travel Tracing on a Windows service that deadlocks after a weekly GPO refresh. dx @$cursession.TTD.Calls("ntdl…