valgrind相关内容

你如何告诉 Valgrind 完全禁止一个特定的 .so 文件?

我正在尝试在我正在开发的程序上使用 Valgrind,但 Valgrind 为我正在使用的一个库生成了一堆错误.我希望能够告诉它抑制涉及该库的所有错误.我可以为抑制文件提出的最接近的规则是 {规则名称内存检查:条件...obj:/path/to/library/thelibrary.so} 然而,这并不能完全完成工作.我必须为出现的每种抑制类型(Cond、Value4、Param 等)创建其中 ..
发布时间:2021-07-23 20:17:33 其他开发

解释 C++/SDL2 程序的 valgrind 输出

嗨,有人可以解释一下这个 valgrind 输出的含义以及我应该如何解决这个问题吗??我目前发布的输出是实际终端输出的一部分.其余的也类似,并且列出了大部分相同的错误. 这是用于使用 SDL2 的 C++ 程序. 相关代码真的很长,所以我会在评论中添加任何要求. 这是由于某些 SDL_Surface* 导致的吗?但我确保在从 main() 返回之前释放所有这些.另外,我的 SDL ..
发布时间:2021-07-17 19:35:58 C/C++开发

如何将 Valgrind 的输出重定向到文件?

在使用 Valgrind 工具时,我需要记录 valgrind 工具生成的详细信息.我怎样才能做到这一点?我试过类似的东西, valgrind a.out |测试 和 valgrind a.out >测试 它只给出了程序的输出,而不是 valgrind 内存错误、泄漏信息.如果程序不需要用户交互(即提供输入),即使我也会这样.如果程序需要用户输入,即使那件事本身也不起作用. 我该 ..
发布时间:2021-07-05 19:39:10 其他开发

什么是 _dl_lookup_symbol_x ?- C++ 分析

我正在使用 valgrind/callgrind 来分析我的服务器代码以进行一些优化.callgrind 向我报告的两个最常用的调用(使用 kcachegrind 查看)是 _dl_lookup_symbol_x 和 do_lookup_x.但是我不知道这些是什么,似乎找不到任何关于它们的文档. 谁能告诉我这两个函数在哪里使用以及它们是做什么的? 解决方案 _dl_lookup_sy ..
发布时间:2021-06-21 20:19:13 C/C++开发

如何使用 callgrind 仅分析特定时间段的程序执行?

我想用 valgrind 做一些分析,因为它不需要重新构建程序.(我想分析的程序已经用“-g"构建了) 但是 valgrind(callgrind) 很慢……所以我要做的是: 启动服务器(我想分析该服务器) 某种附加到该服务器 在我对服务器进行一些操作之前,开始收集配置文件数据 操作完成后,结束收集个人资料数据 分析分析数据. 我可以在 Solaris 上使用 sun s ..
发布时间:2021-06-21 20:16:15 其他开发

如何解决由 C++ 包装器中的 C 对象之间的交互引起的与内存相关的错误?

问题 我正在编写一个围绕面向对象的 C 库的瘦 C++ 包装器.这个想法是自动化内存管理,但到目前为止还不是很自动化.基本上,当我使用我的包装类时,我会遇到各种内存访问和不适当的释放问题. C 库的最小例子 假设 C 库由 A 和 B 类组成,每个类都有一些与之关联的“方法": #include #include “cstring"#include “iostream"外部“C ..
发布时间:2021-06-18 20:02:07 C/C++开发

使用 Valgrind 运行时 mmap 返回 EINVAL

我针对 Valgrind 运行的 mips32 应用程序在 mmap 函数中失败.如果我单独运行它可以正常工作,但是当我针对 valgrind 运行它时,它每次都以 EINVAL 失败. void * mem = (uint32_t *)mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, ,mmap_size); 解决方案 当客户端应用 ..
发布时间:2021-06-03 18:31:40 其他开发

Valgrind 可能丢失了记忆

当使用 --leak-check=full 运行 valgrind 时,生成的报告包含有关“可能丢失"的内存的信息. valgrind 手册中有一些关于此的信息,以及一些示例报告. http://valgrind.org/docs/manual/mc-manual.html 泄漏摘要:绝对丢失:1 个块中的 4 个字节间接丢失:0 个块中的 0 个字节可能丢失:0 个块中的 0 个字 ..
发布时间:2021-06-02 19:50:17 其他开发

即使状态已分离,pthread 中的内存泄漏

我正在学习 pthreads 编程. 我了解到线程有两种状态:1. 可连接2. 可拆卸 Joinable 的情况下,需要调用 pthread_join 来释放资源(栈),而 detached 的情况下不需要调用 pthread_join,资源会在线程退出时释放. 我写了一个示例程序来观察行为 #include #include #include void *threadFn(v ..
发布时间:2021-06-02 19:49:51 服务器开发

我的 valgrind 安装坏了吗?

我有这个基本的 Hello World 代码: #include int main() {printf("Hello World!");返回 0;} 然后 valgrind 返回给我这个摘要: 堆摘要: ==17840== 退出时正在使用:160 个块中有 22,114 个字节 ==17840== 总堆使用量:176 次分配,16 次释放,已分配 28,258 字节 ==17840 ..
发布时间:2021-06-02 19:43:30 其他开发

Valgrind:未初始化的值是由堆分配创建的

关于统一值和条件跳转,我遇到了一些Valgrind错误.这是我的Valgrind输出 == 28124 ==条件跳转或移动取决于未初始化的值== 28124 ==在0x4C2E0E9:strlen(在/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)== 28124 ==通过0x400AA7:append_character(在/home/ ..
发布时间:2021-05-31 19:49:40 其他开发

如何正确安装valgrind?

我现在正在安装valgrind,直到执行"make install"命令为止.下一个命令"make regtest"输出下一个错误: ../../depcomp:第689行:exec:g ++:找不到make [5]:*** [leak_cpp_interior.o]错误127make [5]:离开目录`/home/kbubuntu/valgrind-3.9.0/memcheck/tests' ..
发布时间:2021-05-29 22:56:19 服务器开发

valgrind错误和ucontext.为什么“使用大小为8的未初始化值"?

我一直在试图理解为什么valgrind对于使用ucontexts的小型测试程序抱怨“使用大小为8的未初始化值".它基本上是一个程序,它创建"n_ucs" ucontext,并在"max_switch"时间内切换它们. 我了解“警告:客户端切换堆栈?"(这基本上是程序的全部内容),但是对于所有“使用大小为8的未初始化值"来说,我都没有任何意义 如果Valgrind错误为假阳性,或者该程序 ..
发布时间:2021-05-29 22:41:27 服务器开发

了解Linux虚拟内存:valgrind的massif输出显示了有和没有--pages-as-heap的主要区别

我已经阅读了有关此参数的文档,但是区别确实很大!启用后,一个简单程序的内存使用量(请参见下文)约为 7 GB ;禁用该程序时,报告的使用量约为 160 KB . top 也显示了大约7 GB,这可以通过 pages-as-heap = yes 来确认. (我有一个理论,但我不认为这可以解释如此巨大的差异,所以-寻求帮助). 令我特别困扰的是,大多数报告的内存使用情况都是由 std ..
发布时间:2021-05-29 22:39:57 服务器开发