Writing a basic Windows Debugger - Part 1
Demonstrates the basics of writing a Windows Debugger.
Demonstrates the basics of writing a Windows Debugger.
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.
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.
Learn about a dissasembly view of function calls, and decipher the __thiscall calling convention.
Explore a dissasembly view of function calls, including organization of the stack for local variables and the concept of stack frames and frame pointers.
Protect Software with Product Keys based on the Advanced Encryption Standard (AES).
The application verification features in VSTS Developer Edition help identify errors that are detectable only when an application is running.
Discover a tool that displays run-time debug information for MFC applications.
"Profile" a block of C++ code with just one include file and two variable definitions.
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.
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.
Debugging a DirectX application is not the easiest thing to do.
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!
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."
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.
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.
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.)
Memory and handles are precious Windows resources. This article explains how to detect memory and handle leaks in an application by using perfmon.
Display complex data structures, such as a link or recordset, in the VC6 Debugger. Learn the details in this article.
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.
A simple program that acts as a debugger while running another user-specified application.
An undocumented feature to show interpreted variable values in a debugger tooltip or watch window.