Repository navigation
DevTools slow and unhelpful #5703
Copy link
Copy link
Closed
Labels
P1high priority issues at the top of the work list, actively being worked on.high priority issues at the top of the work list, actively being worked on.devtools-debugger-screenIssues with the Debugger screenIssues with the Debugger screenobservatory migrationRelated to the Observatory -> DevTools migration effortRelated to the Observatory -> DevTools migration efforttype-performanceRelated to the performance of the DevTools app (not the Performance page)Related to the performance of the DevTools app (not the Performance page)
Description
Activity
Thank you for the detailed feedback! CC @elliette
- addeddevtools-debugger-screenIssues with the Debugger screenIssues with the Debugger screentype-performanceRelated to the performance of the DevTools app (not the Performance page)Related to the performance of the DevTools app (not the Performance page)
on Apr 24, 2023 Thanks! I was able to repro the above with:
gclient sync -D ./tools/build.py --no-goma --mode release --arch x64 create_sdk xcodebuild/ReleaseX64/dart --enable-vm-service --pause_isolates_on_start pkg/front_end/tool/_fasta/compile.dart pkg/front_end/tool/_fasta/compile.dartPerformance was slightly better for me, but still not great (~3 seconds for the actions above, instead of ~6 seconds).
I'm breaking this out into multiple issues to make it easier to track:
Performance issues:
- Slow to open, search through, and switch files: Slow to open, search through, and switch files #5706
Bugs:
- Clicking on a stackframe takes you to the start of the file, not the line location: Clicking on a stackframe takes you to the start of the file, not the line location #5707
- When paused at a breakpoint, the line that is highlighted is blurry: Highlighted line is blurry when paused at breakpoint #5708
- Out-of-sync file names and file contents: Out-of-sync file names and file contents #5709
- Expression evaluation autocomplete replaces entire input: Expression evaluation autocomplete replaces entire input #5710
Polish:
- Should have some indication when a file is loading: Debugger page should have some indication of when a file is loading #5711
FRs:
-
Set breakpoints via writing: Set breakpoints via writing #5712[Note: Decided against implementing] - Keyboard shortcuts to move to next location when searching in file: Keyboard shortcuts for moving to next location when searching in a file #5713
- Keyboard shortcuts to step in / out of code: DevTools debugger should support keyboard shortcuts for stepping #3867
- addedobservatory migrationRelated to the Observatory -> DevTools migration effortRelated to the Observatory -> DevTools migration effort
on Apr 26, 2023 Hi @jensjoha ! One idea we have been discussing on the DevTools team is whether it would make sense to have a button in the debugger panel that would launch VS Code, open it to the current file, and connect to the VM service (assuming that the user has VS Code installed). If that were an option, do you think you would use it to debug?
Thanks!
- addedP1high priority issues at the top of the work list, actively being worked on.high priority issues at the top of the work list, actively being worked on.and removed
on Jul 5, 2023 Closing since the remaining polish items / new features are tracked individually.
Metadata
Metadata
Assignees
Labels
P1high priority issues at the top of the work list, actively being worked on.high priority issues at the top of the work list, actively being worked on.devtools-debugger-screenIssues with the Debugger screenIssues with the Debugger screenobservatory migrationRelated to the Observatory -> DevTools migration effortRelated to the Observatory -> DevTools migration efforttype-performanceRelated to the performance of the DevTools app (not the Performance page)Related to the performance of the DevTools app (not the Performance page)
So I tried out DevTools.
Acknowledgement up front: I realize that what I try to navigate in below are big files and stuff might be more fun with smaller files.
This is on top-of-tree on dart (92239e6b273e3a1223887a33cd55533839aeaf29).
This is my experience:
finishFunctioninbody_builder.dart. I'd like to be able to just write that somewhere (I could in observatory) --- but I at least can't find that.finishFunctionmethod as I try to hit "ctrl+f" to search. Seemingly nothing happens, but then ~6 seconds later a search thing shows up. Clicking the "x" to close the search thing again takes another ~6 seconds. Bringing it back again takes yet another ~6 seconds. (For the fun of it I recorded in chromes devtools, and indeed there's a call taking 6.65 seconds, going down a long chain of stuff seemingly ending in a functionb2Ataking 6.47 seconds before breaking up into smaller calls).finishFunctioninto the search box and it quickly goes to the first instance. It's a comment and not what I'm looking for so I hit thinking it would take me to the next instance. It does not. I don't know if there's any shortcut I can press, but I haven't found it --- I have to use my mouse to hit the (small) "down" arrow thing. I find the function and set a breakpoint.body_builder.dart) first took maybe a second, but it was at the top of the file, then after 6+ seconds it jumped down to where it actually was supposed to be, then spend some more seconds where scrolling with the mouse did nothing. At this point some of the line it's in also looks weird:final SourceFunctionBuilder builderlooks fuzzy --- see screenshot below.body_builder.dartfile, claiming it's thecompile.dartfile (the entry point); then it switches, claiming that it showsbody_builder.dart, but actually showing the content ofcompile.dart.variable.type, so I'll start typing that. There's autocompletion, that's nice. I typevariand hit enter to acceptvariable. I type.tyand hit enter to accept.type. It replaces everything so it now just saystypewhich, hitting enter to evaluate, obviously does not work. I try again, it's the same thing. I ctrl+a to select all (i.e.type) and start typingvariagain. This type it suggeststypeas the autocompletion. I writevariable.myself and autocompletion starts working again, suggesting, eventually,type, but both enter and tab to accept it still results in the whole thing disappearing. Trying again where I record it, it doesn't suggest thevariableinitially though. Either way recording attached.Attachments:

Fuzzy "final SourceFunctionBuilder builder":
Autocomplete not working right:
autocomplete.webm
All in all I didn't have a great time. Can we please do something about this?