AddressSanitizer ASan
Compiler-based memory error detector from Google (2012). Compile with -fsanitize=address and the program aborts at the first error with a full stack trace, instead of behaving strangely three hours later.
The technique is shadow memory: one eighth of the address space is reserved to describe whether each byte is valid, and every memory access gets an instrumented check. Allocations are surrounded by red zones and freed memory is quarantined, which catches heap and stack overflows, use-after-free, use-after-return and double free. It costs about 2× runtime and 3× memory — so it belongs in tests and CI, not production. The rest of the family: ThreadSanitizer (data races), MemorySanitizer (uninitialized memory), UndefinedBehaviorSanitizer. Available in both Clang and GCC.