anchor.diff:    }
   
     Future stop() async {
  -    if (_process == null) {
  -      throw new StateError(
  -          '_AdbLogReader must be started before it can be stopped.');
  -    }
  +    if (_process == null)
  +      throw new StateError('_AdbLogReader must be started before it can be stopped.');
  +
       _stdoutSubscription?.cancel();
       _stdoutSubscription = null;
       _stderrSubscription?.cancel();
  
positive.code: 
      RegExp timeRegExp = new RegExp(r'^\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}', multiLine: true);
      Match timeMatch = timeRegExp.firstMatch(output);
      return timeMatch[0];
    }
  
    Future<String> stopTracing(AndroidApk apk, { String outPath }) async {
  
negative.code:     ]));
    }
  
    /// Return the most recent timestamp in the Android log or `null` if there is
    /// no available timestamp. The format can be passed to logcat's -T option.
    String get lastLogcatTimestamp {
      String output = runCheckedSync(adbCommandForDevice(<String>[
        '-s', id, 'logcat', '-v', 'time', '-t', '1'
  