Valgrind 运行时诊断工具

开源网站开源项目 24-06-08 09:10:34

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

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

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

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

自动化代码分析

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

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

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

[Valgrind 运行时诊断工具]相关推荐

Erlang 编程语言

Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控……...

Faker 生成假数据的 PHP 库

Faker 是一个为你生成假数据的PHP库。当你需要填充一个测试数据库,或为你的web应用生成测试数据时,它能……...

Gosu 通用编程语言

Gosu 通用编程语言

Gosu是基于Java虚拟机(JVM)的通用编程语言,面向对象,静态类型,命令式,百分之百兼容Java(use/exte……...

Zebra 数据库访问层中间件

Zebra是点评内部使用的数据库访问层中间件,它具有以下的功能点: 配置集中管理,动态刷新 支持读写分离……...

今日开源
  1. Ola JavaScript 实时数据插入平滑动画库

    Ola JavaScript 实时数据插入平滑动画库

    Ola 是一个简单的 JavaScript 库,实时插入/插入(inbetweening/interpolating)数字的平滑动画库。 // Start tracking the valueconst pos = Ola({ y: 0 });// Set the value to update asyncpos.set({ y: 100 }……

    开源软件 2024-07-01

  2. absence 日历记事工具

    absence 日历记事工具

    absence 是个日历工具,用来记录人们每一天的生活中事件的工具(适用于任何对象)。它可以取代在老板办公室无处不在的书写白板。absence 是个 CGI 系统,最细的分类只能是一天。它还能使用 GD 库把每个月的事件生……

    开源软件 2024-07-01

  3. CCXT 加密货币交易开发包

    CCXT – CryptoCurrency eXchange Trading Library CCXT 是一个用于加密货币交易和电子商务的JavaScript/Python/PHP库,支持许多比特币/以太/山寨币交易市场和商家API。 CCXT库用于连接和交易全球的加密货币交易和……

    开源软件 2024-07-01

返回顶部小火箭