C++动态内存检查工具 - AddressSanitizer

news2024/11/24 11:54:42

参考
https://www.qt.io/blog/2013/04/17/using-gccs-4-8-0-address-sanitizer-with-qt

https://doc.qt.io/qt-6/qmake-variable-reference.html#qmake-lflags

AddressSanitizer是gcc编译器套件的一部分(gcc版本 > 4.8),只要在编译器调用中添加-fsanitize=address -fno-omit-frame-pointer,在链接器调用中添加-fsanitize=address就可以使用它。

qmake QMAKE_CXXFLAGS+="-fsanitize=address -fno-omit-frame-pointer" \
QMAKE_CFLAGS+="-fsanitize=address -fno-omit-frame-pointer" \
QMAKE_LFLAGS+="-fsanitize=address" \
CONFIG+=debug \  //debug 模式显示的log可读性更强
xx.pro

执行编译后的可执行程序,待程序正常退出后(Ctrl+c退出不行),会显示log 类似下面的log,指出具体哪个文件哪一行new的内存没释放。(下图中我是编译的release版本,没显示行号,如果编译成debug版本就会详细显示行号)
在这里插入图片描述
如果程序中有访问越界之类的严重错误,程序会直接退出,并在log中说明overflow地址,以及文件位置。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1161789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三维模型的顶层合并构建几个注意事项探讨

三维模型的顶层合并构建几个注意事项探讨 在进行倾斜摄影超大场景的三维模型的顶层合并构建时,有一些重要的注意事项需要考虑。本文将对这些注意事项进行分析和总结。 一、数据质量与准确性 数据质量是进行顶层合并的关键因素之一。在进行合并之前,需要…

同为科技(TOWE)自动断电倒计时定时桌面PDU插排

在每个家庭中,插排插座都是必不可少的电源设备。随着各种电器的普及应用和生活节奏的加快,人们对插排也有着多样化的需求,比如在插排中加入定时开关、自动断电、断电记忆、倒计时等等功能,让原本不支持智能家居的用电器秒变智能。…

UE5.0.3版本 像素流送 Pixel Streaming

目录 0 引言1 准备工作1.1 下载Node.js1.2 下载 PixelStreaming(非必须) 2 快速入门2.1 打包工程2.2 启动信令服务器2.3 启动工程2.4 打开网页 3 总结 🙋‍♂️ 作者:海码007📜 专栏:UE虚幻引擎专栏&#x…

Goby 漏洞发布|XXL-JOB accessToken 权限绕过漏洞

漏洞名称: XXL-JOB accessToken 权限绕过漏洞 English Name:XXL-JOB default accessToken Permission bypass Vulnerability CVSS core: 9.2 影响资产数: 18489 漏洞描述: XXL-JOB 是一款开源的分布式任务调度平台&#xff0…

Netty实战专栏 | Java网络编程深入解析

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Netty实战专栏 ✨特色专栏&#xff1a…

Matplotlib教程(非常详细)(第二部分)

接着上一部分Matplotlib教程(非常详细)(第一部分)接着描述。 十七、Matplotlib双轴图 在一些应用场景中,有时需要绘制两个 x 轴或两个 y 轴,这样可以更直观地显现图像,从而获取更有效的数据。…

学习Opencv(蝴蝶书/C++)——1. 前言 和 第1章.概述

文章目录 0.前言0.1 视觉库的发展(计算优化)0.2 MMX,IPP和Opencv0.3 书籍及配套代码0.4 阅读建议 1. 概述1.1 计算机视觉任务1.2 Opencv1.2.1 目标1.2.2 起源和发展 1.3 Opencv代码库1.3.1 基本信息1.3.2 整体架构 参考 0.前言 opencv的全名&#xff1a…

Java精品项目源码第60期糖尿病之家(代号V060)

Java精品项目源码第60期糖尿病之家(编号V60) 大家好,小辰今天给大家介绍一个糖尿病之家论坛交流系统,演示视频公众号(小辰哥的Java)对号查询观看即可 文章目录 Java精品项目源码第60期糖尿病之家(编号V60)难度指数(中…

【再更新】多分式标注(船新版本)

这篇是 多分式标注 脚本工具的第二次更新。 原文章及第一次更新详情请点击链接 【ArcGIS 脚本工具】生成多分式标注 【更新】多分式标注 脚本工具 更新内容 1.优化标注显示:可对生成后的分式标注加阴影或背景,不影响标注的正常显示; 更新…

activitycompat.requestPermissions不弹出弹窗问题

今天使用动态请求权限,但是弹窗怎么样都弹不出来后来发现,把targetsdk降低就好了 改成

【2021集创赛】Risc-v杯一等奖:自适应噪声环境的超低功耗语音关键词识别系统

本作品参与极术社区组织的有奖征集|秀出你的集创赛作品风采,免费电子产品等你拿~活动。 团队介绍 参赛单位:东南大学 队伍名称:Hey Siri 指导老师:刘波 参赛队员:钱俊逸、张人元、王梓羽 总决赛奖项:全国一等奖 摘要…

不可错过!9个提供高质量免扣PNG素材的网站推荐!

1) 即时设计 即时设计是一款专业的 UI 设计工具,其设计功能强大,同时也是一款具有海量优质图片的PNG素材网站。即时设计的图片素材均来自于 Unsplash,包括头像、动物、建筑、食物、风景等不同种类,图片清晰质量高,可以…

AI时代项目经理成长之道:ChatGPT让项目经理插上翅膀

AI时代项目管理新模式 一本专注于帮助项目经理在AI时代实现晋级、提高效率的图书。 100%提高管理效率:揭秘ChatGPT与项目管理高效融合的核心方法论和实践经验。 为什么要买这本书? AI不会取代你,会用AI的人将取代你 21世纪的核心竞争力就是…

VMware Workstation 17安装教程之创建普通用户

创建普通用户 Subscription Manager。它指的是红帽产品订阅服务,是红帽公司的一项收费服务,我们暂时不需要。 安装完毕后等待重启 安装后的收尾工作 接受红帽许可协议 返回到初始化界面,单击FINISH CONFIGURATION按钮进行确认后&#xff0…

人工智能AI 全栈体系(十一)

第一章 神经网络是如何实现的 这些神经网络越来越复杂,都是用BP算法求解。网络有些变化就可能需要重新推导,而在实验过程中可能会做很多尝试,这样每次都重新推导BP算法太麻烦了。 十、深度学习框架 现在有了很多深度学习框架,这…

利用Nginx负载均衡、动静分离特性部署前后端项目

目录 一、Nginx简介 1.1 Nginx是什么? 1.2 Nginx的作用 二、Nginx负载均衡 2.1 Nginx安装 2.2 Nginx搭载负载均衡 2.2.1 tomcat负载均衡 2.2.2 服务器的集群 三、前后端分离项目 3.1 前端项目导出 3.2 前端项目Linux部署 一、Nginx简介 1.1 Nginx是什么…

外接移动硬盘/U盘无法读写解决方案

一:问题描述 将常用的便携移动硬盘/U盘插入终端,终端无法读取移动硬盘/U盘,并出现“无法访问 介质受写入保护”或“拒绝访问”等报错信息。 二:解决方案 方案一:磁盘设置只读属性,清除磁盘只读属性。 操作…

UL1363跨境电商排插测试报告要提供哪些资料

排插UL1363测试项目及测试方法的介绍 1、漏电流测试 TVSS的样品应与标称电压连接。该测量表的输入阻抗等于1500ohm电阻的阻抗,该电阻旁接一个0.15μF的电容。该电阻放置在接地电源导体和可触及的金属零件之间或裹在外壳上的金属铜箔和插入插座的插头的接地接线柱之间…

open mp笔记

Open mp在cpu上并行计算, 统一内存访问(OPEN MP pthreads),同一块内存共享多个CPU 非统一内存访问(MPI),每个CPU都有自己对应的内存,通过blus interconnect链接起来,cpu不能直接访问他们的内存,…

双11消费遇冷?如何让消费回归心智原点

近一年来,小红书话题「重新养育自己」引热议。直面成长缺憾,不少人探寻解决方案,即像对待新生命般,不论是衣食住行还是心灵,重新关照自己。 借此,本期千瓜将锁定小红书热门话题背后的消费观转变&#xff0…