Skip to content

Breakpoint system needs a serious overhaul #55268

@lukehutch

Description

@lukehutch

The breakpoint system in Dart needs a serious audit and overhaul. Breakpoints are close to unusable right now.

Among the (many) issues I run into, every time I am trying to debug code:

  • When you click in the margin of a line in VS Code to set a breakpoint, more often than actually setting a breakpoint on the line, one of the following happens at random (and clicking in the margin of the same line multiple times may do all of these in some random order):
    • A breakpoint is set on some other line, above or below where you click. Sometimes that line doesn't even have code on it, it is a comment (the first link below shows this).
    • No breakpoint is set at all.
    • A breakpoint is listed in the breakpoint dialog at bottom left, but no breakpoint dot is shown on the program. (May be VS Code specific).
    • Breakpoints are often unconfirmed (gray open circle) rather than confirmed (red dot). The debugger often doesn't even stop on unconfirmed breakpoints.
    • Adding a breakpoint to one line may randomly remove a breakpoint on another line, even several lines away from the line you clicked in the margin of. Sometimes adding one breakpoint will even remove two nearby breakpoints.
  • Breakpoints either cannot be set at all in lambda functions, or if they are set, they remain unconfirmed, and the debugger won't stop on them.
  • Clicking the hot reload button in VS Code often causes breakpoints to jump to different lines, or even disappear.

Here's a video of some of the behavior: Dart-Code/Dart-Code#4811

Related, filed by @DanTup : #54100 -- this was closed because it was supposed to have been fixed by ec30968 by @derekxu16, but this did not fix the issue at all.

Also related: Dart-Code/Dart-Code#4915 .

Metadata

Metadata

Assignees

Labels

P2A bug or feature request we're likely to work onarea-toolsA meta category for issues that should be addressed by tooling (prefer more concrete areas).triagedIssue has been triaged by sub team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions