The Wayback Machine - https://web.archive.org/web/20110921092727/http://www.codeguru.com:80/cpp/v-s/debug/

    Debugging

    Writing a basic Windows Debugger - Part 1

    Demonstrates the basics of writing a Windows Debugger.

    Better Visual C++ Debugging

    Effective use of the Visual C++ debugger is one of the easiest ways to increase developer productivity. Program database (PDB) files are one of the key elements in effectively debugging an application, and it is easy to set up Visual Studio to use debug symbols for binary files produced by other developers, including those at Microsoft.

    Improving Visual C++ Debugging with Better Data Display

    Code is run in a debugger for two main reasons: examining the branches of code that are being executed, and examining data values to determine why the code is behaving in a certain manner. Inspecting data values can be significantly improved by customizing the debug information. See how that can be done in the Visual C++ debugger.

    Function Calls, Part 4 (What Exactly Is "this"?)

    Learn about a dissasembly view of function calls, and decipher the __thiscall calling convention.

    Function Calls, Part 3 (Frame Pointer and Local Variables)

    Explore a dissasembly view of function calls, including organization of the stack for local variables and the concept of stack frames and frame pointers.

    Product Keys Based on the Advanced Encryption Standard (AES)

    Protect Software with Product Keys based on the Advanced Encryption Standard (AES).

    Catch C/C++ Errors Early with VSTS Code Verifier

    The application verification features in VSTS Developer Edition help identify errors that are detectable only when an application is running.

    Standalone Tracer Window

    Discover a tool that displays run-time debug information for MFC applications.

    QPerformanceTimer

    "Profile" a block of C++ code with just one include file and two variable definitions.

    Visual C++: Protecting Against Buffer Overruns with the /GS Switch

    Visual C++.NET supports the automatic detection of stack-based buffer overruns through the use of the /GS compiler switch. Learn why stack-based buffer overruns are so serious, and how /GS and other Visual C++ settings can combat them.

    LogDispatch—Debug Module

    Learn how to output your debugging data to the application that is separated from the Visual Studio IDE and the project you are currently working on.

    VSStub

    Provides a basic implementation of the Developer Studio Object Model.

    Generating Debug Bitmaps for DirectX

    Debugging a DirectX application is not the easiest thing to do.

    A Logger Makes Your Life Easier

    Every programmer needs a way to know what is happening with his application. What would you give to know what is wrong? Use a logger!

    Code That Debugs Itself

    A set of simple, flexible, and powerful debug macros that allow you to catch most of the programming errors in early stages of development. These macros stimulate writing the "code that debugs itself."

    Extended Debugging Utility Set

    Fill the yawning gap in the functionality provided by the standard VC libraries in regard to debugging. This article introduces easy-to-use debugging extensions -- most are available without any supplementary actions because they are configured with defaults that support most scenarios.

    Kill Your Program Before the User Does It!

    Make your program reliable by using this technique. It is a trap technique that uses the assertion macros. Common C++ technique and some VC++/MFC features are described.

    Add Crash Reporting to Your Applications

    How to generate a crash report for your application that can be debugged by using WinDbg or VS.NET. (The article and source code were updated.)

    Detecting Resource Leaks

    Memory and handles are precious Windows resources. This article explains how to detect memory and handle leaks in an application by using perfmon.

    Display a Complex Data Structure in the VC6 Debugger

    Display complex data structures, such as a link or recordset, in the VC6 Debugger. Learn the details in this article.

    Debugging Tips

    Using good debugging practices and techniques are central to success of a project. This article lays down good debugging practices and presents tips for debugging C and C++ projects.

    Some general debugging tips

    Some general debugging tips

    A Debugging Stub for Automated Tests (DebugStub

    A simple program that acts as a debugger while running another user-specified application.

    Extending Visual Studio 6.0 Debugger

    An undocumented feature to show interpreted variable values in a debugger tooltip or watch window.