DwarfStackTraceDecoder class

A StreamTransformer that scans lines for non-symbolic stack traces.

A NativeStackTraceDecoder scans a stream of lines for non-symbolic stack traces containing only program counter address information. Such stack traces are generated by the VM when executing a snapshot compiled with --dwarf-stack-traces.

The transformer assumes that there may be text preceding the stack frames on individual lines, like in log files, but that there is no trailing text. For each stack frame found, the transformer attempts to locate a function name, file name and line number using the provided DWARF information.

If no information is found, or the line is not a stack frame, then the line will be unchanged in the output stream.

If the located information corresponds to Dart internals and includeInternalFrames is false, then the output stream contains no entries for the line.

Otherwise, the output stream contains one or more lines with symbolic stack frames for the given non-symbolic stack frame line. Multiple symbolic stack frame lines are generated when the PC address corresponds to inlined code. In the output stream, each symbolic stack frame is prefixed by the non-stack frame portion of the original line.

Inheritance

Constructors

DwarfStackTraceDecoder(Dwarf _dwarf, {Map<int, Dwarf>? dwarfByUnitId, Iterable<Dwarf>? unitDwarfs, bool includeInternalFrames = false})

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

bind(Stream<String> stream) Stream<String>
Transforms the provided stream.
override
cast<RS, RT>() StreamTransformer<RS, RT>
Provides a StreamTransformer<RS, RT> view of this stream transformer.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited