Memory Leak Detection in C++
The Insure++ product by Parasoft is not GPLed or free software, but it is a good tool for memory leak detection and code coverage, very similar to mpatrol. Insure++ does do more than mpatrol in the area of code coverage and provides tools that collect and display data. Trial copies of the software can be downloaded and tried for a specified time period on non-Linux workstations.
The product installs easily under Linux but is node-locked to the computer on which it is installed. Insure++ comes with a comprehensive set of documentation and several options. The code coverage tool is separate but comes with the initial package.
Insure++ provides a lot of information about the problems it finds. To use Insure++, it is necessary to compile it with the Insure++ front end, which passes it to the normal compiler. This front end instruments the code to use the Insure++ library routines. During the compiler phase, illegal typecasts are detected as well as incorrect parameter passing. Obvious memory corruption errors are reported. During runtime, errors are reported to stderr but can be displayed by a graphical tool. When building an application, either the command line or makefiles can be used, facilitating the building of projects and large applications.
Execution of the program is simple. Insure++ does not require any special commands to execute; the program is run as if it were a normal program. All the debug and error-trapping code is contained in the Insure++ libraries that were linked with the program.
An add-on tool, called Inuse, displays in real time how the program uses memory. It can give an accurate picture of how memory is used, how fragmented it gets and subtle leaks that seem small but could add up over time. I had an experience with a client who found that a particular C++ class was leaking a small amount of memory that, on a workstation, was seen to be quite small. For an embedded system that was expected to be running for months and possibly years, the leak could become quite large. With this tool, the leak was easily traced, found and fixed. Other available tools did not catch this leak.
Code coverage is analyzed by another tool, TCA. As the program is run with Insure++ turned on, data can be collected that, when analyzed by TCA, paints an accurate picture of what code was executed. TCA has a GUI that enhances the display of code coverage.
- Two Pi R
- Readers' Choice Awards 2013
- A Handy U-Boot Trick
- The Geek's Guide to the Coolest 2013 Holiday Gifts
- Sublime Text: One Editor to Rule Them All?
- RSS Feeds
- GIMP Shmimp, Give Me a Browser
- Raspberry Pi: the Perfect Home Server
- Tinker with Molecular Dynamics for Fun and Profit
- Linux Systems Administrator
- Máy sấy quần áo
31 min 28 sec ago
- Services on GlusterFS
41 min 5 sec ago
- máy lọc nước
1 hour 32 min ago
- Máy lọc nước
1 hour 35 min ago
- Reply to comment | Linux Journal
2 hours 21 min ago
- Definitely cool stuff here
3 hours 22 min ago
- thanks for the information
4 hours 33 min ago
- nice information thanks
5 hours 12 min ago
8 hours 8 min ago
- The lost opportunity of security
19 hours 58 min ago