anchor.diff:    Future<void> addBreakpoint(String path, int line) async {
       final VM vm = await vmService.getVM();
       final VMIsolate isolate = await vm.isolates.first.load();
  -    debugPrint('Sending breakpoint for $path:$line');
  +    _debugPrint('Sending breakpoint for $path:$line');
       await isolate.addBreakpoint(path, line);
     }
   
     Future<VMIsolate> waitForPause() async {
       final VM vm = await vmService.getVM();
       final VMIsolate isolate = await vm.isolates.first.load();
  -    debugPrint('Waiting for isolate to pause');
  -    await isolate.waitUntilPaused()
  -        .timeout(defaultTimeout, onTimeout: () => throw 'Isolate did not pause');
  +    _debugPrint('Waiting for isolate to pause');
  +    await _timeoutWithMessages<dynamic>(isolate.waitUntilPaused,
  +        message: 'Isolate did not pause');
       return isolate.load();
     }
   
  
positive.code:     _stderr.stream.listen(_errorBuffer.writeln);
  
      // This is just debug printing to aid running/debugging tests locally.
      _stdout.stream.listen(debugPrint);
      _stderr.stream.listen(debugPrint);
  
      // Set this up now, but we don't wait it yet. We want to make sure we don't
      // miss it while waiting for debugPort below.
      final Future<Map<String, dynamic>> started = _waitFor(event: 'app.started');
  
      if (withDebugger) {
        final Future<Map<String, dynamic>> debugPort = _waitFor(event: 'app.debugPort');
        final String wsUriString = (await debugPort)['params']['wsUri'];
        final Uri uri = Uri.parse(wsUriString);
        // Proxy the stream/sink for the VM Client so we can debugPrint it.
        final StreamChannel<String> channel = new IOWebSocketChannel.connect(uri)
            .cast<String>()
            .changeStream((Stream<String> stream) => stream.map(debugPrint))
            .changeSink((StreamSink<String> sink) =>
                new StreamController<String>()
                  ..stream.listen((String s) => sink.add(debugPrint(s))));
        vmService = new VMServiceClient(channel);
  
        // Because we start paused, resume so the app is in a "running" state as
  
negative.code:     return script.sourceLocation(frame.location.token);
    }
  
    Future<Map<String, dynamic>> _waitFor({String event, int id, Duration timeout}) async {
      final Completer<Map<String, dynamic>> response = new Completer<Map<String, dynamic>>();
      final StreamSubscription<String> sub = _stdout.stream.listen((String line) {
        final dynamic json = _parseFlutterResponse(line);
  