blob: 4ad6de581681ee37a12624d1996c9317dee53d4f [file] [log] [blame] [edit]
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'reader.dart';
abstract class DwarfContainerStringTable {
String? operator [](int index);
}
abstract class DwarfContainerSymbol {
int get value;
String get name;
}
abstract class DwarfContainer {
/// Returns the architecture of the container as reported by Dart (e.g.,
/// 'x64' or 'arm'). Returns null if the architecture of the container does
/// not match any expected Dart architecture.
String? get architecture;
Reader? debugInfoReader(Reader containerReader);
Reader? lineNumberInfoReader(Reader containerReader);
Reader? abbreviationsTableReader(Reader containerReader);
DwarfContainerSymbol? staticSymbolAt(int address);
int? get vmStartAddress;
int? get isolateStartAddress;
String? get buildId;
Iterable<DwarfContainerSymbol> get staticSymbols;
DwarfContainerStringTable? get debugStringTable;
DwarfContainerStringTable? get debugLineStringTable;
void writeToStringBuffer(StringBuffer buffer);
@override
String toString() {
final buffer = StringBuffer();
writeToStringBuffer(buffer);
return buffer.toString();
}
}