One of the most important skills for a C++ programmer to develop is expertise with the debugger. This critical technique is often given little time in primers and introductory programming courses. It is only after a number of months or years of struggling that many programmers discover how powerful their debuggers can be, not only in finding bugs but also in the initial development of their software. Expert use of the debugger can help you expand your skills in the language as well, and can give you insight into the workings of code developed by other developers.
Many of the lessons of debugging are universal, and apply to any debugging software, whether it is the simple line debugger available on some operating systems, the integrated debugger which comes with modern compilers, or expensive after-market professional debuggers now available from many vendors. This discussion will focus on the debugger built into the Microsoft Visual Studio software, but the lessons should be universal.