-
Notifications
You must be signed in to change notification settings - Fork 80
fix: resolve DAP stack frame source off EDT #1408
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
fix: resolve DAP stack frame source off EDT #1408
Conversation
|
@mobiletoly thanks so much for your PR. The thing which is annoying with your PR is that you call session.rebuildView which could be expansive. I noticed that Could you try just to replace |
|
Hey, thanks for the notes. I think I get what you're pointing out. Right now I’m calling session.rebuildView, which can be pretty heavy, and I'm also using I'll try swapping it to I'll send a follow-up PR with these tweaks so it's easy to review. |
@mobiletoly I will try with Which dap server are you using? |
|
I use Delve (dlv dap) I think I have my local fix working, but if you want to take from here, it is great. Thank you! |
You mean that you have just replaced VfsUtil with LocalFileSystem and it is working? If it that it is super great and please create the PR (as new PR). |
|
new PR is here: |
Title
SlowOperations warning on EDT when rendering DAP stack frames (DAPStackFrame.getSourcePosition uses VFS lookup)
Summary
When debugging with LSP4IJ DAP, the IDE logs a SlowOperations warning because DAPStackFrame.getSourcePosition() performs a synchronous VfsUtil.findFile(...) lookup on the EDT during
frame list rendering. This is triggered by the XDebugger UI and happens even in normal debugging workflows.
Exception
Root cause
DAPStackFrame.doGetSourcePosition() calls VfsUtil.findFile(...) on the EDT when resolving file‑backed stack frames, which triggers SlowOperations warnings.
Fix
I've moved the file lookup off the EDT and cache the result, refreshing the debug views once the source position is resolved. This avoids EDT slow ops while preserving behavior.
How it’s fixed
Environment
With this fix and locally installed plugin - I don't see this exception anymore