ubsan could help a lot: http://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
Recently: Use-after-free of a memory block. ASAN told me:
1. Where and in which thread the use-after-free occurred (including stacktrace).
2. Where and in which thread the memory was deallocated (including stacktrace).
3. Where and in which thread the memory had originally been allocated (including stacktrace).
Fixing the bug took about 30s with that info.