Valgrind概述

来源:互联网 发布:js禁止复制文字 编辑:程序博客网 时间:2024/06/08 08:17
1.1。Valgrind概述
1.2。如何浏览本手册

1.1。Valgrind概述

Valgrind是构建动态分析工具的工具框架。它配有一组工具,每个工具都执行某种调试,分析或类似任务,可以帮助您改进程序。Valgrind的架构是模块化的,因此可以轻松创建新工具,而不会影响现有的结构。

标准提供了许多有用的工具。

  1. Memcheck是一个内存错误检测器。它可以帮助您使程序,特别是C和C ++编写的程序更正确。

  2. Cachegrind是一个缓存和分支预测分析器。它可以帮助您使程序运行速度更快。

  3. Callgrind是生成缓存分析器的调用图。它与Cachegrind有一些重叠,但也收集了Cachegrind没有的一些信息。

  4. Helgrind是一个线程错误检测器。它可以帮助您使您的多线程程序更正确。

  5. DRD也是线程错误检测器。它与Helgrind类似,但使用不同的分析技术,因此可能会发现不同的问题。

  6. Massif是一个堆分析器。它可以帮助您使程序使用更少的内存。

  7. DHAT是一种不同类型的堆分析器。它有助于您了解块生命周期,块利用率和布局效率低下的问题。

  8. SGcheck是一个可以检测堆栈和全局数组超出的实验工具。它的功能与Memcheck的功能相辅相成:SGcheck发现Memcheck不能出现问题,反之亦然。

  9. BBV是一个实验性SimPoint基本块向量生成器。对于进行计算机体系结构研究和开发的人来说,是有用

还有一些对大多数用户无用的小工具: Lackey是一个示例工具,用于说明一些工具基础知识; 和Nulgrind是最小Valgrind的工具,做任何分析或仪器,并仅用于测试目的。

Valgrind与CPU和操作系统的细节密切相关,在较小程度上与编译器和基本C库相关。尽管如此,它还支持一些广泛使用的平台,详见http://www.valgrind.org/。

Valgrind是通过标准的Unix建 ./configure, makemake install的过程; 完整的详细信息在发行版的README文件中给出。

Valgrind是在许可下的GNU通用公共许可证,版本2,valgrind/*.h您可能希望在代码中包含头文件(例如 valgrind.hmemcheck.h, helgrind.h等)下BSD风格的许可证下发布的,所以你可能在包括它们的代码,而不用担心许可证冲突。一些PThreads测试用例pth_*.c,摘自O'Reilly&Associates,Inc.出版的Bradford Nichols,Dick Buttlar&Jacqueline Proulx Farrell,ISBN 1-56592-115-1的“Pthreads Programming”

如果您向Valgrind提供代码,请确保您的贡献被许可为“GPLv2”,或(作为您选择)的任何更高版本。这是为了让将来许可证容易升级到GPLv3的可能性。如果要修改VEX子目录中的代码,请参阅发行版中的VEX / HACKING.README文件。

1.2。如何浏览本手册

本手册的结构反映了Valgrind本身的结构。首先,我们描述Valgrind核心,如何使用它,以及它支持的选项。然后,每个工具在本手册中都有自己的章节。您只需要阅读核心文档以及实际使用的工具,尽管您至少可以了解所有工具的用途,但您可能会发现有用。如果您是新来的,您可能需要运行Memcheck工具,您可能会发现“Valgrind快速入门指南”很有用。

请注意核心了解一些命令行选项,并且这些工具有自己的选择,他们知道。这意味着没有描述接受的所有选项的中心位置 - 您必须阅读Valgrind的核心和您要使用的工具的选项文档 。