Open jusid opened 2 years ago
You got my vote - got similar problems on our side.
My vote
you got my vote too, this is a horrible issue that makes vscode much less useful than it should be. We should be able to debug in a timely manner. I'm new to this group. Is there some formal mechanism I can use to show my vote?
+1 the C++ debugging performance is the major workflow pain our team and colleagues experience using VSCode as a C++ IDE. It gets so bad for me that I sometimes switch to command-line GDB or use GDB in Emacs. Everything else for C++ development in VSCode scales much better in my experience.
+1
+1
+1
+1
+1
+1
This has nothing to do with remote debugging. Performance when debugging locally is equally awful.
I have to wait minutes to get local variables to appear (during which time I can do nothing). Closing "locals" in the variables window does nothing because it's automatically reopened when execution next stops.
This effectively makes VSCode unfit for purpose and needs to be fixed.
+1 why should we have to disable everything just to step normally? Not very useful to me with everything hidden
+1 from me as well. Very important to have fast gdb on VSCode.
+1 Just recently started debugging a project again after having it sit around for 2 years and this used to work quite decent and snappy. Now it's almost impossible to debug it at all, I wonder what was introduced in the meantime that caused this
+1 I'm currently debugging a multi-threaded program (80+ threads) that takes a long time to step through the lines after hitting a breakpoint. It makes debugging with VS code a rather painful experience. I have no such performance issues when debugging with gdb on the command line
+1 I am debugging on a platform with many threads (~250) and VSCode is now unusable to for this purpose.
Hi all, Is this a related issue? I updated to gdb12 a few months ago and I gotta say the performance seems "nearly reasonable" as a opposed to "it actually literally crashes sometimes". it seems like certain versions of gdb, at least some 7 and some 11, have "bugs" when used with vscode. Check this thread and the post by LeLuc4 for instructions to upgrade to gdb12.
@timmeh87 I don't think it's related. I'm using Linux Mint at work, and the version of GDB that ships with is totally broken with VSCode. I had to update to version 12 within a day of getting my machine up and running.
+1
For reference: debugging ROS 2 code with Ubuntu 22.04 and the default GDB 12.1 was painfully slow, but with GBD 13.1 performance is quite good.
Just wanted to address that this issue still persists today on version 1.16.3.
I think that the main problem is an aggressive amount of info threads
requests for most events. Maybe there could be some caching mechanism or, at least, a toggle to revert back to a """primitive""" debugger?
I have given up using vscode to debug any serious C++ program, but I still use it as my code editor for C++ programs.
A similar issue has previously been reported in https://github.com/microsoft/vscode-cpptools/issues/2901 4+ years ago, and it is passed to https://github.com/microsoft/vscode/issues/132025 and then pass back here https://github.com/microsoft/vscode-cpptools/issues/9988.
I'm curious about the root cause of this issue. I'm also a programmer, I should have dug deep to find the root cause for myself.
I am cross debugging an application with 350+ threads and VSCode is because of this issue not the first choice doing this for me.
I understand that there are more important things than that, but an issue that has been open for so long needs to be addressed at some point. Especially if there is no workaround other than not using VSCode.
So pls fix it.
+1
I'm also affected trying to get familiar with new QT based project DEBUG is useless :( about a minute of waiting if using any of breakpoint, step, continue to line
Version 1.81.1 for Ubuntu
+1
+1
+1
+1
Vote. Debugging a large fortran project is infeasible since every step takes several minutes to show thousands of variables. There should be an option to toggle the behavior.
+1
+1
+1
+1
Large production codebase debugging experience is really bad.
+1
+1
+1
+1
@sean-mcmanus can we can a status of the plan regarding this issue? It's one of the highest voted issues here (2nd highest if you drop the feature request, the 1st one being also about slowness).
FYI: It works significantly better (~2-3x) with a UNIX-socket instead of a TCP one.
my vote 👍
+1
The performances are indeed a lot better with GDB 13 (I tried with 13.2).
And it works even faster when on the target using gdb or gdbtui. The issue is why is it probing each thread so deep when the user has not requested it.
The performances are indeed a lot better with GDB 13 (I tried with 13.2).
I can confirm! Just have installed GDB 14.2 (from sources) debugging is flawless!
I don't feel much improvement with gdb 14.2. Target is ARM 32
@dvirtz I don't work on the debugger component -- that's a different team and they're busy doing other debugger work for Visual Studio unless their priorities change in the future (you'll know if that happens if this gets assigned someone and put in a milestone/project). We're aware that this is a highly upvoted issue and I've hit this myself while debugging on Linux and I sent an email to people on the debugger team about it.
The performances are indeed a lot better with GDB 13 (I tried with 13.2).
I can confirm! Just have installed GDB 14.2 (from sources) debugging is flawless!
I've tried remote debugging using GDB 14.2 and the performance is the same. Unfortunately. :(
Upvoting. This debugger is really slow when debugging large codebases like llvm.
+1
+1
Environment
Bug Summary and Steps to Reproduce
Bug Summary: I am developing a C application with 150+ threads and debug it remotely via gdbserver. When the first breakpoint is hit, vscode requests detailed information about every thread in the application and it takes about 3 minutes to complete. The debugging is very painful due to this. The communication between gdb and gdbserver is very sensitive to the network latency. It is important to make as few requests to gdb/gdbserver as possible.
Steps to reproduce: Create an app which starts 150+ threads. Debug it remotely using gdbserver. Set a breakpoint to be hit after all threads are created already. Debug the program. When the breakpoint is hit you will get a significant delay before vscode UI reports the breakpoint hit.
Debugger Configurations
Debugger Logs
Here is what happens when a break point is hit and why it takes so long. The break point is hit:
Information about all(!) threads is requested:
While GDB executes the request above, it reports availability of new threads (158 in my case):
vscode starts to request info about each reported thread. Even though information about all threads has been requested earlier:
Information about all 158 threads has been requested. After 11 seconds GDB returns response to request -thread-info``` and starts to slowly return responses for individual thread info requests:
After 151 (!) seconds GDB responds to the last thread info request and vscode is almost ready to inform a user about the break point:
Conclusion: it is not needed to request individual thread info since all thread info is requested anyway and such combined request is executed much much faster compared to many individual requests.