定位内存泄漏、内存越界读写等问题;
ASAN = -fsanitize=address -fsanitize=leak
CFLAG = $(ASAN)
LDFLAG = -lasan
# 先配置环境变量
## 开启检测内存泄漏
export ASAN_OPTIONS=detect_leaks=1
## 1:检测到错误是就关闭程序 0:不关闭
export ASAN_OPTIONS=${ASAN_OPTIONS}:halt_on_error=1
## 设置日志路径
export ASAN_OPTIONS=${ASAN_OPTIONS}:log_path='/tmp/a.log'
# 启动程序需要先配置库
LD_PRELOAD=/path/to/libasan.so.x ./yourapp
如果需要检测库是否有问题,被引用的库也需要开启asan功能来编译;
即:需要检测哪个模块,就需要按编译过程跑一遍流程,这样函数就会被处理过;