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

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

Issue 1143783003: Add the streamListen and streamCancel rpcs to the vm service. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: before commit Created 5 years, 7 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 | Annotate | Revision Log
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';
11 import 'package:observatory/cli.dart'; 10 import 'package:observatory/cli.dart';
12 import 'package:observatory/debugger.dart'; 11 import 'package:observatory/debugger.dart';
13 import 'package:observatory/service.dart'; 12 import 'package:observatory/service.dart';
14 import 'package:polymer/polymer.dart'; 13 import 'package:polymer/polymer.dart';
15 14
16 // TODO(turnidge): Move Debugger, DebuggerCommand to debugger library. 15 // TODO(turnidge): Move Debugger, DebuggerCommand to debugger library.
17 abstract class DebuggerCommand extends Command { 16 abstract class DebuggerCommand extends Command {
18 ObservatoryDebugger debugger; 17 ObservatoryDebugger debugger;
19 18
20 DebuggerCommand(this.debugger, name, children) 19 DebuggerCommand(this.debugger, name, children)
(...skipping 851 matching lines...) Expand 10 before | Expand all | Expand 10 after
872 _isolate.reload().then((response) { 871 _isolate.reload().then((response) {
873 // TODO(turnidge): Currently the debugger relies on all libs 872 // TODO(turnidge): Currently the debugger relies on all libs
874 // being loaded. Fix this. 873 // being loaded. Fix this.
875 var pending = []; 874 var pending = [];
876 for (var lib in _isolate.libraries) { 875 for (var lib in _isolate.libraries) {
877 if (!lib.loaded) { 876 if (!lib.loaded) {
878 pending.add(lib.load()); 877 pending.add(lib.load());
879 } 878 }
880 } 879 }
881 Future.wait(pending).then((_) { 880 Future.wait(pending).then((_) {
882 if (_subscription == null) { 881 if (_isolateSubscription == null) {
883 _subscription = vm.events.stream.listen(_onEvent); 882 _isolateSubscription = vm.isolateEvents.listen(_onEvent);
883 }
884 if (_debugSubscription == null) {
885 _debugSubscription = vm.debugEvents.listen(_onEvent);
884 } 886 }
885 _refreshStack(isolate.pauseEvent).then((_) { 887 _refreshStack(isolate.pauseEvent).then((_) {
886 reportStatus(); 888 reportStatus();
887 }); 889 });
888 }).catchError((_) { 890 }).catchError((_) {
889 // Error loading libraries, try and display stack. 891 // Error loading libraries, try and display stack.
890 _refreshStack(isolate.pauseEvent).then((_) { 892 _refreshStack(isolate.pauseEvent).then((_) {
891 reportStatus(); 893 reportStatus();
892 }); 894 });
893 }); 895 });
894 }); 896 });
895 } else { 897 } else {
896 reportStatus(); 898 reportStatus();
897 } 899 }
898 } 900 }
899 901
900 set isolate(Isolate iso) { 902 set isolate(Isolate iso) {
901 // Setting the page's isolate will trigger updateIsolate to be called. 903 // Setting the page's isolate will trigger updateIsolate to be called.
902 // 904 //
903 // TODO(turnidge): Rework ownership of the ObservatoryDebugger in another 905 // TODO(turnidge): Rework ownership of the ObservatoryDebugger in another
904 // change. 906 // change.
905 page.isolate = iso; 907 page.isolate = iso;
906 } 908 }
907 Isolate get isolate => _isolate; 909 Isolate get isolate => _isolate;
908 Isolate _isolate; 910 Isolate _isolate;
909 var _subscription; 911 var _isolateSubscription;
912 var _debugSubscription;
910 913
911 void init() { 914 void init() {
912 console.newline(); 915 console.newline();
913 console.printBold("Type 'h' for help"); 916 console.printBold("Type 'h' for help");
914 // Wait a bit and if polymer still hasn't set up the isolate, 917 // Wait a bit and if polymer still hasn't set up the isolate,
915 // report this to the user. 918 // report this to the user.
916 new Timer(const Duration(seconds:1), () { 919 new Timer(const Duration(seconds:1), () {
917 if (isolate == null) { 920 if (isolate == null) {
918 reportStatus(); 921 reportStatus();
919 } 922 }
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
1166 return cmd.historyPrev(command); 1169 return cmd.historyPrev(command);
1167 } 1170 }
1168 1171
1169 String historyNext(String command) { 1172 String historyNext(String command) {
1170 return cmd.historyNext(command); 1173 return cmd.historyNext(command);
1171 } 1174 }
1172 } 1175 }
1173 1176
1174 @CustomTag('debugger-page') 1177 @CustomTag('debugger-page')
1175 class DebuggerPageElement extends ObservatoryElement { 1178 class DebuggerPageElement extends ObservatoryElement {
1176 @published ObservatoryApplication app;
1177 @published Isolate isolate; 1179 @published Isolate isolate;
1178 1180
1179 isolateChanged(oldValue) { 1181 isolateChanged(oldValue) {
1180 if (isolate != null) { 1182 if (isolate != null) {
1181 debugger.updateIsolate(isolate); 1183 debugger.updateIsolate(isolate);
1182 } 1184 }
1183 } 1185 }
1184 ObservatoryDebugger debugger = new ObservatoryDebugger(); 1186 ObservatoryDebugger debugger = new ObservatoryDebugger();
1185 1187
1186 DebuggerPageElement.created() : super.created() { 1188 DebuggerPageElement.created() : super.created() {
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after
1667 default: 1669 default:
1668 busy = false; 1670 busy = false;
1669 break; 1671 break;
1670 } 1672 }
1671 }); 1673 });
1672 } 1674 }
1673 1675
1674 DebuggerInputElement.created() : super.created(); 1676 DebuggerInputElement.created() : super.created();
1675 } 1677 }
1676 1678
OLDNEW
« no previous file with comments | « runtime/observatory/lib/src/app/page.dart ('k') | runtime/observatory/lib/src/elements/heap_profile.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698