Analysis Tools for C++ Analysis Tools Analyzers

    Sanitizers

    ASAN
    • g++ -fsanitize=address
    • clang++ -fsanitize=address
    • cl.exe /fsanitize=addressMSVC (as of 10/2019)
    UBSAN
    • g++ -fsanitize=undefined
    • clang++ -fsanitize=undefined
    LeakSanitizer
    • g++ -fsanitize=leak
    • clang++ -fsanitize=leak
    ThreadSanitizer
    • g++ -fsanitize=thread
    • clang++ -fsanitize=thread

    Stand-Alone Analysis Tools Stand-Alone Tools Stand-Alone

    valgrind
    • code instrumentation framework
    • runs program on a VM
    • --tool=memcheck leak, invalid read/write detection
    • --tool=callgrind runtime profiling
    • --tool=cachegrind cache profiling
    • --tool=massif heap memory profiling
    • integration into various IDEs
    Dr. Memory
    • dynamic instrumentation (runs on unmodified binaries)
    • leak detection
    • invalid memory read/write detection
    HeapTrack
    • heap memory profiler
    • annotation of memory allocations
    Application Verifier
    Deleaker
    • memory leak detection
    • integration into various IDEs
    CppDepend
    • source code analysis tool
    • code quality metrics
    • coding standard compliance analysis
    • dependency visualization
    • Visual Studio add-in