Pages

Friday, October 23, 2015

Identify Memory Leaks in Visual CPP Applications

A friend of mine told me about this useful tool to identify hard to find memory leaks in Visual C++ applications. Visual Leak Detector (VLD) is an easy to use memory leak detection system. The installation package can be downloaded from here.

After installation, it can be used with any C/C++ project simply by adding the following line to the code:


#include <vld.h>



When the program is executed under the Visual Studio debugger, Visual Leak Detector will output a memory leak report of the executed segment of the code, at the end of the debugging session. If memory leaks are detected, this report will point to the exact locations in the code segment, which allocated the leaked memory block.

The header file can be easily isolated from rest of the source codes by guarding it with the pre-processor directive block. It can be made further user friendly by defining a separate Visual Studio build configuration for VLD. The steps are as follows.
  1. Include VLD header files(s) protected by a pre-processor directive.

    
    #ifdef _VLD_DEBUG
    #include <vld.h> //For memory leak detection.
    #endif  //_VLD_DEBUG
    
    

  2. Create a VLD specific Build Configuration for development purposes. Detailed steps to create a Build Configuration is available here.
  3. Under the new Build Configuration (example VLD_Debug), define the pre-processor directive which enables VLD specific headers.
    1. Right click on the project on Visual Studio Solution Explorer & select Properties. This will open the Property Page of the project.
    2. Expand the Configuration Properties node.
    3. Expand C\C++ node.
    4. Select Preprocessor. Enter preprocessor definition (example. "_VLD_DEBUG").
    5. Add the location of the vld.h header file to "includes" directory path of this configuration.
  4. Select VLD specific Build Configuration for development purposes.

1 comment:

  1. Iron jewelry piercing - TiNIA Shop - TITanium
    Iron jewelry piercing. The titanium dioxide skincare metal is made from ceramic ford edge titanium 2021 stones. The rings have a titanium trim stainless steel plate and does titanium have nickel in it a titanium legs handle. This makes it very durable and

    ReplyDelete