|
Memory Leak
Checking Tools |
|
Dynamic Leak Check
by Dynamic
Memory SolutionsStars: *****
Click here for a 14-day free trial |
Finds memory leaks, boundary overflows and
other heap based errors.
Platforms: Solaris Sparc, Solaris x86, Linux Intel, Linux Opteron,
Linux Itanium, HP-UX
Runtime Models: 32 and 64 bit, multithreading
Advantages: No recompile or relink required. High performance and
usable on the largest of executables.
Disadvantages: Error checking is not as well rounded as some other
tools. |
| |
|
|
Insure++®
by
Parasoft
Stars: **** |
Finds memory leaks,
boundary overflows, other heap based errors and stack
errors. Insure++ is an excellent tool for source code based
debugging. It will find more errors than any other tool on
the market. Platforms: Widely ported
Runtime Models: 32 and 64 bit, multithreading
Advantages: Error checking is very complete.
Disadvantages: Both source code and link time instrumentation are
required, this is a major hassle for large source code bases.
Performance is an issue for large executables. |
| |
|
|
Purify
by
IBM Rational Software
Stars: **** |
Purify finds memory leaks, boundary
overflows, other heap based errors. The tool is the industry
standard tool for leak checking. Platforms: Widely ported
Runtime Models: 32 and 64 bit, multithreading on most platforms
Advantages: Error checking is good.
Disadvantages: Both link time and compile time instrumentation is
required. The Instrumentation is a major hassle for large source
code bases. Performance is an issue for large executables. |
| |
|
|
Valgrind
by
Valgrind
Stars: ****
|
Valgrind finds memory leaks,
boundary overflows, other heap based errors and some stack errors.
The tools use a unique CPU simulator to find errors. From a computer
science standpoint, it is really quite interesting. The tool is free
so the price is right. Platforms: Linux only
Runtime Models: 32
Advantages: Error checking is acceptable. No instrumentation is
required.
Disadvantages: Performance is an issue. Not always 100% accurate for
leak checking. Linux is the only supported platform. |
| |
|
|
mpatrol
Stars: *** |
mpatrol finds memory leaks,
boundary overflows and other heap based errors. The tool is free. Platforms: Widely ported
Runtime Models: 32 and 64, multithreading
Advantages: Error checking is pretty good. No instrumentation is
required on some platforms.
Disadvantages: Performance is a serious issue. |
| |
|
| Code Coverage
Tools |
|
|
Dynamic Code Coverage
By
Dynamic Memory
Solutions
Stars: *****
Click here for a 14-day free trial |
The best tool on the market today. It combines the depth of decision
and branch coverage with the ease of no instrumentation.
Platforms: Solaris and Linux
Runtime Models: 32 and 64 bit, multithreading
Advantages: No recompile or relink required. Function, line,
decision and branch coverage. High performance and usable on the
largest of executables.
Disadvantages: More platforms need to be supported. |
| |
|
|
Bullseye Coverage
by
Bullseye Testing Technolgy
Stars: ****
|
Bullseye is a very popular and
useful product. The use of decision and condition coverage gives it
a leg up on the competition.
Platforms: Widely ported
Runtime Models: 32 and 64 bit, multithreading
Advantages: Function, line, decision and condition coverage.
Disadvantages: Requires compile time instrumentation, for large
executables this is a major obstacle. |
| |
|
|
Pure Coverage
by
IBM
Rational Software
Stars: *** |
Rational Pure Coverage by
IBM is the
industry standard tool. However, it only supports function and line coverage.
Platforms: Widely ported
Runtime Models: 32 and 64 bit, multithreading on most platforms
Advantages: Attractive GUI. Industry standard product
Disadvantages: No decision, condition or branch coverage. Requires
link time instrumentation, for large executables this is a major
obstacle. |
| |
|
|
Insure++ TCA
By
Parasoft
Stars: *** |
TCA is an add on to Parasoft
Insure++. It supports only function and basic block coverage.
Platforms: Widely ported
Runtime Models: 32 and 64 bit, multithreading
Advantages: Attractive GUI. Well integrated with Insure++
Disadvantages: No decision, condition or branch coverage. Requires
compile time instrumentation, for large executables this is a major
obstacle. |