【C++】内存泄漏排查

前言

内存泄漏影响程序的稳定性运行,并且在程序运行过程中,并不会报错误,需要借助专用的内存泄露工具进行检测。
工具:CLion and AddressSanitizer

#include <iostream>
using namespace std;int main() {char *c = new char[2];*c = '1';delete c;return 0;
}
CMakeLists.txt 添加参数 -fsanitize=addrescmake_minimum_required(VERSION 3.17)
project(code)
set(CMAKE_CXX_FLAGS_DEBUG  "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address")
set(CMAKE_CXX_STANDARD 14)add_executable(code main.cpp)
=================================================================
==3026==ERROR: AddressSanitizer: alloc-dealloc-mismatch (operator new [] vs operator delete) on 0x602000000010#0 0x7f19d988e025 in operator delete(void*, unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x111025)#1 0x561bc11fd2f3 in main /data/code/main.cpp:7#2 0x7f19d93cd0b2 in __libc_start_main (/usr/lib/x86_64-linux-gnu/libc.so.6+0x240b2)#3 0x561bc11fd1cd in _start (/data/code/cmake-build-debug/code+0x11cd)0x602000000010 is located 0 bytes inside of 2-byte region [0x602000000010,0x602000000012)
allocated by thread T0 here:#0 0x7f19d988cb47 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10fb47)#1 0x561bc11fd29e in main /data/code/main.cpp:5#2 0x7f19d93cd0b2 in __libc_start_main (/usr/lib/x86_64-linux-gnu/libc.so.6+0x240b2)SUMMARY: AddressSanitizer: alloc-dealloc-mismatch (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x111025) in operator delete(void*, unsigned long)
==3026==HINT: if you don't care about these errors you may set ASAN_OPTIONS=alloc_dealloc_mismatch=0
==3026==ABORTING

高级用法

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

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

相关文章

【北亚服务器数据恢复】ZFS文件系统服务器ZPOOL下线的数据恢复案例

服务器数据恢复环境&#xff1a; 服务器中有32块硬盘&#xff0c;组建了3组RAIDZ&#xff0c;部分磁盘作为热备盘。zfs文件系统。 服务器故障&#xff1a; 服务器运行中突然崩溃&#xff0c;排除断电、进水、异常操作等外部因素。工作人员将服务器重启后发现无法进入操作系统。…

Python异常总结

一 异常 当Python检测到一个错误时&#xff0c;解释器就无法继续执行了&#xff0c;反而出现了一些错误的提示&#xff0c;这就是所谓的"异常"。 print -----test--1--- open(123.txt,r) # 此处发生异常&#xff0c;程序崩溃 print -----test--2---异常需要…

IPD-PDP产品开发流程-PDT产品开发计划Charter文档模板(word)2

书接上回&#xff0c;继续为大家分享PDT的产品开发计划Charter模板的主要内容。 据华研荟了解&#xff0c;大部分国内的企业在推行IPD的时候就直接像华为一样&#xff0c;把开发计划&#xff08;任务书&#xff09;叫做Charter&#xff0c;而不翻译为中文。其实这也是一种很好…

Roary结果中有基因组丢失怎么办

Roary结果里面有基因组没在结果里出现&#xff1f;&#xff1f;&#xff01; 看看是不是结果文件夹里有一个文件夹叫fixed_input_files 如果有&#xff0c;你可以检查一下自己提交的gff文件里是不是每个不同的ORF&#xff08;可以理解为基因&#xff09;都在最后一列ID有自己独…

超图iClient3DforCesium地形、影像、模型、在线影像交互示例

超图iClient3DforCesium地形、影像、模型、在线影像交互示例 描述示例代码 描述 数据源&#xff1a;基于iserver发布的三维场景(地形、影像、BIM模型) 在线arcgis影像 应用&#xff1a;目录树展示源数据列表、目录树控制源数据可视化结果显隐、BIM模型点选查询关联属性 示例代…

水果软件2024FL Studio21.3mac苹果中文版

FL STUDIO21发布&#xff0c;提供您一直在等待的出色工作流程功能。通过新效果、多个播放列表曲目选择和无所畏惧的撤消一切编辑&#xff0c;将您的音乐带入2024年。FL Studio21中文完整版是一个功能齐全、开放式架构的PC音乐创作和制作环境。它具有基于音乐音序器的图形用户界…

详细讲解node的ws中服务端的websocket.server的各种api

WebSocket是一种在单个TCP连接上进行全双工通信的协议。Node.js中的ws模块提供了WebSocket的实现&#xff0c;使得Node.js可以轻松地创建WebSocket服务器和客户端。 在ws模块中&#xff0c;WebSocket服务器由WebSocket.Server类实现。WebSocket.Server提供了一系列的API&#…

Anolis8/centos8/龙蜥8 升级glibc 2.30

背景&#xff1a; Anolis8/centos8/龙蜥8 系统自带的glibc是2.28版本&#xff0c;已经无法满足项目需要&#xff0c;所以将glibc版本升级到2.30。 编译升级安装 wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.30.tar.gz tar -xvf glibc-2.30.tar.gz #查看glibc需要的g…

STL——list容器

目录 1.list基本概念 2.list构造函数 3.list赋值和交换 4.list大小操作 5.list插入和删除 6.list数据存取 7.list反转和排序 8.排序案例 1.list基本概念 功能&#xff1a;将数据进行链式存储。 链表&#xff08;list&#xff09;是一种物理存储单元上非连续的存储结构&…

SpringBoot-Shiro

Apache Shiro&#xff1a;https://shiro.apache.org/ 依赖 <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>1.4.1</version> </dependency>ShiroConfig.java Configuratio…

StringBuilder、StringBuffer

StringBuilder StringBuilder代表可变字符串对象&#xff0c;相当于是一个容器&#xff0c;它里面装的字符串是可以改变的&#xff0c;就是用来操作字符串的。好处&#xff1a;StringBuilder比String更适合做字符串的修该操作&#xff0c;效率会更高&#xff0c;代码也会更简洁…

*-over-slf4j 相关依赖包

*-over-slf4j 是 SLF4J 提供的一系列桥接依赖包&#xff0c;它们用于将其他日志框架的API调用重定向到SLF4J&#xff0c;这样就可以使用统一的SLF4J接口&#xff0c;并通过配置SLF4J的绑定器来选择实际的日志实现。以下是一些常见的 *-over-slf4j 桥接依赖包&#xff1a; jcl-o…

k8s中的namespace及创建方式

1. 什么是namespace&#xff08;名称空间&#xff09; 在 Kubernetes 中&#xff0c;Namespace&#xff08;名称空间&#xff09;是一种用于隔离和组织集群中资源的机制。通俗地说&#xff0c;它就像是在同一个 Kubernetes 集群中划分出来的一些虚拟区域&#xff0c;让你可以在…

Docker Compose容器编排实战

介绍 Docker Compose 是 Docker 官方提供的一种工具&#xff0c;用于定义和运行多个 Docker 容器的应用。它使用简单的 YAML 文件&#xff08;通常称为 docker-compose.yml&#xff09;来配置应用的服务&#xff0c;并使用单个命令即可创建、启动和停止整个应用。 官方文档&am…

计算机网络概述(上)——“计算机网络”

各位CSDN的uu们好呀&#xff0c;好久没有更新小雅兰的计算机网络的专栏啦&#xff0c;而且期末考试也要考计算机网络&#xff0c;所以&#xff0c;小雅兰就来写计算机网络的内容啦&#xff01;&#xff01;&#xff01;下面&#xff0c;让我们进入计算机网络概述的世界吧&#…

rust中的超时处理

rust中的超时处理 自从 tokio 1.0发布以来&#xff0c;rust的异步开发总算大势已定。尽管没达到标准库的速度&#xff0c;依然挡不住大家的热情。看编程排行榜&#xff0c;增加2倍的开发者。 既生瑜何生亮&#xff0c;感觉go就是小号的rust。 不废话了。背景&#xff1a;之前…

为什么要部署堡垒机

现如今网络安全越发受到重视&#xff0c;其中安全审计作为企业信息安全建设不可缺少的组成部分&#xff0c;逐渐受到用户的关注&#xff0c;是企业安全体系中的重要环节。同时&#xff0c;安全审计是事前预防、事中预警的有效风险控制手段&#xff0c;也是事后追溯的可靠证据来…

HarmonyOS引导页登陆页以及tabbar的代码说明 登陆页2

代码&#xff1a;这里的prompt.showToast是弹出提示&#xff0c;Extend(TextInput) 的功能是对TextInput做了公用的样式。isShowProgress是用来控制isShowProgress&#xff0c;出来一个等待效果 import prompt from ‘ohos.promptAction’; import router from ‘ohos.router…

Redis缓存雪崩、缓存击穿、缓存穿透

1. 什么是缓存雪崩 当我们提到缓存系统中的问题&#xff0c;缓存雪崩是一个经常被讨论的话题。缓存雪崩是指在某一时刻发生大量的缓存失效&#xff0c;导致瞬间大量的请求直接打到了数据库&#xff0c;可能会导致数据库瞬间压力过大甚至宕机。尤其在高并发的系统中&#xff0c;…

基于SVM的用气量预测,基于支持向量机SVM的用气量预测

目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 Libsvm工具箱详解 简介 参数说明 易错及常见问题 完整代码和数据下载链接: 基于SVM的用气量预测,基于支持向量机SVM的用气量预测(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/8861…