I just seriously don't understand all the GDB hate. It might have a steep learning curve, but I feel much more comfortable and productive in GDB than I ever did in Visual Studio's debugger.
Is it the most amazing debugger ever? Certainly not. But it gets the job done. LLDB looks promising as an alternative, but it's not mature enough yet.
Also, what's with the fetish with IDEs? I only use an IDE when I write Java (since navigating even a "simple" Java codebase is difficult without one), but for anything else, I spend all my time in vim and a terminal, even for large projects.
GDB is okay once you get the hang of it, but it's seriously less productive than with proper IDE integration.
How do you make a breakpoint? 'break Filename.cpp:1234' or 'break FullClassName::FullFunctionName'. I have to go to my editor, lookup the file and line number, go to gdb and enter a command. Remove a breakpoint? I always forget how to do that so I need to lookup the manual every time. Urgh. I just want to be able to click on a button next to the line to insert or remove a breakpoint.
The command line interface has its uses, but there should also be excellent editor integration. I don't care about IDEs; integration with Sublime Text is fine. Unfortunately every project that I've come across that tries to implement that is half-baked.
Is it the most amazing debugger ever? Certainly not. But it gets the job done. LLDB looks promising as an alternative, but it's not mature enough yet.
Also, what's with the fetish with IDEs? I only use an IDE when I write Java (since navigating even a "simple" Java codebase is difficult without one), but for anything else, I spend all my time in vim and a terminal, even for large projects.