The Hidden Secrets of Debugging
summary
Concrete claims and actionable knobs: d-trace runs in production with minimal overhead but needs kernel support and can force disabling macOS SIP and crash machines; estrace is the Linux-safe alternative with high verbosity and nontrivial performance cost; git bisect finds the exact regression commit and can run automated test scripts to pinpoint the bad revision; JFR records low‑overhead JVM events (~1% impact), jhsdb/jstack/jmap inspect cores and heaps, and Wireshark decodes packets and JSON so failures are reproducible and traceable.
AI-written summary · about
chapters (37)
- 0:00Introduction
- 1:10Speaker and tools
- 2:13Focus on non-standard tools
- 2:35DTrace and capabilities
- 4:46Enabling DTrace on macOS
- 6:10DTrace script for syscalls
- 8:37DTrace recipes with man -k
- 9:17Debug disk I/O with DTrace
- 10:39DTrace advanced use cases
- 10:59eBPF and strace intro
- 12:03How strace works
- 13:06Debug Java with strace
- 14:13Filter strace output
- 14:55Java memory and strace limits
- 15:58git bisect for regressions
- 18:09Automate git bisect
- 20:58Advanced git bisect
- 22:22jhsdb for JVM debugging
- 23:26jhsdb tools overview
- 24:30Debug JVM with jstack/jmap
- 26:38Analyze heap with jmap
- 28:01JVM properties with jinfo
- 28:21Performance tuning with jsnap
- 29:04Debug JNI with jhsdb
- 29:26APM/profiler limits
- 30:08Java Flight Recorder
- 31:33Configure JFR
- 32:16Java Mission Control
- 33:00Wireshark for network
- 34:26Browser vs Wireshark
- 35:29Capture traffic with Wireshark
- 36:54Filter Wireshark traffic
- 38:21Inspect JSON in Wireshark
- 40:29Q&A: Non-Java tools
- 42:19Q&A: OpenJDK OOM errors
- 43:46Q&A: Debug HTTPS traffic
- 45:13Closing remarks
related talks
38mFrom the Exorcist to Hercule Poirot
58mDebugging #Java
41mDebug like a scientist
54mDebugging Effectively
15mArgus: Debugging Performance Issues in Modern Desktop Applications...
37mThe Bright Future of Debuggers: Challenges and Opportunities
42mWhat Really Happens When You Hit a Breakpoint
53mDebugging: past, present and future
