第 13 章 Valgrind
Valgrind 是一个检测框架,附带很多用于分析应用程序的工具。它可用于检测各种内存错误和内存管理问题,如使用未初始化内存或分配不当的内存,或者识别系统调用中不正确的参数。有关 Valgrind Red Hat Developer Toolset 版本发布的性能分析工具的完整列表,请参阅 表 13.1 “用于 Red Hat Developer Toolset 的 Valgrind 工具”。
Valgrind 通过重写应用程序并检测重写的二进制文件来对应用程序进行性能分析。这可让您对应用程序进行性能分析,而无需重新编译它,但它使 Valgrind 比其他配置集慢得多,特别是在执行非常详细的运行时。因此,它不适用于调试特定于时间的问题或内核空间调试。
Red Hat Developer Toolset 与 Valgrind 3.17.0 一起发布。此版本比之前版本的 Red Hat Developer Toolset 中包含的版本更新,并提供大量程序错误修复和增强。
| Name | 描述 |
|---|---|
| Memcheck | 通过截获系统调用并检查所有读写操作来检测内存管理问题。 |
| cachegrind | 通过模拟级别 1 指令缓存(I1)、级别 1 数据缓存(D1)和统一级别 2 缓存(L2)来识别缓存丢失的来源。 |
| Callgrind | 生成代表函数调用历史记录的调用图。 |
| Helgrind | 在多线程 C、C++ 和使用 POSIX 线程的 Fortran 程序中检测同步错误。 |
| DRD | 检测使用 POSIX 线程原语或任何基于这些 POSIX 线程原语构建的其他线程概念的多线程 C 和 C++ 程序中的错误。 |
| Massif | 监控堆和堆栈使用情况。 |
13.1. 安装 Valgrind 复制链接链接已复制到粘贴板!
在 Red Hat Developer Toolset 中,Valgrind 由 devtoolset-11-valgrind 软件包提供,并使用 devtoolset-11-perftools 自动安装。
有关如何将 Red Hat Developer Toolset 和相关软件包安装到您的系统的详情请参考 第 1.5 节 “安装 Red Hat Developer Toolset”。
请注意,如果您使用 Valgrind 与 GNU Debugger 结合使用,建议您使用 Red Hat Developer Toolset 中包含的 GDB 版本来确保所有功能都被完全支持。