A very curious little minx
  1. Instrumentation framework for building dynamic analysis tools
  2. 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)
  3. Includes 6 prod-quality tools:
    • Memory error detector
    • Two thread error detector
    • Cache profiler
    • Branch predictor profiler
    • Call-graph generating cache
    • Heap profiler
  4. Three experimental tools:
    • Stack/global array overrun detector
    • Heap profiler that examines how the heap blocks are used
    • SimPoint basic block vector generator
  5. More of this https://valgrind.org/docs/manual/manual-core.html