microsoft / microsoft/debug-adapter-protocol

Debug Protocol: Allow exception conditions to be specified by the protocol

Open
#155 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature-request
Dominant language
HTML
Stars
1.8k
Forks
173
Avg merge
7d 7h
Merged PRs (30d)
2

Description

In Visual Studio, users can ignore first chance exceptions when they are raised in specific modules. This is useful when an external component raises a lot of exceptions that the user does not care about. This feature can be supported by the protocol by adding the concept of exception conditions. Although these conditions are currently either "Module == name" or "Module != name" this proposal lets the condition type be specified in case other condition types are added.

/** An ExceptionOptions assigns configuration options to a set of exceptions.*/
export interface ExceptionOptions {

    // ....

    /** A set of conditions used to determine whether the exception should result in a break.
        The debugger will break only if the exception matches all listed conditions.*/
    conditions?: ExceptionCondition[];
}

/** Condition to determine if the exception should be handled by the debugger.*/
export interface ExceptionCondition {
    /** Type of the condition.*/
    type: 'module';
    /** Operation to apply to the condition value.*/
    operator?: 'equals' | 'notEquals';
    /** Value of the condition.*/
    value: string;
}

/** Information about the capabilities of a debug adapter.*/
export interface Capabilities {

    // ....

    /** The debug adapter supports using exception conditions in exception options.*/
    supportsExceptionConditions?: boolean;
}

@weinand @andrewcrawley @gregg-miskelly

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The proposal targets the TypeScript protocol interfaces ExceptionOptions, ExceptionCondition, and Capabilities; start by locating their definitions and related protocol representations. Verify that exception options can express module equals/notEquals conditions and that adapters can advertise support through the capability flag.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.