Repository navigation
Stack filter should collapse tree walks #4174
Copy link
Copy link
Closed
Labels
P3Issues that are less important to the Flutter projectIssues that are less important to the Flutter projectc: new featureNothing broken; request for a new capabilityNothing broken; request for a new capabilityframeworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.team-frameworkOwned by Framework teamOwned by Framework teamtriaged-frameworkTriaged by Framework teamTriaged by Framework team
Description
This kind of thing:
I/flutter : #6 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart)
I/flutter : #7 Element.inflateWidget (package:flutter/src/widgets/framework.dart)
I/flutter : #8 Element.updateChild (package:flutter/src/widgets/framework.dart)
I/flutter : #9 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart)
I/flutter : #10 ComponentElement.mount (package:flutter/src/widgets/framework.dart)
I/flutter : #11 Element.inflateWidget (package:flutter/src/widgets/framework.dart)
I/flutter : #12 Element.updateChild (package:flutter/src/widgets/framework.dart)
I/flutter : #13 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart)
I/flutter : #14 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart)
I/flutter : #15 ComponentElement.mount (package:flutter/src/widgets/framework.dart)
I/flutter : #16 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart)
I/flutter : #17 Element.inflateWidget (package:flutter/src/widgets/framework.dart)
I/flutter : #18 Element.updateChild (package:flutter/src/widgets/framework.dart)
I/flutter : #19 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart)
I/flutter : #20 ComponentElement.mount (package:flutter/src/widgets/framework.dart)
I/flutter : #21 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart)
I/flutter : #22 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart)
I/flutter : #23 Element.inflateWidget (package:flutter/src/widgets/framework.dart)
I/flutter : #24 Element.updateChild (package:flutter/src/widgets/framework.dart)
I/flutter : #25 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart)
I/flutter : #26 ComponentElement.mount (package:flutter/src/widgets/framework.dart)
I/flutter : #27 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart)
I/flutter : #28 Element.inflateWidget (package:flutter/src/widgets/framework.dart)
I/flutter : #29 Element.updateChild (package:flutter/src/widgets/framework.dart)
I/flutter : #30 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart)
I/flutter : #31 ComponentElement.mount (package:flutter/src/widgets/framework.dart)
I/flutter : #32 Element.inflateWidget (package:flutter/src/widgets/framework.dart)
I/flutter : #33 Element.updateChild (package:flutter/src/widgets/framework.dart)
I/flutter : #34 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart)
I/flutter : #35 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart)
I/flutter : #36 ComponentElement.mount (package:flutter/src/widgets/framework.dart)
I/flutter : #37 Element.inflateWidget (package:flutter/src/widgets/framework.dart)
I/flutter : #38 Element.updateChild (package:flutter/src/widgets/framework.dart)
I/flutter : #39 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart)
I/flutter : #40 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart)
I/flutter : #41 ComponentElement.mount (package:flutter/src/widgets/framework.dart)
I/flutter : #42 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart)
I/flutter : #43 Element.inflateWidget (package:flutter/src/widgets/framework.dart)
I/flutter : #44 Element.updateChild (package:flutter/src/widgets/framework.dart)
I/flutter : #45 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart)
...isn't exactly redundant, but it'd be nice if we could output something cleaner and easier to understand. Right now we often end up with hundreds of stack frames with this kind of thing.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P3Issues that are less important to the Flutter projectIssues that are less important to the Flutter projectc: new featureNothing broken; request for a new capabilityNothing broken; request for a new capabilityframeworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.team-frameworkOwned by Framework teamOwned by Framework teamtriaged-frameworkTriaged by Framework teamTriaged by Framework team
Activity
Hixie commentedon Jan 30, 2017
probably to be done as part of #4021
Roll Dart to 4b64a835b9c10480063739d1e73847dcc4d8bfb6. (flutter#4174)
Hixie commentedon Jun 12, 2018
We could also just filter stacks in Flutter so that any sequence of stack lines that are from package:flutter or dart:* and are between two other lines that are also from package:flutter or dart:* are either omitted or replaced by an ellipsis, unless some global
debugDumpFullStacksInExceptionsflag is set, though that might make debugging harder, especially for us when people file bugs.Piinks commentedon Apr 16, 2026
Closing as fixed. This issue requested a way to collapse repetitive stack frames during widget tree walks (e.g., Element.updateChild, ComponentElement.performRebuild). Flutter now includes a specialized filtering mechanism for this exact purpose.
#49891 introduced the RepetitiveStackFrameFilter and registered it in the WidgetsBinding to automatically clean up these stack traces.
If there is anything else to be done here, please file an updated issue. Thanks!
github-actions commentedon Apr 30, 2026
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.