CRT Debugging Techniques

Note

This article applies to Visual Studio 2015. If you're looking for the latest Visual Studio documentation, use the version selector at the top left. We recommend upgrading to Visual Studio 2019. Download it here

If you are debugging a program that uses the C run-time library, these debugging techniques might be useful.

In This Section

CRT Debug Library Use
Describes the debugging support provided by the C Run-Time Library and provides instructions for accessing the tools.

Macros for Reporting
Provides information about the _RPTn and _RPTFn macros (defined in CRTDBG.H), which replace the use of printf statements for debugging.

Debug Versions of Heap Allocation Functions
Discusses the special Debug versions of the heap allocation functions, including: how the CRT maps calls, the benefits of calling them explicitly, how to avoid conversion, tracking the separate types of allocations in client blocks, and the results of not defining _DEBUG.

CRT Debug Heap Details
Provides links to memory management and the debug heap, types of blocks on the debug heap, using the debug heap, heap state reporting functions, and tracking heap allocation requests.

Debug Hook Function Writing
Lists links to client block hook functions, allocation hook functions, allocation hooks and CRT memory allocations, and report hook functions.

Finding Memory Leaks Using the CRT Library
Covers techniques for detecting and isolating memory leaks by using the debugger and the C Run-Time Library.

Debugging Native Code
Discusses some common debugging problems and techniques for C and C++ applications.

Debugger Security
Provides recommendations for more secure debugging.