diff --git a/src/vs/workbench/contrib/debug/browser/debugService.ts b/src/vs/workbench/contrib/debug/browser/debugService.ts index 82bb31e1916912d21a7d3118873cb13aa0a69ff0..f6a49d3eeebda05e44abc474c4f20c86943e2f3c 100644 --- a/src/vs/workbench/contrib/debug/browser/debugService.ts +++ b/src/vs/workbench/contrib/debug/browser/debugService.ts @@ -912,7 +912,13 @@ export class DebugService implements IDebugService { private sendExceptionBreakpoints(session?: IDebugSession): Promise { const enabledExceptionBps = this.model.getExceptionBreakpoints().filter(exb => exb.enabled); - return sendToOneOrAllSessions(this.model, session, s => s.sendExceptionBreakpoints(enabledExceptionBps)); + return sendToOneOrAllSessions(this.model, session, async s => { + if (s.capabilities.supportsConfigurationDoneRequest && (!s.capabilities.exceptionBreakpointFilters || s.capabilities.exceptionBreakpointFilters.length === 0)) { + // Only call `setExceptionBreakpoints` as specified in dap protocol #90001 + return; + } + await s.sendExceptionBreakpoints(enabledExceptionBps); + }); } private onFileChanges(fileChangesEvent: FileChangesEvent): void {