The Visual Studio Debugger Team is currently planning features for the next release of Visual Studio. We would like to hear from our C++ developers to make sure that their needs are understood. Please take a couple of minutes to complete the very short survey below. The survey is totally anonymous and the data that you provide will help us build a better product for you.
Thanks,Brad SullivanVisual Studio Debugger Team
Namespace guessing for variables!
When you don't use a fully qualified name for a variable, mousing over a variable or using it in the watch window (via copy-paste) does not work.
Sorry for going OT, but can you configure your blog so that the full article is displayed in the RSS feed?
I have a problem when I am in Internet Explorer , it says Microsoft Visual C++ Debug Library
Program C:/Program Files/Internet Explorer\iexplore.exe abnormal program abort ignore temination.
I dont now what to do
Speeding up debugger attach, and getting symbols (or noticing there are none; i.e. cache the fact a file has no symbols, or speed up the symbol server) would be a huge win for me.
As it is, attaching to a large C++ project that pulls in a lot of Windows and 3rd party libraries (e.g. due to a file-open dialog and all the shell extensions) makes me wait about 30 seconds at times, while the IDE is unresponsive to boot.
Possible to HW break on memory read, not just memory write, via CPU debug register. Perhaps extend HW break to implement hybrid page table break for access to memory (R or W) larger than size of CPU word, as was done back in the early 90s by Periscope on CV/ICE (all software debugger w/386Max manager). Very fast even when breaking on very large memory area, due to using page table.
Postscript: And not put the good stuff in the 15k version of VS.
IntelliTrace for native and mixed C++ debugging, please!!!!
Before you implement new features, I suggest getting the old ones right. Here are a couple of suggestions that are still relevant to VS 2008. I'm not sure about VS 2010 because the code parser background process there is crashing right away every two minutes:
- Setting a breakpoint in frequently instantiated templates takes minutes and sometimes seems to stall completely.
- The local variable window doesn't always update, the watch windows however do.
- The speed of stepping through code has become worse with every Visual Studio release.
Some other suggestions not directly related to the debugger:
- Regulary, the currently edited line disappears (becomes completely blank) while the typed characters are apparently still registered. After a few seconds up to a minute, the line reappears.
- When opening a couple of minidumps at almost the same time, the fifth Visual Studio instance at the latest has forgotten the VS window layout and shows *all* possible windows stacked on the screen.
- Oh, and it crashes several times a week.
- Visual Studio still doesn't offer incremental search through the whole solution like e.g. the Visual Sidekick plugin (which finds an estimated 98% of all symbols). By comparison, IntelliSense never (!) works (usually claiming "The symbol X is not defined"). Even with the maybe improved IntelliSense in VS 2010, I still cannot find symbols if I only know half the name.
- Doing a "Find Text" on the "Entire Solution" *always* shows results from source files that are accidentally open but are clearly not in the solution. When multiple branches of the same source repository are checked out, it is very easy to edit the wrong source file.
These are the issues I encounter daily in some combination, on a solution with about 500k lines of code that makes frequent use of STL and boost libraries. Big Fun.
PS: On a positive note, there is no other IDE I consider better overall. However, the focus on new fancy features for .NET, databases, web dev, whatever, while VS still has problems with C++ when used as a glorified text editor is disturbing.
Oh, another debugger issue:
When displaying collections like stl::vector in the watch window, expanded so I can see the elements, the vector always collapses when another element is added/removed. This is extremely unnverving as well. When debugging, I want to see these elements continuously. I don't want to do "f10" to step, click to expand vector, F10 again, click again and so on.
I can't stand the ASP.NET Debugging except the C++ Debugger.
I will appreciate some inherent improving.
I agree with Sebastian, and find these points significantly affecting me:
- Before you implement new features, I suggest getting the old ones right.
To this I'll add:
- I kept hearing "10 is the new 6", but it seemed to have morphed into a new feature vehicle. Can you focus on a SP, or point release, that bug fixes and performance? e.g. no more major features? I am just curious, but do customers in general think 10 is the new 6?
@Jamome: I, personally, don't know anyone who'd think of VS 2010 as "the new 6". VC6 had its problems, but it was a *far* better product in its time than VS 2010 is now.
On to the debugger...
I completely agree with those who say that before adding new features, the team should get existing features working right. In particular, debugging in VS 2010 is too slow, significantly slower than in VS 2008 or VS 2005:
* [A slowdown, regression from VS 2008] Starting a debugging session of a large project (~1.5 mil lines of C/C++ code) takes up to two times longer than it does on VS 2008 on the same machine with the same codebase.
* [A slowdown, regression from VS 2008] Setting a breakpoint on the same project takes up to two times longer than it does on VS 2008 on the same machine with the same codebase.
* [A feature loss] There appears to be no way to start debugging without loading symbols *then loading symbols when they become necessary*, like it was in VS 2008 and VS 2005. You either load all symbols from the get go or you never load any symbols at all. Please note that the slowdowns reported above are measured under the same conditions on both VS 2010 and VS 2008 - without any symbols loaded.
* [A slowdown, regression from VS 2008] The performance of the debugger and the IDE significantly decreases the more time you spend working on the project (write some code, build, run, find a bug, stop, write some more code, rebuild, run, find another bug, etc). This was not the case in VS 2008, with the same codebase. The performance decrease is very large, after a couple of hours of work in the IDE routine operations like setting a breakpoint or searching for text within a single editor window take up to 5 times longer than they do right after you start the IDE.
Honestly, it is not clear whether the performance problems have to do with the debugger or with the IDE. Nonetheless, the problems are very real and debugging in VS 2010 is *much slower* than debugging in VS 2008 or VS 2005. This holds regardless of how many IDE features (like tracking of changed lines) you turn off.
Frankly, performance problems are one of the most important reasons noone on our development team likes VS 2010 much. If we could go back to VS 2008 (we can't due to political reasons), we would be happy to do this. We are deeply disappointed with VS 2010 (have been mildly disappointed with previous versions of VS as well, but VS 2010 really hits a record) and will be very cautious with an upgrade when the next version of VS comes out. Enough is enough.
To all who have posted regressions: make sure there are bugs on connect about these.
I was just thinking about this the other day - would be nice if I can reorder items in the watch window. Drag/drop is probably not a good idea because it serves a purpose already. I will be happy with something as simple as right-click -> Move Up/Down.
Another thing about watches - would be nice if I can copy the value of an expression. For example - I need to put a data breakpoint on some variable. I place &var in the watch to get the address. Then I need to grab the address and put it in a breakpoint. I can't enter edit mode with F2, because it is a constant value. Ctrl+C copies the whole line with the name, the type, etc. I see two solutions to this: 1) right-click -> Copy Value. 2) F2 to edit so I can press Ctr+C, but don't allow me to change the value because it is constant.
Disclaimer: I haven't tried VS2010, maybe these things are there already.
A way to exclude (standard) files from Step Into. I really don't want to step into STL code like std::string.
A way to pop up selective Step Into automatically.