The issue described in #1117 has come back. Our fix was (admittedly fragile) to detect which isolates were the pub snapshot by name and set the exception type differently:
|
if (thread.runnable) { |
|
let threadMode = mode; |
|
|
|
// If the mode is set to "All Exceptions" but the thread is a snapshot from pub |
|
// then downgrade it to Uncaught because the user is unlikely to want to be stopping |
|
// on internal exceptions such trying to parse versions. |
|
if (mode === "All" && thread.isInfrastructure) |
|
threadMode = "Unhandled"; |
|
|
|
this.debugSession.observatory.setExceptionPauseMode(thread.ref.id, threadMode); |
|
} |
|
// Whether this thread is infrastructure (eg. not user code), useful for avoiding breaking |
|
// on handled exceptions, etc. |
|
get isInfrastructure(): boolean { |
|
return this.ref && this.ref.name && this.ref.name.startsWith("pub.dart.snapshot"); |
|
} |
However in a recent build, the thread names have all lost the snapshot prefixes:
v2.2.0

Today's nightly:

The issue described in #1117 has come back. Our fix was (admittedly fragile) to detect which isolates were the pub snapshot by name and set the exception type differently:
Dart-Code/src/debug/dart_debug_impl.ts
Lines 1494 to 1504 in d0dc426
Dart-Code/src/debug/dart_debug_impl.ts
Lines 1620 to 1624 in d0dc426
However in a recent build, the thread names have all lost the snapshot prefixes:
v2.2.0

Today's nightly:
