Friday, February 28, 2014

User space run-time memory error detection tools: Comparison



In this post, I will provide comparison on various memory tools I tried so far - Valgrind's memcheck, AddressSanitizer, MALLOC_CHECK_. The tests I tried on different tools is located at https://github.com/babuneelam/valgrind_tests/blob/master/vg_tests.c

Here is the comparison chart.


Valgrind’s memcheck
ASAN
MALLOC_CHECK_
uninitialized use


Read/Write after free


buffer overrun
Read/Write bad stack location (underrun)


Memory Leak


c++related test (ignore this)


Overlapping memcpy


double free
Read/Write invalid stack location (overrun)



Read/Write invalid global data location (overrun)



Performance hit
10-30x
?
?

Hope this helps.


No comments:

UA-48797665-1