| 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 a01064fb9e18b43ce6e05f7f253b218a5133879e..8b91efffe5b35548afe24bb75b7924feafcf80b1 100644
|
| --- a/runtime/observatory/lib/src/elements/debugger.dart
|
| +++ b/runtime/observatory/lib/src/elements/debugger.dart
|
| @@ -209,8 +209,7 @@ class DownCommand extends DebuggerCommand {
|
| debugger.downFrame(count);
|
| debugger.console.print('frame = ${debugger.currentFrame}');
|
| } catch (e) {
|
| - debugger.console.print(
|
| - 'frame must be in range [${e.start}..${e.end-1}]');
|
| + debugger.console.print('frame must be in range [${e.start},${e.end-1}]');
|
| }
|
| return new Future.value(null);
|
| }
|
| @@ -244,8 +243,7 @@ class UpCommand extends DebuggerCommand {
|
| debugger.upFrame(count);
|
| debugger.console.print('frame = ${debugger.currentFrame}');
|
| } on RangeError catch (e) {
|
| - debugger.console.print(
|
| - 'frame must be in range [${e.start}..${e.end-1}]');
|
| + debugger.console.print('frame must be in range [${e.start},${e.end-1}]');
|
| }
|
| return new Future.value(null);
|
| }
|
| @@ -281,8 +279,7 @@ class FrameCommand extends DebuggerCommand {
|
| debugger.currentFrame = frame;
|
| debugger.console.print('frame = ${debugger.currentFrame}');
|
| } on RangeError catch (e) {
|
| - debugger.console.print(
|
| - 'frame must be in range [${e.start}..${e.end-1}]');
|
| + debugger.console.print('frame must be in range [${e.start},${e.end-1}]');
|
| }
|
| return new Future.value(null);
|
| }
|
| @@ -406,73 +403,6 @@ class StepCommand extends DebuggerCommand {
|
| 'Syntax: step\n';
|
| }
|
|
|
| -class RewindCommand extends DebuggerCommand {
|
| - RewindCommand(Debugger debugger) : super(debugger, 'rewind', []);
|
| -
|
| - Future run(List<String> args) async {
|
| - try {
|
| - int count = 1;
|
| - if (args.length == 1) {
|
| - count = int.parse(args[0]);
|
| - } else if (args.length > 1) {
|
| - debugger.console.print('rewind expects 0 or 1 argument');
|
| - return;
|
| - } else if (count < 1 || count > debugger.stackDepth) {
|
| - debugger.console.print(
|
| - 'frame must be in range [1..${debugger.stackDepth - 1}]');
|
| - return;
|
| - }
|
| - await debugger.rewind(count);
|
| - } on S.ServerRpcException catch(e) {
|
| - if (e.code == S.ServerRpcException.kCannotResume) {
|
| - debugger.console.printRed(e.data['details']);
|
| - } else {
|
| - rethrow;
|
| - }
|
| - }
|
| - }
|
| -
|
| - String helpShort = 'Rewind the stack to a previous frame';
|
| -
|
| - String helpLong =
|
| - 'Rewind the stack to a previous frame.\n'
|
| - '\n'
|
| - 'Syntax: rewind\n'
|
| - ' rewind <count>\n';
|
| -}
|
| -
|
| -class ReloadCommand extends DebuggerCommand {
|
| - ReloadCommand(Debugger debugger) : super(debugger, 'reload', []);
|
| -
|
| - Future run(List<String> args) async {
|
| - try {
|
| - int count = 1;
|
| - if (args.length > 0) {
|
| - debugger.console.print('reload expects no arguments');
|
| - return;
|
| - }
|
| - await debugger.isolate.reloadSources();
|
| - debugger.console.print('reload complete');
|
| - await debugger.refreshStack();
|
| - } on S.ServerRpcException catch(e) {
|
| - if (e.code == S.ServerRpcException.kIsolateReloadBarred ||
|
| - e.code == S.ServerRpcException.kIsolateReloadFailed ||
|
| - e.code == S.ServerRpcException.kIsolateIsReloading) {
|
| - debugger.console.printRed(e.data['details']);
|
| - } else {
|
| - rethrow;
|
| - }
|
| - }
|
| - }
|
| -
|
| - String helpShort = 'Reload the sources for the current isolate';
|
| -
|
| - String helpLong =
|
| - 'Reload the sources for the current isolate.\n'
|
| - '\n'
|
| - 'Syntax: reload\n';
|
| -}
|
| -
|
| class ClsCommand extends DebuggerCommand {
|
| ClsCommand(Debugger debugger) : super(debugger, 'cls', []) {}
|
|
|
| @@ -733,8 +663,8 @@ class BreakCommand extends DebuggerCommand {
|
| var script = loc.script;
|
| await script.load();
|
| if (loc.line < 1 || loc.line > script.lines.length) {
|
| - debugger.console.print(
|
| - 'line number must be in range [1..${script.lines.length}]');
|
| + debugger.console
|
| + .print('line number must be in range [1,${script.lines.length}]');
|
| return;
|
| }
|
| try {
|
| @@ -814,7 +744,7 @@ class ClearCommand extends DebuggerCommand {
|
| var script = loc.script;
|
| if (loc.line < 1 || loc.line > script.lines.length) {
|
| debugger.console
|
| - .print('line number must be in range [1..${script.lines.length}]');
|
| + .print('line number must be in range [1,${script.lines.length}]');
|
| return;
|
| }
|
| var lineInfo = script.getLine(loc.line);
|
| @@ -969,6 +899,7 @@ class IsolateCommand extends DebuggerCommand {
|
| : super(debugger, 'isolate', [
|
| new IsolateListCommand(debugger),
|
| new IsolateNameCommand(debugger),
|
| + new IsolateReloadCommand(debugger),
|
| ]) {
|
| alias = 'i';
|
| }
|
| @@ -1111,6 +1042,27 @@ class IsolateNameCommand extends DebuggerCommand {
|
| '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', [
|
| @@ -1419,9 +1371,7 @@ class ObservatoryDebugger extends Debugger {
|
| new LogCommand(this),
|
| new PauseCommand(this),
|
| new PrintCommand(this),
|
| - new ReloadCommand(this),
|
| new RefreshCommand(this),
|
| - new RewindCommand(this),
|
| new SetCommand(this),
|
| new SmartNextCommand(this),
|
| new StepCommand(this),
|
| @@ -1929,20 +1879,6 @@ class ObservatoryDebugger extends Debugger {
|
| return new Future.value(null);
|
| }
|
| }
|
| -
|
| - Future rewind(int count) {
|
| - if (isolatePaused()) {
|
| - var event = isolate.pauseEvent;
|
| - if (event is M.PauseExitEvent) {
|
| - console.print("Type 'continue' [F7] to exit the isolate");
|
| - return new Future.value(null);
|
| - }
|
| - return isolate.rewind(count);
|
| - } else {
|
| - console.print('The program must be paused');
|
| - return new Future.value(null);
|
| - }
|
| - }
|
| }
|
|
|
| class DebuggerPageElement extends HtmlElement implements Renderable {
|
| @@ -2577,9 +2513,7 @@ class DebuggerFrameElement extends HtmlElement implements Renderable {
|
| }
|
|
|
| bool matchFrame(S.Frame newFrame) {
|
| - return (newFrame.function.id == _frame.function.id &&
|
| - newFrame.location.script.id ==
|
| - frame.location.script.id);
|
| + return newFrame.function.id == _frame.function.id;
|
| }
|
|
|
| void updateFrame(S.Frame newFrame) {
|
|
|