Skip to content

Support collapsing stack frames #50334

Closed
Closed
@DanTup

Description

@DanTup

Sometimes call stacks in the debugger contain a lot of frames from code that isn't the users (for example SDK code):

#0      Object._noSuchMethod (dart:core-patch/object_patch.dart:42)
#1      Object.noSuchMethod (dart:core-patch/object_patch.dart:46)
#2      HotRunner.validateReloadReport (package:flutter_tools/src/run_hot.dart:407)
#3      HotRunner._reloadSources.<anonymous closure> (package:flutter_tools/src/run_hot.dart:528)
#4      _rootRunUnary (dart:async/zone.dart:1128)
#5      _CustomZone.runUnary (dart:async/zone.dart:1012)
#6      _FutureListener.handleValue (dart:async/future_impl.dart:129)
#7      _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:636)
#8      _Future._propagateToListeners (dart:async/future_impl.dart:665)
#9      _Future._completeWithValue (dart:async/future_impl.dart:478)
#10     Future.wait.<anonymous closure> (dart:async/future.dart:392)
#11     _rootRunUnary (dart:async/zone.dart:1128)
#12     _CustomZone.runUnary (dart:async/zone.dart:1012)
#13     _FutureListener.handleValue (dart:async/future_impl.dart:129)
#14     _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:636)
#15     _Future._propagateToListeners (dart:async/future_impl.dart:665)
#16     _Future._complete (dart:async/future_impl.dart:468)
#17     _SyncCompleter.complete (dart:async/future_impl.dart:51)
#18     _completeOnAsyncReturn (dart:async-patch/async_patch.dart:246)
#19     Isolate.reloadSources (package:flutter_tools/src/vmservice.dart:1047)
#20     _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:30)
#21     _rootRunUnary (dart:async/zone.dart:1128)
#22     _CustomZone.runUnary (dart:async/zone.dart:1012)
#23     _FutureListener.handleValue (dart:async/future_impl.dart:129)
#24     _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:636)
#25     _Future._propagateToListeners (dart:async/future_impl.dart:665)
#26     _Future._complete (dart:async/future_impl.dart:468)
#27     _SyncCompleter.complete (dart:async/future_impl.dart:51)
#28     _completeOnAsyncReturn (dart:async-patch/async_patch.dart:246)

It would be good if we could somehow allow these to be collapsed so the user can focus on their own code, and only expand these if required.

Maybe it could even just be another presentationHint type for "unimportant" or "external" code, and VS Code can collapse consecutive frames with that hint, allowing them to be expanded by clicking?

Metadata

Metadata

Assignees

Labels

debugDebug viewlet, configurations, breakpoints, adapter issuesfeature-requestRequest for new features or functionalityon-testplanrelease-notesRelease notes issues

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions