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 81541ef595d7032a7b5e2d3f36859e6fee758bc9..61a8989d60b4dd1737a817f739e05a2b6f5fc4c5 100644 |
--- a/runtime/observatory/lib/src/elements/debugger.dart |
+++ b/runtime/observatory/lib/src/elements/debugger.dart |
@@ -902,6 +902,7 @@ class IsolateCommand extends DebuggerCommand { |
IsolateCommand(Debugger debugger) : super(debugger, 'isolate', [ |
new IsolateListCommand(debugger), |
new IsolateNameCommand(debugger), |
+ new IsolateReloadCommand(debugger), |
]) { |
alias = 'i'; |
} |
@@ -962,10 +963,10 @@ class IsolateCommand extends DebuggerCommand { |
} |
return new Future.value(result); |
} |
- String helpShort = 'Switch the current isolate'; |
+ String helpShort = 'Switch, list, rename, or reload isolates'; |
String helpLong = |
- 'Switch, list, or rename isolates.\n' |
+ 'Switch the current isolate.\n' |
'\n' |
'Syntax: isolate <number>\n' |
' isolate <name>\n'; |
@@ -1042,14 +1043,36 @@ class IsolateNameCommand extends DebuggerCommand { |
return debugger.isolate.setName(args[0]); |
} |
- String helpShort = 'Rename an isolate'; |
+ String helpShort = 'Rename the current isolate'; |
String helpLong = |
- 'Rename an isolate.\n' |
+ 'Rename the current isolate.\n' |
'\n' |
'Syntax: isolate name <name>\n'; |
} |
+class IsolateReloadCommand extends DebuggerCommand { |
+ IsolateReloadCommand(Debugger debugger) : super(debugger, 'reload', []); |
+ |
+ Future run(List<String> args) async { |
+ if (debugger.isolate == null) { |
+ debugger.console.print('There is no current vm'); |
+ return; |
+ } |
+ |
+ await debugger.isolate.reloadSources(); |
+ |
+ debugger.console.print('Isolate reloading....'); |
+ } |
+ |
+ String helpShort = 'Reload the sources for the current isolate.'; |
+ |
+ String helpLong = |
+ 'Reload the sources for the current isolate.\n' |
+ '\n' |
+ 'Syntax: reload\n'; |
+} |
+ |
class InfoCommand extends DebuggerCommand { |
InfoCommand(Debugger debugger) : super(debugger, 'info', [ |
new InfoBreakpointsCommand(debugger), |
@@ -1650,6 +1673,15 @@ class ObservatoryDebugger extends Debugger { |
console.print("Isolate ${iso.number} renamed to '${iso.name}'"); |
break; |
+ case ServiceEvent.kIsolateReload: |
+ var reloadError = event.reloadError; |
+ if (reloadError != null) { |
+ console.print('Isolate reload failed: ${event.reloadError}'); |
+ } else { |
+ console.print('Isolate reloaded.'); |
+ } |
+ break; |
+ |
case ServiceEvent.kPauseStart: |
case ServiceEvent.kPauseExit: |
case ServiceEvent.kPauseBreakpoint: |