| Index: runtime/observatory/lib/src/elements/debugger.dart
|
| diff --git a/runtime/observatory/lib/src/elements/debugger.dart b/runtime/observatory/lib/src/elements/debugger.dart
|
| index 88653a57e24092f250122ea287b3b3f31e3ba710..06f91e799d14e4d6da8ff17950d752789b54e5ed 100644
|
| --- a/runtime/observatory/lib/src/elements/debugger.dart
|
| +++ b/runtime/observatory/lib/src/elements/debugger.dart
|
| @@ -1378,7 +1378,6 @@ class ObservatoryDebugger extends Debugger {
|
| if ((breakOnException != iso.exceptionsPauseInfo) &&
|
| (iso.exceptionsPauseInfo != null)) {
|
| breakOnException = iso.exceptionsPauseInfo;
|
| - console.print("Now pausing for exceptions: $breakOnException");
|
| }
|
|
|
| _isolate.reload().then((response) {
|
| @@ -1493,6 +1492,25 @@ class ObservatoryDebugger extends Debugger {
|
| warnOutOfDate();
|
| }
|
|
|
| + void _reportIsolateError(Isolate isolate) {
|
| + if (isolate == null) {
|
| + return;
|
| + }
|
| + DartError error = isolate.error;
|
| + if (error == null) {
|
| + return;
|
| + }
|
| + console.newline();
|
| + console.printBold('Isolate exited due to an unhandled exception:');
|
| + console.print(error.message);
|
| + console.newline();
|
| + console.printBold("Type 'set break-on-exception Unhandled' to pause the"
|
| + " isolate when an unhandled exception occurs.");
|
| + console.newline();
|
| + console.printBold("You can make this the default by running with "
|
| + "--pause-isolates-on-unhandled-exceptions");
|
| + }
|
| +
|
| void _reportPause(ServiceEvent event) {
|
| if (event.kind == ServiceEvent.kPauseStart) {
|
| console.print(
|
| @@ -1502,6 +1520,7 @@ class ObservatoryDebugger extends Debugger {
|
| console.print(
|
| "Paused at isolate exit "
|
| "(type 'continue' or [F7] to exit the isolate')");
|
| + _reportIsolateError(isolate);
|
| } else if (stack['frames'].length > 0) {
|
| Frame frame = stack['frames'][0];
|
| var script = frame.location.script;
|
| @@ -1618,8 +1637,11 @@ class ObservatoryDebugger extends Debugger {
|
| case ServiceEvent.kPauseInterrupted:
|
| case ServiceEvent.kPauseException:
|
| if (event.owner == isolate) {
|
| - _refreshStack(event).then((_) {
|
| + _refreshStack(event).then((_) async {
|
| flushStdio();
|
| + if (isolate != null) {
|
| + await isolate.reload();
|
| + }
|
| _reportPause(event);
|
| });
|
| }
|
|
|