1.) When I try to attach to and debug an already running process, it often mysteriously crashes.
2.) It occasionally just starts ignoring all breakpoints, for no apparent reason, and the only way I have found to fix the problem is to restart Visual Studio.
3.) If you place a breakpoint in one file, and just happen to have another file with the same name, it often triggers the breakpoint on the other file, instead of the one you requested.
4.) Sometimes, it decides that it can't write out a new binary file, because the old one was in use. However, the only thing that was using it was Visual Studio, and the only way to fix this is to restart Visual Studio.
5.) Updating your project/solution files from your version control system while Visual Studio is still open sometimes results in the updates not actually happening correctly.
6.) It makes terrible use of screen real estate. Why can't I look at two source files side-by side?
7.) It habitually forgets the working directory for projects.
8.) Searching the source code in one solution, it might find a string I'm looking for in five minutes. If I'm lucky.
9.) It constantly reports that it has successfully built N projects where N is the total number of projects in your solution. Yet, when you go to run an executable associated with one of the minor projects, it tells you some of the files have changed, and they need to be rebuilt. Why couldn't it have told the truth, the first time?
10.) Whenever it feels the least bit busy with anything, the user interface becomes completely unresponsive. Whatever I'm trying to do is probably more important than whatever it's cogitating about, but it doesn't care. Heck, I might be trying to CANCEL whatever it's doing, but well, that's just too bad.
What are your pet peeves?