Skip to content

Inspector: pause, breakpoints, stepping, scripts, and exception control #153

Description

@chrisbbreuer

Parent: #139

Implement execution control on top of the versioned inspector session transport.

Acceptance:

  • Preserve statement/source locations and publish scriptParsed events with stable script IDs.
  • Implement debugger-statement and explicit pause/resume.
  • Implement URL/script breakpoints, removal, and deterministic resolution events.
  • Implement stepInto, stepOver, and stepOut across calls and exceptions.
  • Implement pause-on-exception modes and exception events.
  • Keep tree-walker and baseline/native tiers coherent, deopting or using shared hooks where required.
  • Add end-to-end protocol transcripts with no silently accepted commands.

Completed implementation:

  • 98c9dbb retains exact statement locations, stable scripts, debugger-statement and requested pause/resume, with tree-walker deoptimization for scripts and ordinary synchronous functions.
  • eb69127 adds source retrieval, future/present URL and script-ID breakpoints, deterministic nearest-statement resolution, repeated hits, and removal.
  • 6344e53 implements logical-depth stepInto/stepOver/stepOut across calls and caught exceptions.
  • 357f01d implements none/all/uncaught exception policy with origin/fallback detection, exceptionThrown events, adjusted locations, and no duplicate caught/uncaught notifications.
  • 835831d adds instruction-indexed debugger checkpoints to suspendable generator/async VM chunks across yield/await, disables checkpoint-skipping quick paths in debug chunks, covers VM throws, and publishes the machine-readable 16-command/8-event inventory with deterministic -32601 behavior.

Verification:

  • zig build test -Dtest-filter='C-API: debugger checkpoints survive generator yield and async await' — 2/2, no leaks.
  • zig build test -Dtest-filter='C-API: inspector protocol inventory has no hidden commands' — 2/2, no leaks.
  • zig build test-c-api — C and C++ hosts pass; 117/117 declarations complete and present.
  • Accumulated zig build test gate — 811/811 tests passed.

Dynamic eval/module/function-constructor script discovery is explicitly tracked in #155; paused frames, scopes, and remote values remain in #154.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions