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功能来编译;

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

相关推荐
PC2005-cloud1 小时前
博文已索引但不展示:一次 Bing SEO 问题排查记录
服务器·人工智能
沸速存储1 小时前
整机瓶颈判断思路,自上而下定位卡顿根源
运维·服务器·电脑·内容运营
乌萨奇也要立志学C++2 小时前
【Linux】网络基础 从零理解网络通信:局域网、跨网传输与 Socket 预备知识
linux·服务器·网络
RisunJan4 小时前
Linux命令-slabtop(实时显示内核 slab 缓存信息)
linux
2601_965798476 小时前
Is Hygia Good for Maid & Janitorial Sites? Technical Audit
服务器·网络·数据库
蚰蜒螟6 小时前
从内核源码看Linux启动:chroot、execve与MS_MOVE的协奏曲
linux·服务器·网络
酷可达拉斯6 小时前
自动化运维-ansible配置文件与主机清单
linux·运维·自动化·ansible
影视飓风TIM7 小时前
Linux下C语言缓冲区原理 + Git版本控制
linux·c语言·git
来者皆善7 小时前
ZYNQ linux上使用 USB CDC ACM
linux·运维·服务器
缓慢更新8 小时前
企业档案管理系统迁移实录:从文件服务器到智能检索引擎
运维·服务器