OLD | NEW |
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 part of service; | 5 part of service; |
6 | 6 |
7 /// Helper function for canceling a Future<StreamSubscription>. | 7 /// Helper function for canceling a Future<StreamSubscription>. |
8 Future cancelFutureSubscription( | 8 Future cancelFutureSubscription( |
9 Future<StreamSubscription> subscriptionFuture) async { | 9 Future<StreamSubscription> subscriptionFuture) async { |
10 if (subscriptionFuture != null) { | 10 if (subscriptionFuture != null) { |
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
507 } | 507 } |
508 | 508 |
509 /// State for a VM being inspected. | 509 /// State for a VM being inspected. |
510 abstract class VM extends ServiceObjectOwner { | 510 abstract class VM extends ServiceObjectOwner { |
511 @reflectable VM get vm => this; | 511 @reflectable VM get vm => this; |
512 @reflectable Isolate get isolate => null; | 512 @reflectable Isolate get isolate => null; |
513 | 513 |
514 // TODO(turnidge): The connection should not be stored in the VM object. | 514 // TODO(turnidge): The connection should not be stored in the VM object. |
515 bool get isDisconnected; | 515 bool get isDisconnected; |
516 | 516 |
| 517 // Used for verbose logging. |
| 518 bool verbose = false; |
| 519 |
517 // TODO(johnmccutchan): Ensure that isolates do not end up in _cache. | 520 // TODO(johnmccutchan): Ensure that isolates do not end up in _cache. |
518 Map<String,ServiceObject> _cache = new Map<String,ServiceObject>(); | 521 Map<String,ServiceObject> _cache = new Map<String,ServiceObject>(); |
519 final ObservableMap<String,Isolate> _isolateCache = | 522 final ObservableMap<String,Isolate> _isolateCache = |
520 new ObservableMap<String,Isolate>(); | 523 new ObservableMap<String,Isolate>(); |
521 | 524 |
522 // The list of live isolates, ordered by isolate start time. | 525 // The list of live isolates, ordered by isolate start time. |
523 final ObservableList<Isolate> isolates = new ObservableList<Isolate>(); | 526 final ObservableList<Isolate> isolates = new ObservableList<Isolate>(); |
524 | 527 |
525 @observable String version = 'unknown'; | 528 @observable String version = 'unknown'; |
526 @observable String targetCPU; | 529 @observable String targetCPU; |
(...skipping 747 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1274 timerMap['time_creating_snapshot'] + | 1277 timerMap['time_creating_snapshot'] + |
1275 timerMap['time_isolate_initialization'] + | 1278 timerMap['time_isolate_initialization'] + |
1276 timerMap['time_bootstrap']); | 1279 timerMap['time_bootstrap']); |
1277 timers['dart'] = timerMap['time_dart_execution']; | 1280 timers['dart'] = timerMap['time_dart_execution']; |
1278 | 1281 |
1279 updateHeapsFromMap(map['_heaps']); | 1282 updateHeapsFromMap(map['_heaps']); |
1280 _updateBreakpoints(map['breakpoints']); | 1283 _updateBreakpoints(map['breakpoints']); |
1281 exceptionsPauseInfo = map['_debuggerSettings']['_exceptions']; | 1284 exceptionsPauseInfo = map['_debuggerSettings']['_exceptions']; |
1282 | 1285 |
1283 pauseEvent = map['pauseEvent']; | 1286 pauseEvent = map['pauseEvent']; |
| 1287 if (vm.verbose) { |
| 1288 print('VM-VERBOSE: $name reloaded. pause event= $pauseEvent'); |
| 1289 } |
1284 _updateRunState(); | 1290 _updateRunState(); |
1285 error = map['error']; | 1291 error = map['error']; |
1286 | 1292 |
1287 libraries.clear(); | 1293 libraries.clear(); |
1288 libraries.addAll(map['libraries']); | 1294 libraries.addAll(map['libraries']); |
1289 libraries.sort(ServiceObject.LexicalSortName); | 1295 libraries.sort(ServiceObject.LexicalSortName); |
1290 if (savedStartTime == null) { | 1296 if (savedStartTime == null) { |
1291 vm._buildIsolateList(); | 1297 vm._buildIsolateList(); |
1292 } | 1298 } |
1293 } | 1299 } |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1325 void _addBreakpoint(Breakpoint bpt) { | 1331 void _addBreakpoint(Breakpoint bpt) { |
1326 breakpoints[bpt.number] = bpt; | 1332 breakpoints[bpt.number] = bpt; |
1327 } | 1333 } |
1328 | 1334 |
1329 void _removeBreakpoint(Breakpoint bpt) { | 1335 void _removeBreakpoint(Breakpoint bpt) { |
1330 breakpoints.remove(bpt.number); | 1336 breakpoints.remove(bpt.number); |
1331 bpt.remove(); | 1337 bpt.remove(); |
1332 } | 1338 } |
1333 | 1339 |
1334 void _onEvent(ServiceEvent event) { | 1340 void _onEvent(ServiceEvent event) { |
| 1341 if (vm.verbose) { |
| 1342 print('VM-VERBOSE: $name _onEvent $event'); |
| 1343 } |
1335 switch(event.kind) { | 1344 switch(event.kind) { |
1336 case ServiceEvent.kIsolateStart: | 1345 case ServiceEvent.kIsolateStart: |
1337 case ServiceEvent.kIsolateRunnable: | 1346 case ServiceEvent.kIsolateRunnable: |
1338 case ServiceEvent.kIsolateExit: | 1347 case ServiceEvent.kIsolateExit: |
1339 case ServiceEvent.kInspect: | 1348 case ServiceEvent.kInspect: |
1340 // Handled elsewhere. | 1349 // Handled elsewhere. |
1341 break; | 1350 break; |
1342 | 1351 |
1343 case ServiceEvent.kBreakpointAdded: | 1352 case ServiceEvent.kBreakpointAdded: |
1344 _addBreakpoint(event.breakpoint); | 1353 _addBreakpoint(event.breakpoint); |
1345 break; | 1354 break; |
1346 | 1355 |
1347 case ServiceEvent.kIsolateUpdate: | 1356 case ServiceEvent.kIsolateUpdate: |
1348 case ServiceEvent.kBreakpointResolved: | 1357 case ServiceEvent.kBreakpointResolved: |
1349 case ServiceEvent.kDebuggerSettingsUpdate: | 1358 case ServiceEvent.kDebuggerSettingsUpdate: |
1350 // Update occurs as side-effect of caching. | 1359 // Update occurs as side-effect of caching. |
1351 break; | 1360 break; |
1352 | 1361 |
1353 case ServiceEvent.kBreakpointRemoved: | 1362 case ServiceEvent.kBreakpointRemoved: |
1354 _removeBreakpoint(event.breakpoint); | 1363 _removeBreakpoint(event.breakpoint); |
1355 break; | 1364 break; |
1356 | 1365 |
1357 case ServiceEvent.kPauseStart: | 1366 case ServiceEvent.kPauseStart: |
1358 case ServiceEvent.kPauseExit: | 1367 case ServiceEvent.kPauseExit: |
1359 case ServiceEvent.kPauseBreakpoint: | 1368 case ServiceEvent.kPauseBreakpoint: |
1360 case ServiceEvent.kPauseInterrupted: | 1369 case ServiceEvent.kPauseInterrupted: |
1361 case ServiceEvent.kPauseException: | 1370 case ServiceEvent.kPauseException: |
1362 case ServiceEvent.kResume: | 1371 case ServiceEvent.kResume: |
1363 pauseEvent = event; | 1372 pauseEvent = event; |
| 1373 print('VM-VERBOSE: $name pause event $pauseEvent'); |
1364 _updateRunState(); | 1374 _updateRunState(); |
1365 break; | 1375 break; |
1366 | 1376 |
1367 case ServiceEvent.kGraph: | 1377 case ServiceEvent.kGraph: |
1368 _loadHeapSnapshot(event); | 1378 _loadHeapSnapshot(event); |
1369 break; | 1379 break; |
1370 | 1380 |
1371 case ServiceEvent.kGC: | 1381 case ServiceEvent.kGC: |
1372 // Ignore GC events for now. | 1382 // Ignore GC events for now. |
1373 break; | 1383 break; |
(...skipping 2426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3800 var v = list[i]; | 3810 var v = list[i]; |
3801 if ((v is ObservableMap) && _isServiceMap(v)) { | 3811 if ((v is ObservableMap) && _isServiceMap(v)) { |
3802 list[i] = owner.getFromMap(v); | 3812 list[i] = owner.getFromMap(v); |
3803 } else if (v is ObservableList) { | 3813 } else if (v is ObservableList) { |
3804 _upgradeObservableList(v, owner); | 3814 _upgradeObservableList(v, owner); |
3805 } else if (v is ObservableMap) { | 3815 } else if (v is ObservableMap) { |
3806 _upgradeObservableMap(v, owner); | 3816 _upgradeObservableMap(v, owner); |
3807 } | 3817 } |
3808 } | 3818 } |
3809 } | 3819 } |
OLD | NEW |