Dynamically Instrumenting Go Programs
summary
Demos show four concrete workflows: delve JSON-RPC automates breakpoints and reads a live counter with microsecond pauses (benchmark drops from 174M to 173M ops/sec for attach but per-invocation breakpoints crash throughput to ~100s ops/sec); uprobes + eBPF (BCC / bpftrace) moves logic into kernel maps and raises throughput to hundreds of thousands ops/sec while aggregating counts; go‑bpf gives Go bindings but embeds C BPF code; Frida V8 injection runs JavaScript in‑process to read and even mutate memory live, cross‑platform and working in production with appropriate privileges.
AI-written summary · about
chapters (10)
- 0:00Intro
- 0:35Types of Instrumentation
- 2:38Dynamic Interpretation
- 4:01Ptrace Debuggers
- 10:40Counter
- 12:41Performance
- 13:35UI Probes
- 18:32Go BPF
- 20:45Frieda
- 27:00Questions
related talks
20mStrategies for Auto-Instrumenting Go Applications Without Code Changes
29mCurveballs: Learnings from Instrumenting Managed Runtime...
33mInstrument Go Without Changing a Single Line
22mDynamic Go Instrumentation for Production Environments
39mAuto-Instrumenting Go Libraries for Tracing with eBPF and OpenTelemetry
46mReal World Debugging with eBPF
24mDebuggers and eBPF: Bringing Debugging to Production
53mDebugging Go Applications
