Answer
Tools include AddressSanitizer (ASan) and MemorySanitizer for use-after-free, buffer overflows, and uninitialized reads; Valgrind (Memcheck) for leaks and invalid access; LeakSanitizer for leaks; and static analyzers (clang-tidy, cppcheck). They're run in testing/CI to catch memory bugs that don't always crash deterministically.
g++ -fsanitize=address -g prog.cpp && ./a.outReal-world example Running the test suite under AddressSanitizer in CI catches a use-after-free before release.