首页 > 其他分享 >asan

asan

时间:2023-07-05 14:13:00浏览次数:25  
标签:GCC fsanitize 4.9 内存 address asan

参考资料:https://blog.csdn.net/weixin_45396052/article/details/119136109

简介

address sanitizier(地址消毒剂),简称asan, 是一款内存检测工具,可用于检测一下错误:

1、 堆内存、栈内存和全局变量的越界(-fsanitize=address)

2、 已释放内存(野指针)的使用(-fsanitize=address)

3、 内存泄漏(-fsanitize=leak)

4、 作用域外的使用(clang flag -fsanitize-address-use-after-scope)

5、 返回值使用(runtime flag ASAN_OPTIONS=detect_stack_use_after_return=1)

 

GCC版本要求:

       GCC4.8及其以上,若要查内存泄漏(LeakSanitizer),需GCC>=4.9

       ARM版本GCC>=4.9

编译选项:

       -fsanitize=address       内存错误检测

    -fno-omit-frame-pointer 让gcc产生stack frame

    -fsanitize=leak          内存泄漏检测,gcc>=4.9

    -fsanitize=bounds        数组索引越界

设置log文件路径:

    export ASAN_OPTIONS=”/home/1.log”

标签:GCC,fsanitize,4.9,内存,address,asan
From: https://www.cnblogs.com/ho966/p/17528345.html

相关文章

  • 内存问题难定位,那是因为你没用ASAN
    ASAN全称:AddressSanitizer,google发明的一种内存地址错误检查器。目前已经被集成到各大编译器中。本文分享自华为云社区《内存定位利器-ASAN使用小结》,作者:云存储开发者支持团队。1.什么是ASANASAN全称:AddressSanitizer,google发明的一种内存地址错误检查器。目前已经被集......
  • Linux内存管理 (22)内存检测技术(slub_debug/kmemleak/kasan)【转】
    转自:https://www.cnblogs.com/arnoldlu/p/8568090.htmlLinux常见的内存访问错误有:越界访问(outofbounds)访问已经释放的内存(useafterfree)重复释放内存泄露(memoryleak)栈溢出(stackoverflow)不同的工具有不同的侧重点,本章主要从slub_debug、kmemleak、kasan三......
  • 转载:asan 使用
    https://blog.csdn.net/u013171226/article/details/126876335https://www.osc.edu/resources/getting_started/howto/howto_use_address_sanitizer1.makecflagsstati......
  • kasan中地址计算的一点理解
    内核中利用kasan检查访问内存是否合法时需要将要访问的内存地址映射到shadow区中的对应位置,然后再判断在shadow区里存放的数值。下面是转换函数:staticinlinevoid*kasa......
  • 关于asan内存检测工具的原理和使用
    Hello,各位看官好,小弟的公司最近开始使用asan这个工具了,最近在晚上查了一下,不查不知道,一查吓一跳,这个工具真的是神一般的工具,所以我就花了一点时间整理了一下asan工具的......
  • linux配置开启KASAN功能
    【KASANlinux内存检测工具】 (本文档将引导编译一个开启kasan功能的内核)一简介: KernelAddressSanitizer缩写KASAN;是linux内核的动态内存检测工具, 主要检查......