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

  1. Wire in the in-tree lldb helpers (docs/lldbinit.md); confirm WTF::String pretty-prints.
  2. Launch with --renderer-startup-dialog --disable-hang-monitor, attach to the paused renderer.
  3. thread backtrace all. Write down every thread name and map it to bi-02's diagram.
  4. 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.
  5. 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.
  6. Conditional breakpoint: break in SetAttribute only when the attribute is class. Then use breakpoint command add to 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