ASAN报错汇总

简介: ASAN报错汇总

启动错误:Shadow memory range interleaves with an existing memory mapping. ASan cannot proceed correctly. ABORTING

ASan shadow was supposed to be located in the [0x1ffff000-0x3fffffff] range.

地址消毒使用影子内存判断读写越界问题,影子内存在地址消毒初始化时被分配,

x86程序,地址消毒需要的影子内存从[0x1ffff000-0x3fffffff] ,一旦这部分内存被其他人占用,地址消毒则启动失败

0x08048000-0x19c7e000 /home/HiDisk/l00167020/br_test_modem_llt_on_linux_20170527/vendor/hisi/llt/gas/ut/utproj_test_v7

0x19c7e000-0x212cf000 /home/HiDisk/l00167020/br_test_modem_llt_on_linux_20170527/vendor/hisi/llt/gas/ut/utproj_test_v7

0x212cf000-0x23773000

可以看到,程序进程代码加载从0x08048000开始,那么到地址消毒要求的内存0x1ffff000中间共有402354176大约400M空间,那么x86程序加上地址消毒编译好的进程占用的空间如果超过400M则地址消毒就会报上边的错误

一般占用这么大空间的程序主要是有大的全局变量声明,把全局变量改成用堆分配就能解决。

asan的编译开关 -fsanitize=undefined 对进程的内存占用影响非常大,会占用很多的内存,增大text段、data段和BSS段,也可能导致王浩贴子里说的这个问题。如果有遇到这个问题的话,建议先关闭 -fsanitize=undefined 这个开关试试。

同时 -fsanitize=undefined 对编译出来的二进制文件大小影响也很大,在我的测试中,打开和去除这个编译选项,生成的二进制文件大小差了一倍。

一般程序过大都是有些大的全局变量,找到后用malloc分配可以解决

相关文章
|
设计模式 编解码 算法
【C/C++ 虚函数以及替代方案】C++ 虚函数的使用开销以及替代方案(三)
【C/C++ 虚函数以及替代方案】C++ 虚函数的使用开销以及替代方案
364 0
|
API iOS开发
彻底搞懂同步与异步,阻塞/非阻塞
彻底搞懂同步与异步,阻塞/非阻塞
3664 0
|
数据可视化 关系型数据库 编译器
【C/C++ 单线程性能分析工具 Gprof】 GNU的C/C++ 性能分析工具 Gprof 使用全面指南
【C/C++ 单线程性能分析工具 Gprof】 GNU的C/C++ 性能分析工具 Gprof 使用全面指南
1979 2
|
Unix Shell Linux
如何使用 Awk 打印文件中的字段和列
如何使用 Awk 打印文件中的字段和列
|
安全 算法 程序员
【C/C++ 文件操作】深入理解C语言中的文件锁定机制
【C/C++ 文件操作】深入理解C语言中的文件锁定机制
467 0
|
IDE 数据可视化 Java
5款经典代码阅读器的使用方案对比
代码阅读是技术人的必备技能之一,高效地梳理代码能够极大程度上提高开发人员的工作效率,进一步为业务创造新价值。
14413 0
5款经典代码阅读器的使用方案对比
|
缓存 监控 网络协议
掌控全局:Linux 系统性能调优技巧全面指南
掌控全局:Linux 系统性能调优技巧全面指南
|
8月前
|
存储 SQL Cloud Native
热烈祝贺 Flink 2.0 存算分离入选 VLDB 2025
Apache Flink 2.0架构实现重大突破,论文《Disaggregated State Management in Apache Flink® 2.0》被VLDB 2025收录。该研究提出解耦式状态管理架构,通过异步执行框架与全新存储引擎ForSt,实现状态与计算分离,显著提升扩展性、容错能力与资源效率,推动Flink向云原生演进,开启流计算新时代。
997 1
热烈祝贺 Flink 2.0 存算分离入选 VLDB 2025
|
安全 网络协议 Ubuntu
【常见开源库的二次开发】HTTP之libcurl库——libcurl使用(二)
【常见开源库的二次开发】HTTP之libcurl库——libcurl使用(二)
3820 2
|
11月前
|
算法 数据安全/隐私保护
基于16QAM的载波同步和定时同步性能仿真,采用四倍采样,包括Costas环和gardner环
本内容主要介绍了基于MATLAB的算法仿真及其涉及的理论知识。通过Matlab2022a仿真,展示了载波同步与位同步在通信系统中的实现效果,并提供无水印的完整代码运行结果。理论部分详细阐述了载波同步、位同步的概念,以及Costas环和Gardner定时误差算法的应用原理。核心程序包括鉴相器、环路滤波器处理及NCO相位生成等关键步骤,最终通过星座图对比验证了16QAM信号同步前后的性能改善。
546 30

热门文章

最新文章