formatStackTrace method

String? formatStackTrace(
  1. StackTrace? stackTrace,
  2. int methodCount
)

Implementation

String? formatStackTrace(StackTrace? stackTrace, int methodCount) {
  var lines = stackTrace.toString().split('\n');
  if (stackTraceBeginIndex > 0 && stackTraceBeginIndex < lines.length - 1) {
    lines = lines.sublist(stackTraceBeginIndex);
  }
  var formatted = <String>[];
  var count = 0;
  for (var line in lines) {
    if (_discardDeviceStacktraceLine(line) ||
        _discardWebStacktraceLine(line) ||
        _discardBrowserStacktraceLine(line) ||
        line.isEmpty) {
      continue;
    }
    // hgg 跳过显示工具类的位置
    if (count > startMethodNum - 1) {
      formatted.add(line.replaceFirst(RegExp(r'#\d+\s+'), ''));
    }
    if (++count == methodCount + startMethodNum) {
      break;
    }
  }

  if (formatted.isEmpty) {
    return null;
  } else {
    return formatted.join('\n');
  }
}