Valgrind

运行时诊断工具
授权协议 GPL
开发语言 C/C++
所属分类 开发工具、 程序调试工具
软件类型 开源软件
地区 不详
投 递 者 杨建章
操作系统 Linux
开源组织
适用人群 未知
 软件概览

Valgrind是一个运行时诊断工具,它可以监视 一个指定程序的活动并通知你在你的代码中可能存在的各种各样的内存管理问题。它类似于老式的Electric Fence工具(该工具将标准的内存分配函数替换为自己的函数以提高诊断能力),但被认为更容易使用并且在多个方面都提供了更丰富的功能——而且现在大多 数主流Linux发行版都提供了该工具,所以在你的系统中使用它不需要花费太多时间,你只需安装它的软件包即可。

一个典型的Valgrind运行可能如下所示:

输出显示有80个字节的内存在程序结束时丢失了。通过指定leak-check选项,我们可以找到这个泄漏的内存来自哪里:

你应该养成习惯在可能的情况下使用诸如 Valgrind这样的工具来对发现和修复内存泄漏以及其他编程错误的过程进行自动化。因为这里只对Valgrind进行了肤浅的介绍,所以你需要查看它 的在线文档以更全面的了解其功能。事实上,越来越多的开放源码项目都依赖于Valgrind作为其回归测试(任何一个具有相当规模的软件项目的一个重要组 成部分)的一部分。

自动化代码分析

有越来越多的第三方工具可以用于执行自动化代码分 析,寻找软件中各种典型类型的缺陷。这类代码覆盖工具一般提供静态、动态或混合形式的代码分析。这意味着工具可能只是检查源代码以确定潜在的缺陷,或它可 能试图钩入其他一些进程,以获取确定软件中缺陷可能存在位置所必需的数据。

基于斯坦福大学的checker的商业代码分析工具 Coverity经常被用在Linux系统中。它钩入编译过程并提取大量有用的信息,这些信息可用于发现很多潜在的问题。事实上,Coverity为越来 越多的开放源码项目提供免费代码分析。它甚至还发现了Linux内核中相当多的以前未被发现的错误。这些问题被发现后立即得到了解决。

静 态代码分析的一个比较有趣的用途是查找源代码中是否有非法使用GPL代码的情况。Blackduck软件就提供了这样一个工具,它可以帮助你扫描你的大型 软件项目,以查找借用自开放源码项目的源代码,并确定处理方法。这对兼容性测试以及其他的你的法律团队可能会提醒你进行的活动将非常有用。

  • 一、valgrind简介 Valgrind是一款用于内存调试、内存泄漏检测以及性能分析、检测线程错误的软件开发工具。 Valgrind 是运行在Linux 上的多用途代码剖析和内存调试软件。主要包括Memcheck、Callgrind、Cachegrind 等工具,每个工具都能完成一项任务调试、检测或分析。可以检测内存泄露、线程违例和Cache 的使用等。Valgrind 基于仿真方式对程序进行调

  • 介绍 valgrind 是一套linux下的开源仿真调试工具集,遵循GPLv2许可协议,可以用于内存调试,内存泄漏检测以及性能分析。 valgrind包含下列一些工具: Memcheck:内存错误检测器,这是最常用的工具,用于检测程序中的内存问题,如泄露、越界、非法指针等。memcheck会检测所有对内存的去写操作,一切对malloc()/free()/new/delete的调用都会被捕获,所以能

  • 来源地址:Valgrind Home​valgrind.org 为什么使用valgrind?Valgrind Home为什么使用valgrind?Valgrind将为您节省数小时的调试时间。使用Valgrind工具,您可以自动检测许多内存管理和线程错误。 Valgrind可以帮助你加速你的程序。使用Valgrind工具,您还可以执行非常详细的分析,以帮助找到程序中的瓶颈。 Valgrind很容易使

  • 内存泄漏检查: Linux检测程序内存泄漏 1.安装valgrind: Valgrind是一款用于内存调试、内存泄漏检测以及性能分析、检测线程错误的软件开发工具。mtrace为内存分配函数(malloc, realloc, memalign,free)安装hook函数。这些hook函数记录内存的申请和释放的trace信息。 Valgrind详解: Valgrind包括以下一些工具: 1.Memch

  • 概述 valgrind 官网 https://www.valgrind.org/ valgrind 是 Linux 业界主流且非常强大的内存泄漏检查工具。在其官网介绍中,内存检查(memcheck)只是其其中一个功能。由于只用过其内存泄漏的检查,就不拓展分享 valgrind 其他功能了。 valgrind 这个工具不能用于调试正在运行的程序,因为待分析的程序必须在它特定的环境中运行,它才能分析内

 相关资料
  • 介绍 ping的工作原理很简单,一台网络设备发送请求等待另一网络设备的回复,并记录下发送时间。接收到回复之后,就可以计算报文传输时间了。只要接收到回复就表示连接是正常的。耗费的时间喻示了路径长度。重复请求响应的一致性也表明了连接质量的可靠性。因此,ping回答了两个基本的问题:是否有连接?连接的质量如何?本文主要讨论这两个问题。 更多信息 正常的ping操作主要是两个特定的ICMP消息,ECHO_

  • 如何识别 Photoshop 增效工具问题并进行故障诊断。 注意:在下面的内容中,位于文本旁边的 图标表示 Photoshop CC 2015.5 版本的新信息。 由于增效工具存在缺陷或不兼容而导致的问题概述 如果您遇到以下任何问题,原因可能是增效工具存在缺陷或不兼容: 错误:“无法载入 [增效工具名称] 模块,因为它不能与此版本的 Photoshop 一起使用。” “保存”或“另存为”对话框中缺

  • 如果 Flarum 无法安装或者是没有按照预期运行,第一件需要做的事情就是再次检查你的环境是否达到了系统要求。如果你缺失部分 Flarum 的依赖项(例如 PHP 的 fileinfo 扩展),你将需要先处理这些问题。 接下来,你应该花上几分钟在支持论坛和问题追踪器内检索。有可能有人已经汇报了这个问题,或者解决方案正在讨论,或者已经有解决方案。在检索过后,如果你仍然没有发现关于这个问题的信息的话,

  • Composer默认使用Winston日志记录模块,并使用Config模块查找任何配置信息。如果没有找到,那么将使用一组默认值。 如果没有设置配置文件,配置模块会写出警告。例如。WARNING: No configurations found in configuration directory。如果您对默认值感到满意,并且不希望在应用程序中使用配置,则可以使用环境变量来抑制这种情况。在这里查看更

  • 什么是抓取诊断 抓取诊断工具,可以让站长从百度蜘蛛的视角查看抓取内容,自助诊断百度蜘蛛看到的内容,和预期是否一致。每个站点每周可使用70次,抓取结果只展现百度蜘蛛可见的前200KB内容。 抓取诊断工具能做什么 目前抓取诊断工具有如下作用: 1、诊断抓取内容是否符合预期,譬如很多商品详情页面,价格信息是通过JavaScript输出的,对百度蜘蛛不友好,价格信息较难在搜索中应用。问题修正后,可用诊断工

  • 嗨,这里有一个概要用例。我有一个在JavaFX Scene Builder中开发的看似有效的FXML文件。到目前为止,它是一个非常重要的XML块,并且在FXML文件的某个地方存在运行时加载错误。场景构建器与预览选项工作良好。我有一个'simple.FXML'文件,用来验证控制器是否按照预期工作,即相同的控件和事件,但没有额外的FXML布局。我已经并且我正在执行cut-out-code And te