Linux基础 - 内存问题定位工具 ASAN

背景

定位内存泄漏、内存越界读写等问题;

步骤

编译过程

shell 复制代码
ASAN =  -fsanitize=address -fsanitize=leak
CFLAG = $(ASAN)
LDFLAG = -lasan

运行时

shell 复制代码
# 先配置环境变量
## 开启检测内存泄漏
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功能来编译;

即:需要检测哪个模块,就需要按编译过程跑一遍流程,这样函数就会被处理过;

相关推荐
一叶之秋14129 分钟前
Linux基本指令
linux·运维·服务器
码割机17 分钟前
Linux服务器安装jdk和maven详解
java·linux·maven
亚林瓜子33 分钟前
在amazon linux 2023上面源码手动安装tesseract5.5.1
linux·运维·服务器·ocr·aws·ec2
爱学习的大牛12335 分钟前
Ubuntu 24.04 安装 FreeSWITCH 完整教程
linux·freeswitch
FreeBuf_40 分钟前
研究人员披露 Windows SMB 服务器权限提升漏洞(CVE-2025-58726)
运维·服务器·windows
go_bai42 分钟前
Linux--进程池
linux·c++·经验分享·笔记·学习方法
人工智能训练1 小时前
在ubuntu系统中如何将docker安装在指定目录
linux·运维·服务器·人工智能·ubuntu·docker·ai编程
Lisonseekpan1 小时前
Linux 常用命令详解与使用规则
linux·服务器·后端
青木川崎1 小时前
linux面试题
java·linux·运维
Luo_xguan2 小时前
一、Netty-高并发IO底层原理(5种主要的IO模型)
java·服务器·netty·nio