Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(150)

Side by Side Diff: runtime/observatory/lib/src/elements/debugger.dart

Issue 1395693003: Improve isolate list. Expose isolate origin. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | runtime/observatory/lib/src/service/object.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library debugger_page_element; 5 library debugger_page_element;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:html'; 8 import 'dart:html';
9 import 'observatory_element.dart'; 9 import 'observatory_element.dart';
10 import 'package:observatory/app.dart'; 10 import 'package:observatory/app.dart';
(...skipping 951 matching lines...) Expand 10 before | Expand all | Expand 10 after
962 } 962 }
963 String helpShort = 'Switch the current isolate'; 963 String helpShort = 'Switch the current isolate';
964 964
965 String helpLong = 965 String helpLong =
966 'Switch the current isolate.\n' 966 'Switch the current isolate.\n'
967 '\n' 967 '\n'
968 'Syntax: isolate <number>\n' 968 'Syntax: isolate <number>\n'
969 ' isolate <name>\n'; 969 ' isolate <name>\n';
970 } 970 }
971 971
972 String _isolateRunState(Isolate isolate) {
973 if (isolate.paused) {
974 return 'paused';
975 } else if (isolate.running) {
976 return 'running';
977 } else if (isolate.idle) {
978 return 'idle';
979 } else {
980 return 'unknown';
981 }
982 }
983
972 class IsolateListCommand extends DebuggerCommand { 984 class IsolateListCommand extends DebuggerCommand {
973 IsolateListCommand(Debugger debugger) : super(debugger, 'list', []); 985 IsolateListCommand(Debugger debugger) : super(debugger, 'list', []);
974 986
975 Future run(List<String> args) { 987 Future run(List<String> args) async {
976 if (debugger.vm == null) { 988 if (debugger.vm == null) {
977 debugger.console.print( 989 debugger.console.print(
978 "Internal error: vm has not been set"); 990 "Internal error: vm has not been set");
979 return new Future.value(null); 991 return;
980 } 992 }
993
994 // Refresh all isolates first.
995 var pending = [];
981 for (var isolate in debugger.vm.isolates) { 996 for (var isolate in debugger.vm.isolates) {
982 String current = (isolate == debugger.isolate ? ' *' : ''); 997 pending.add(isolate.reload());
998 }
999 await Future.wait(pending);
1000
1001 const maxIdLen = 9;
1002 const maxRunStateLen = 7;
1003 var maxNameLen = 0;
1004 for (var isolate in debugger.vm.isolates) {
1005 if (isolate.name.length > maxNameLen) {
1006 maxNameLen = isolate.name.length;
1007 }
1008 }
1009
1010 debugger.console.print("${'ID'.padLeft(maxIdLen, ' ')} "
1011 "${'ORIGIN'.padLeft(maxIdLen, ' ')} "
1012 "${'NAME'.padRight(maxNameLen, ' ')} "
1013 "${'STATE'.padRight(maxRunStateLen, ' ')} "
1014 "CURRENT");
1015 for (var isolate in debugger.vm.isolates) {
1016 String current = (isolate == debugger.isolate ? '*' : '');
983 debugger.console.print( 1017 debugger.console.print(
984 "Isolate ${isolate.number} '${isolate.name}'${current}"); 1018 "${isolate.number.toString().padLeft(maxIdLen, ' ')} "
1019 "${isolate.originNumber.toString().padLeft(maxIdLen, ' ')} "
1020 "${isolate.name.padRight(maxNameLen, ' ')} "
1021 "${_isolateRunState(isolate).padRight(maxRunStateLen, ' ')} "
1022 "${current}");
985 } 1023 }
986 return new Future.value(null); 1024 debugger.console.newline();
987 } 1025 }
988 1026
989 String helpShort = 'List all isolates'; 1027 String helpShort = 'List all isolates';
990 1028
991 String helpLong = 1029 String helpLong =
992 'List all isolates.\n' 1030 'List all isolates.\n'
993 '\n' 1031 '\n'
994 'Syntax: isolate list\n'; 1032 'Syntax: isolate list\n';
995 } 1033 }
996 1034
(...skipping 1457 matching lines...) Expand 10 before | Expand all | Expand 10 after
2454 } 2492 }
2455 }); 2493 });
2456 } 2494 }
2457 2495
2458 void focus() { 2496 void focus() {
2459 $['textBox'].focus(); 2497 $['textBox'].focus();
2460 } 2498 }
2461 2499
2462 DebuggerInputElement.created() : super.created(); 2500 DebuggerInputElement.created() : super.created();
2463 } 2501 }
OLDNEW
« no previous file with comments | « no previous file | runtime/observatory/lib/src/service/object.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698