运行时诊断工具 Valgrind

码农软件 · 软件分类 · 程序调试工具 · 2019-12-02 07:58:14

软件介绍

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

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

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

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

自动化代码分析

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

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

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

本文地址:https://www.codercto.com/soft/d/20244.html

国际游戏设计全教程

国际游戏设计全教程

[美]迈克尔·萨蒙德 / 张然、赵嫣 / 中国青年出版社 / 2017-2 / 108.00元

你想成为一名电子游戏设计师吗?想知道《肯塔基0号路》《到家》《枪口》等独立游戏的制作理念及过程吗?想了解《戈莫布偶大冒险》《辐射3》《战争机器》中关卡设计的奥秘吗?本书用通俗易懂的文字介绍了在游戏开发与策划过程中,需要掌握的游戏设计原理和制作的基础知识,可以作为读者从“构思一个电子游戏”到“真正完成一个电子游戏”的完备指南。 本书以系统的游戏设计流程结合大量优秀的游戏设计案例进行讲解,让读者......一起来看看 《国际游戏设计全教程》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具