Toggle navigation
Ivan's Wiki
Wiki Home
(current)
Submit
Index
Notes on Valgrind
A very curious little minx
Instrumentation framework for building dynamic analysis tools
Valgrind vs Sanitisers:
Works on binaries (sanitisers require source)
Works via interpretation vs instrumentation
Can detect more bugs with compile time instrumentation
Valgrind is more monolithic, while sanitisers are more specialised
Much slower than sanitisers
Some sanitisers cannot be combined (ASan + MSan == memcheck)
Includes 6 prod-quality tools:
Memory error detector
Two thread error detector
Cache profiler
Branch predictor profiler
Call-graph generating cache
Heap profiler
Three experimental tools:
Stack/global array overrun detector
Heap profiler that examines how the heap blocks are used
SimPoint basic block vector generator
More of this
https://valgrind.org/docs/manual/manual-core.html