bi-12 step 02 — Breakpoints, threads, and why they miss
Goal
Get a Blink breakpoint to hit, and diagnose the three reasons it does not. Requires a local build — if blocked, do step 01 and 03 and return here later.
Tasks
- Wire in the in-tree lldb helpers (
docs/lldbinit.md); confirmWTF::Stringpretty-prints. - Launch with
--renderer-startup-dialog --disable-hang-monitor, attach to the paused renderer. thread backtrace all. Write down every thread name and map it tobi-02's diagram.- Set breakpoints at DOM creation, style recalc, layout, and paint. Load a trivial page. Record the order and the call stacks connecting them — this is the rendering pipeline, observed.
- Reproduce all three miss modes: set a Blink breakpoint on the browser process; break on a function that gets inlined; break on a path behind a disabled feature flag. Fix each.
- Conditional breakpoint: break in
SetAttributeonly when the attribute isclass. Then usebreakpoint command addto log a backtrace and continue — a sampled stack log rather than a pause.
Done when
- Thread census recorded
- Pipeline call-stack chain captured
- All three breakpoint-miss modes reproduced and resolved