{
  "product": "Specification (reference)",
  "title": "Debugger",
  "summary": "Stop a running program at the right moment and see why it is wrong.",
  "category": "devtools",
  "entries": [
    {
      "path": [
        "AI",
        "Attach",
        "Launch a program or attach to a running process"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Attach",
        "Remote debugging over a documented protocol"
      ],
      "value": "DAP",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Breakpoints",
        "Line, function and exception breakpoints"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Breakpoints",
        "Conditional breakpoints and hit counts"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Breakpoints",
        "Logpoints that print without stopping"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Breakpoints",
        "Survive restart and source edits"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Stepping",
        "Step over, into, out, and continue"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Stepping",
        "Step back or replay, where supported"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Stepping",
        "Run to cursor and jump to a location"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Inspect",
        "Call stack with frame selection"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Inspect",
        "Locals, arguments, closures and globals"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Inspect",
        "Expression evaluation in the selected frame"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Inspect",
        "Watch expressions re-evaluated on each stop"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Inspect",
        "Deep object inspection without truncating silently"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Source",
        "Source maps resolve to original files"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Concurrency",
        "Threads or async tasks listed and switchable"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Concurrency",
        "Async stack traces across awaits"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Safety",
        "Detaching leaves the program running correctly"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    }
  ]
}
