Identify Memory Corruption:
Identify Memory Leaks:
1. Visual Leak Detector tool is a free, robust, open-source memory leak detection system for Visual C++. After installing it, you just need to tell Visual C++ where to find the included header(vld.h) and library file(vld.lib).
ref: http://vld.codeplex.com/, http://www.codeproject.com/Articles/9815/Visual-Leak-Detector-Enhanced-Memory-Leak-Detectio
1.gflags (part of Windows Debugging Tools) tool can be used to find Memory Corruption issues. All we need is to download Windows Debugging tools(which comes with both gflags.exe & WinDbg).
Identify Memory Leaks:
1. Visual Leak Detector tool is a free, robust, open-source memory leak detection system for Visual C++. After installing it, you just need to tell Visual C++ where to find the included header(vld.h) and library file(vld.lib).
ref: http://vld.codeplex.com/, http://www.codeproject.com/Articles/9815/Visual-Leak-Detector-Enhanced-Memory-Leak-Detectio
2. Debugdiag is a Debug Diagnostic Too designed to assist in troubleshooting issues such as hangs, slow performance, memory leaks or fragmentation, and crashes in any user-mode process. The tool includes additional debugging scripts focused on Internet Information Services (IIS) applications, SharePoint, web data access components, COM+ and related Microsoft technologies.
ref: http://blogs.technet.com/b/stefan_gossner/archive/2011/07/18/finally-debugdiag-1-2-available-on-microsoft-download-center.aspx
ref: http://blogs.technet.com/b/stefan_gossner/archive/2011/07/18/finally-debugdiag-1-2-available-on-microsoft-download-center.aspx
3. _CrtSetDbgFlag() API from C Run-Time Library will display memory leaks in the Debug output window.
ref: http://msdn.microsoft.com/en-us/library/e5ewb1h3(v=vs.80).aspx
4. Application Verifier tool can be used for identifying errors caused by heap corruption, incorrect handle and critical section usage. It may not work for a Application which is mix of UnManaged & Managed code.
ref: http://msdn.microsoft.com/en-us/library/ms220948.aspx
Other tools include Devpartner studio BoundsChecker, Rational Purify, SmartBear AQTimer, SoftwareVerify C++ Performance Validator ...
Performance Profiling:
Intel offers an array of application performance tools that are optimized to take advantage of the Intel® processors. You can employ these tools for developing the most efficient programs without having to write assembly code. These performance tools(Intel VTune Amplifier) will help you analyze your application and find and resolve the problem areas. The following sections summarize each of the recommended Intel® performance tools.
ref: http://www.ncsa.illinois.edu/UserInfo/Resources/Software/Intel/Compilers/9.0/main_cls/mergedProjects/optaps_cls/common/optaps_time_perf.htm
ref: http://msdn.microsoft.com/en-us/library/e5ewb1h3(v=vs.80).aspx
4. Application Verifier tool can be used for identifying errors caused by heap corruption, incorrect handle and critical section usage. It may not work for a Application which is mix of UnManaged & Managed code.
ref: http://msdn.microsoft.com/en-us/library/ms220948.aspx
Other tools include Devpartner studio BoundsChecker, Rational Purify, SmartBear AQTimer, SoftwareVerify C++ Performance Validator ...
Performance Profiling:
Intel offers an array of application performance tools that are optimized to take advantage of the Intel® processors. You can employ these tools for developing the most efficient programs without having to write assembly code. These performance tools(Intel VTune Amplifier) will help you analyze your application and find and resolve the problem areas. The following sections summarize each of the recommended Intel® performance tools.
ref: http://www.ncsa.illinois.edu/UserInfo/Resources/Software/Intel/Compilers/9.0/main_cls/mergedProjects/optaps_cls/common/optaps_time_perf.htm