linux 内存泄露检测工具-Valgrind的使用

news2024/11/15 13:01:26

Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。

  1. 安装,我是先valgrind一下发现这个的版本

apt install valgrind # version 1:3.15.0-1ubuntu9.1
  1. 新建一个项目与添加一个main.c

  1. 编辑main.c的代码:

#include <stdio.h>      /*标准输入输出定义*/
#include <stdlib.h>     /*标准函数库定义*/
#include <unistd.h>     /*Unix 标准函数定义*/
#include <string.h>     /*字符串功能函数*/

char *test() {
    return (char *)malloc(10000000);
}

int main() {
    test();
    return 0;
}
  1. 编译一个调试版本(编译出来一个a.out文件)

gcc main.c -g
  1. 使用valgrind跑一遍流程

valgrind --tool=memcheck --leak-check=yes --log-file=a.log --show-reachable=yes -s ./a.out一般这条命令运行完成以后,会生成一个a.log文件
  1. 查看a.log里面的信息

cat a.log
这个时候泄露的代码行就暴露出来了.

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

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

相关文章

springcloud3 GateWay

一 GateWay 1.1 GateWay的作用 gateway相当于所有服务的门户&#xff0c;将客户端请求与服务端应用相分离&#xff0c;客户端请求通过gateway后由定义的路由和断言进行转发&#xff0c;路由代表需要转发请求的地址&#xff0c;断言相当于请求这些地址时所满足的条件&#xff…

Mybatis中的一级缓存和二级缓存

Mybatis作为一款强大的ORM框架&#xff0c;其中也用到了缓存来加速查询&#xff0c;今天我们一起来探讨下。 Mybatis可以使用懒加载来提高查询的效率&#xff0c;并且可以通过缓存来提高查询的效率。其中包括有一级缓存和二级缓存。 一级缓存是sqlSession级别的缓存&#xff0c…

怎么给电脑分盘与合并磁盘?教你三招

电脑只有一个C盘&#xff0c;想要再分出一个或多个分区&#xff0c;怎么办&#xff1f;电脑C盘的容量太小&#xff0c;太容易满了&#xff0c;想重新分盘&#xff0c;或者把其他盘跟它合并&#xff0c;但因为文件太多备份实在是太麻烦&#xff0c;怎么办&#xff1f;怎么给电脑…

tomcat 启动时卡住问题排查

正常项目无法访问&#xff08;Linux 服务器&#xff09;&#xff0c;启动tomcat时卡在下图位置&#xff0c;项目无法启动。 1、先检查tomcat日志、项目日志没有报错信息&#xff0c;且没再产生新的日志信息。 2、jdk、tomcat 、 jvm 配置&#xff0c;服务器环境、内存、存储没…

论文阅读:Adversarial Cross-Modal Retrieval对抗式跨模式检索

Adversarial Cross-Modal Retrieval 对抗式跨模式检索 跨模态检索研究的核心是学习一个共同的子空间&#xff0c;不同模态的数据可以直接相互比较。本文提出了一种新的对抗性跨模态检索&#xff08;ACMR&#xff09;方法&#xff0c;它在对抗性学习的基础上寻求有效的共同子空间…

JVM学习笔记九:对象实例化与直接内存

0. 前言 声明&#xff1a; 感谢尚硅谷宋红康老师的讲授。 感谢广大网友共享的笔记内容。 B站&#xff1a;https://www.bilibili.com/video/BV1PJ411n7xZ 本文的内容基本来源于宋老师的课件&#xff0c;其中有一些其他同学共享的内容&#xff0c;也有一些自己的理解内容。 1. …

一文解码:如何在人工智能热潮下实现产业“智”变

近期由ChatGPT有关人工智能的话题引发了全民热议&#xff0c;在这股子浪潮下&#xff0c;讨论最多的话题就是ChatGPT的出现会为我们带来怎样的技术变革&#xff1f;是否会改变我们目前的生产方式&#xff1f;对于未来人工智能技术的发展&#xff0c;我们该如何客观看待&#xf…

Unity Lighting -- 使用Light Probes

什么是动态物体&#xff08;dynamic objects&#xff09; 到目前为止的例子中&#xff0c;我们场景中的所有东西都是静止的。但在实际的游戏或实时应用中&#xff0c;场景中有移动的物体很正常&#xff0c;比如走动的人或动物&#xff0c;汽车&#xff0c;飞机等&#xff0c;它…

MRCP在美团语音交互中的实践和应用

当你和智能语音机器人对话交互时&#xff0c;你是否好奇电话背后的机器人如何“听懂”你的意思&#xff0c;又如何像人一样“回答”你的问题&#xff1f;其中比较重要的技术就是 MRCP。本文主要介绍了 MRCP 在美团语音交互中的实践和应用&#xff0c;基于美团自研的语音识别及语…

动态规划入门经典问题讲解

最近开始接触动态规划问题&#xff0c;以下浅谈&#xff08;或回顾&#xff09;一下这些问题的求解过程。解题思路对于动态规划问题&#xff0c;由于最终问题的求解需要以同类子问题作为基础&#xff0c;故需要定义一个dp数组&#xff08;一维或二维&#xff09;来记录问题求解…

Vue 3.0 单文件组件 【Vue3 从零开始】

#介绍 在很多 Vue 项目中&#xff0c;我们使用 app.component 来定义全局组件&#xff0c;紧接着用 app.mount(#app) 在每个页面内指定一个容器元素。 这种方式在很多中小规模的项目中运作的很好&#xff0c;在这些项目里 JavaScript 只被用来加强特定的视图。但当在更复杂的…

[Java·算法·中等]LeetCode39. 组合总和

每天一题&#xff0c;防止痴呆题目示例分析思路1题解1分析思路2题解2&#x1f449;️ 力扣原文 题目 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形…

Golang Map实现原理分析与解读

一、map的结构与设计原理 golang中map是一个kv对集合。底层使用hash table&#xff0c;用链表来解决冲突 &#xff0c;出现冲突时&#xff0c;不是每一个key都申请一个结构通过链表串起来&#xff0c;而是以bmap为最小粒度挂载&#xff0c;一个bmap可以放8个kv。在哈希函数的选…

配置临时SSL子域名泛化证书

配置临时SSL子域名泛化证书 三个月有效期第一步&#xff1a;访问SSL证书地址第二步&#xff1a;在华为云上/其他服务器上搜索DNS云解析服务类似的功能第三步&#xff1a;将SSL申请的信息添加到服务器的记录集中第四步&#xff1a;添加完信息进行保存获取key / crt第五步&#x…

蓝桥冲刺31天之第七天

目录 A&#xff1a;三角回文数 B&#xff1a;数数 C&#xff1a;数组切分 D&#xff1a;倍数问题 一星陨落&#xff0c;黯淡不了星空灿烂&#xff1b; 一花凋零&#xff0c;荒芜不了整个春天。 如果命运是世界上最烂的编剧&#xff0c; 你就要争取做人生最好的演员。 即使生…

06_02_Spark Streaming

Spark Streaming 课程目标 说出Spark Streaming的特点说出DStreaming的常见操作api能够应用Spark Streaming实现实时数据处理能够应用Spark Streaming的状态操作解决实际问题独立实现foreachRDD向mysql数据库的数据写入独立实现Spark Streaming对接kafka实现实时数据处理 1、…

打怪升级之CFileDialog类介绍

CFileDialog类 CFileDialog封装用于文件打开操作或文件保存操作的常见对话框。信息来源自Windows官方文档&#xff1a;https://learn.microsoft.com/zh-cn/cpp/mfc/reference/cfiledialog-class?viewmsvc-170 这里重点介绍几个常用的函数功能&#xff1a; 构造函数 explic…

当我在ChatGPT上问重建大师,它居然这样回答我

最近&#xff0c;ChatGPT风靡全球&#xff0c;现象级走红至各大社交媒体。作为最快突破1亿月活量的消费者应用&#xff0c;是怎么样理解重建大师的呢&#xff1f; 今天小编与ChatGPT展开对话&#xff0c;它告诉我&#xff1a; 短短不到一分钟时间&#xff0c;ChatGPT已经概括出…

Grafana 监控面板绘制流程

本篇作者&#xff1a;IoTDB 社区 -- 张洪胤本文以 IoTDB V1.0.1 版本为例本文档介绍了 Apache IoTDB 监控指标通过 Prometheus 的方式进行采集&#xff0c;并且使用 Grafana 的方式进行可视化。1监控指标的 Prometheus 格式说明对于 Metric Name 为 name, Tags 为 K1V1, ..., K…

ABB机器人Offs坐标偏移功能的具体使用方法

ABB机器人Offs坐标偏移功能的具体使用方法 Offs功能说明: 在机器人的工件坐标系中添加一个偏移量 举例说明: 参数及数据类型: 在RobotStudio的仿真操作: 如下图所示,在程序中添加一个移动指令,并记录该点位为p10, 如下图所示,复制该指令语句, 如下图所示,选中…