NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #12 most downloaded on pub.dev
A package for manipulating stack traces and printing them readably.
Last release 1 months ago
28 Aug 2026
Release timing varies
gaps range from 1 weeks to 1.7 years
Nearly every release is documented
notes for 56 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
124 releases · first in 2013
Relax parsing of V8 traces to allow a missing initial description.
Move to dart-lang/tools monorepo.
dart-lang/tools monorepo.Added support for parsing Wasm frames of Chrome (V8), Firefox, Safari.
One column per quarter.
Make use of @pragma('vm:awaiter-link') to make package work better with Dart VM's builtin awaiter stack unwinding. No other changes.
@pragma('vm:awaiter-link') to make package work better with
Dart VM's builtin awaiter stack unwinding. No other changes.Added the parameter zoneValues to Chain.capture to be able to use custom zone values with the runZoned internal calls.
zoneValues to Chain.capture to be able to use custom
zone values with the runZoned internal calls.repository field.Stable release for null safety.
test/chain/vm_test.dart, which incorrectly handles
asynchronous suspension gap markers at the end of stack traces.Fix bug parsing asynchronous suspension gap markers at the end of stack traces, when parsing with Trace.parse and Chain.parse.
Trace.parse and Chain.parse.>=2.12.0-0 <3.0.0 based on beta release
guidelines.Allow prerelease versions of the 2.12 sdk.
Allow the 2.10.0 stable and dev SDKs.
2.10.0 stable and dev SDKs.Fix bug parsing asynchronous suspension gap markers at the end of stack traces.
Forward fix for a change in SDK type promotion behavior.
Allow 2.10 stable and 2.11.0 dev SDK versions.
* Opt in to null safety.
Fix bug parsing asynchronous suspension gap markers at the end of stack traces. (Also fixed separately in 1.10.0-nullsafety.3)
Trace.parse and Chain.parse. (Also fixed
separately in 1.10.0-nullsafety.6)Parse the format for data: URIs that the Dart VM has used since 2.2.0.
data: URIs that the Dart VM has used since 2.2.0.* Set max SDK version to <3.0.0.
<3.0.0.Fix Dart 2.0 runtime cast failure in test.
Preserve the original chain for a trace to handle cases where an error is rethrown.
Add an errorZone parameter to Chain.capture() that makes it avoid creating an error zone.
errorZone parameter to Chain.capture() that makes it avoid creating
an error zone.Chain.forTrace() now returns a full stack chain for *all* StackTraces within Chain.capture(), even those that haven't been processed by dart:async yet
Chain.forTrace() now returns a full stack chain for all StackTraces
within Chain.capture(), even those that haven't been processed by
dart:async yet.
Chain.forTrace() now uses the Dart VM's stack chain information when called
synchronously within Chain.capture(). This matches the existing behavior
outside Chain.capture().
Chain.forTrace() now trims the VM's stack chains for the innermost stack
trace within Chain.capture() (unless it's called synchronously, as above).
This avoids duplicated frames and makes the format of the innermost traces
consistent with the other traces in the chain.
Update to use strong-mode clean Zone API.
Use official generic function syntax.
Use official generic function syntax.
Updated minimum SDK to 1.23.0.
Add a Trace.original field to provide access to the original StackTraces from which the Trace was created, and a matching constructor parameter to new
Trace.original field to provide access to the original StackTraces
from which the Trace was created, and a matching constructor parameter to
new Trace().Always run onError callbacks for Chain.capture() in the parent zone.
onError callbacks for Chain.capture() in the parent zone.Fix broken links in the README.
Trace.foldFrames() and Chain.foldFrames() now remove the outermost folded frame. This matches the behavior of .terse with core frames.
Trace.foldFrames() and Chain.foldFrames() now remove the outermost folded
frame. This matches the behavior of .terse with core frames.
Fix bug parsing a friendly frame with spaces in the member name.
Fix bug parsing a friendly frame where the location is a data url.
Make Trace.parse(), Chain.parse(), treat the VM's new causal asynchronous stack traces as chains. Outside of a Chain.capture() block, new Chain.curren
Trace.parse(), Chain.parse(), treat the VM's new causal asynchronous
stack traces as chains. Outside of a Chain.capture() block, new Chain.current() will return a stack chain constructed from the asynchronous
stack traces.Add a Chain.disable() function that disables stack-chain tracking.
Add a Chain.disable() function that disables stack-chain tracking.
Fix a bug where Chain.capture(..., when: false) would throw if an error was
emitted without a stack trace.
Add a note to the documentation of Chain.terse and Trace.terse.
Chain.terse and Trace.terse.Fix a bug where new Frame.caller() returned the wrong depth of frame on Dartium.
new Frame.caller() returned the wrong depth of frame on
Dartium.new Trace.current() and new Chain.current() now skip an extra frame when run in a JS context. This makes their return values match the VM context.
new Trace.current() and new Chain.current() now skip an extra frame when
run in a JS context. This makes their return values match the VM context.Really fix strong mode warnings.
Fix a syntax error introduced in 1.6.3.
Make Chain.capture() generic. Its signature is now T Chain.capture (T callback(), ...).
Chain.capture() generic. Its signature is now T Chain.capture<T>(T callback(), ...).* Fix all strong mode warnings.
Use StackTrace.current in Dart SDK 1.14 to get the current stack trace.
StackTrace.current in Dart SDK 1.14 to get the current stack trace.Added toJson method to Pubspec to serialize the object back to a Map .
toJson method to Pubspec to serialize the object back to a Map.HostedDetails.url as a non-git URI.Add a when parameter to Chain.capture(). This allows capturing to be
easily enabled and disabled based on whether the application is running in
debug/development mode or not.
Deprecate the ChainHandler typedef. This didn't provide any value over
directly annotating the function argument, and it made the documentation less
clear.
Fix a crash in Chain.foldFrames() and Chain.terse when one of the chain's traces has no frames.
Chain.foldFrames() and Chain.terse when one of the chain's
traces has no frames.new Chain.parse() now parses all the stack trace formats supported by new Trace.parse(). Formats other than that emitted by Chain.toString() will prod
new Chain.parse() now parses all the stack trace formats supported by new Trace.parse(). Formats other than that emitted by Chain.toString() will
produce single-element chains.
new Trace.parse() now parses the output of Chain.toString(). It produces
the same result as Chain.parse().toTrace().
Improve the display of data: URIs in stack traces.
data: URIs in stack traces.Fix a crashing bug in UnparsedFrame.toString().
UnparsedFrame.toString().new Trace.parse() and related constructors will no longer throw an exception if they encounter an unparseable stack frame. Instead, they will generate
new Trace.parse() and related constructors will no longer throw an exception
if they encounter an unparseable stack frame. Instead, they will generate an
UnparsedFrame, which exposes no metadata but preserves the frame's original
text.
Properly parse native-code V8 frames.
No longer say that stack chains aren't supported on dart2js now that [sdk#15171][] is fixed. Note that this fix only applies to Dart 1.12.
When a null stack trace is passed to a completer or stream controller in nested Chain.capture() blocks, substitute the inner block's chain rather than
When a null stack trace is passed to a completer or stream controller in
nested Chain.capture() blocks, substitute the inner block's chain rather
than the outer block's.
Add support for empty chains and chains of empty traces to Chain.parse().
Don't crash when parsing stack traces from Dart VM stack overflows.
Don't crash when running Trace.terse on empty stack traces.
Trace.terse on empty stack traces.Support more types of JavaScriptCore stack frames.
Support stack traces generated by JavaScriptCore. They can be explicitly parsed via new Trace.parseJSCore and new Frame.parseJSCore.
new Trace.parseJSCore and new Frame.parseJSCore.Fix a type annotation in LazyTrace.
LazyTrace.* Fix a crash in Chain.parse.
Chain.parse.Don't print the first folded frame of terse stack traces. This frame is always just an internal isolate message handler anyway. This improves the read
Don't print the first folded frame of terse stack traces. This frame is always just an internal isolate message handler anyway. This improves the readability of stack traces, especially in stack chains.
Remove the line numbers and specific files in all terse folded frames, not just those from core libraries.
Make padding consistent across all stack traces for Chain.toString().
Add terse to LazyTrace.foldFrames().
Add terse to LazyTrace.foldFrames().
Further improve stack chains when using the VM's async/await implementation.
Add a terse argument to Trace.foldFrames() and Chain.foldFrames(). This allows them to inherit the behavior of Trace.terse and Chain.terse without hav
terse argument to Trace.foldFrames() and Chain.foldFrames(). This
allows them to inherit the behavior of Trace.terse and Chain.terse without
having to duplicate the logic.Produce nicer-looking stack chains when using the VM's async/await implementation.
Support VM frames without line *or* column numbers, which async/await programs occasionally generate.
Support VM frames without line or column numbers, which async/await programs occasionally generate.
Replace <<anonymous closure>_async_body> in VM frames' members with the
terser <async>.
Widen the SDK constraint to include 1.7.0-dev.4.0.
Add a deepCopyLinks argument to copyPath and copyPathSync .
deepCopyLinks argument to copyPath and copyPathSync.@visibleForTesting annotation from SharedStdIn.SharedStdIn.new.
AnsiCode and AnsiCodeType marked final. ThesefinalexpectApiSummaryClean, ApiSummaryFormat, andApiSummaryVerificationException to support one-liner golden file verificationdart test (e.g. test('api_summary', expectApiSummaryClean);).--write (-w), --check (-c), and --output (-o) flags to theapi_summary CLI executable.Unify the parsing of Safari and Firefox stack traces. This fixes an error in Firefox trace parsing.
Deprecate Trace.parseSafari6_0, Trace.parseSafari6_1,
Frame.parseSafari6_0, and Frame.parseSafari6_1.
Add Frame.parseSafari.
Use Zone.errorCallback to attach stack chains to all errors without the need for Chain.track, which is now deprecated.
Zone.errorCallback to attach stack chains to all errors without the need
for Chain.track, which is now deprecated.Remove a workaround for [issue 17083][].
Synchronous errors in the [Chain.capture] callback are now handled correctly.
Initial stable release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →