优化 ASAN:
在 C/C++ 中,内存越界问题特别难排查,比如,线程 A 在写内存时,写越界了,操作了线程 B 的内存,线程 B 可能过了很久才去访问这块被写坏的内存,然后引起了问题,我们几乎无法从 core 文件中得到有用的信息。
ASAN 是业界所有的内存检测工具中性能最好的。与之对比的 valgrind、gperftools 会严重拖慢程序运行。
ASAN 是集成在 gcc、llvm 中的,由于我们使用的是 gcc 编译器,因此我优化了 gcc 源码中 ASAN 的运行时库实现。也就是优化了 ASAN 库中关于 malloc、free 的实现。