MCP debug_exception_breakpoints_set
Description
Sets which BrightScript exception categories should stop the app (SET_EXCEPTION_BREAKPOINTS, DAP-only, requires BrightScript debug protocol >= 3.3.0 -- check debug_session_status's capabilities.exceptionBreakpoints first, or this call fails with a clear 400 instead of attempting anything on the device).
This REPLACES the entire filter set on every call -- it is not additive like debug_breakpoint_set. Pass an empty array to clear all exception breakpoints.
An uncaught exception ALWAYS stops the app once a debugger is attached, regardless of this tool -- that needs no filter at all (device-verified live). The one thing this tool actually controls is "caught": an exception the app's own try/catch would otherwise handle silently. Setting {filter: "caught"} makes the debugger stop there too, before the catch block runs -- confirmed against the BrightScript firmware's own test suite (TC-EBP-3). "uncaught" is accepted but adds nothing beyond the always-on default.
Each filter can carry an optional per-filter guard expression (condition) -- e.g. only stop on a caught exception when a specific expression is true. There is no async confirmation update for this command (unlike line breakpoints' BREAKPOINT_VERIFIED) -- a successful response means the device acknowledged every filter with err=OK, not a separate later confirmation.
Parameters:
- filters (array, required): [] clears all exception breakpoints. Each entry: { filter: "caught" | "uncaught" (required), condition?: string }.
- sessionId (string, optional): defaults to the active debug session.
See also
- HTTP debugSetExceptionBreakpoints (
POST /api/debug/exception-breakpoints/set) - rk debug exception-breakpoints set
Parameters
additionalProperties: false
| Name | Type | Required | Values |
|---|---|---|---|
| filters | array<object> | Yes | |
| sessionId | string | No |
filters
Exception filters to break on. [] clears all.
filters fields
| Name | Type | Required | Values | Description |
|---|---|---|---|---|
| filters[] | object | No | additionalProperties: false | Not documented in the source. |
| filters[].filter | "caught" | "uncaught" | Yes | enum: "caught", "uncaught" | "caught" stops on an exception the app itself would otherwise handle; "uncaught" is accepted but adds nothing beyond the always-on default stop on an unhandled exception. |
| filters[].condition | string | No | Optional per-filter guard expression. |
sessionId
Debug session id; defaults to the active session.
Updated about 4 hours ago