valgrind相关内容
我正在尝试在我正在开发的程序上使用 Valgrind,但 Valgrind 为我正在使用的一个库生成了一堆错误.我希望能够告诉它抑制涉及该库的所有错误.我可以为抑制文件提出的最接近的规则是 {规则名称内存检查:条件...obj:/path/to/library/thelibrary.so} 然而,这并不能完全完成工作.我必须为出现的每种抑制类型(Cond、Value4、Param 等)创建其中
..
嗨,有人可以解释一下这个 valgrind 输出的含义以及我应该如何解决这个问题吗??我目前发布的输出是实际终端输出的一部分.其余的也类似,并且列出了大部分相同的错误. 这是用于使用 SDL2 的 C++ 程序. 相关代码真的很长,所以我会在评论中添加任何要求. 这是由于某些 SDL_Surface* 导致的吗?但我确保在从 main() 返回之前释放所有这些.另外,我的 SDL
..
我正在尝试按照 这篇博文使用 Valgrind 检测 Rust 程序中的内存泄漏.我的源代码很简单: #![feature(alloc_system)]extern crate alloc_system;使用 std::mem;fn分配(){让 bad_vec = vec![0u8;1024*1024];内存::忘记(bad_vec);}fn 主(){分配();} 我希望对 mem::forg
..
在使用 Valgrind 工具时,我需要记录 valgrind 工具生成的详细信息.我怎样才能做到这一点?我试过类似的东西, valgrind a.out |测试 和 valgrind a.out >测试 它只给出了程序的输出,而不是 valgrind 内存错误、泄漏信息.如果程序不需要用户交互(即提供输入),即使我也会这样.如果程序需要用户输入,即使那件事本身也不起作用. 我该
..
我正在使用 valgrind/callgrind 来分析我的服务器代码以进行一些优化.callgrind 向我报告的两个最常用的调用(使用 kcachegrind 查看)是 _dl_lookup_symbol_x 和 do_lookup_x.但是我不知道这些是什么,似乎找不到任何关于它们的文档. 谁能告诉我这两个函数在哪里使用以及它们是做什么的? 解决方案 _dl_lookup_sy
..
我想用 valgrind 做一些分析,因为它不需要重新构建程序.(我想分析的程序已经用“-g"构建了) 但是 valgrind(callgrind) 很慢……所以我要做的是: 启动服务器(我想分析该服务器) 某种附加到该服务器 在我对服务器进行一些操作之前,开始收集配置文件数据 操作完成后,结束收集个人资料数据 分析分析数据. 我可以在 Solaris 上使用 sun s
..
除了 KCacheGrind 之外,还有其他工具可以查看 callgrind 结果吗?最好是 Windows 平台? 解决方案 alleyoop 和 valkyrie(断开的链接) 是替代前端. 可能有足够的支持来满足您的需求,如果 SUA 开箱即用,您可以使用 mingw 为 Windows 本机编译.
..
通过 valgrind 启动程序后,我收到以下消息: ==9290== 条件跳转或移动取决于未初始化的值==9290== 在 0x4E82A03:vfprintf (vfprintf.c:1661)==9290== by 0x4EA9578: vsnprintf (vsnprintf.c:119)==9290== 由 0x4E8B531:snprintf (snprintf.c:33)==929
..
问题 我正在编写一个围绕面向对象的 C 库的瘦 C++ 包装器.这个想法是自动化内存管理,但到目前为止还不是很自动化.基本上,当我使用我的包装类时,我会遇到各种内存访问和不适当的释放问题. C 库的最小例子 假设 C 库由 A 和 B 类组成,每个类都有一些与之关联的“方法": #include #include “cstring"#include “iostream"外部“C
..
代码: //g++ -std=c++17 -O0 -g -Wall -Wextra -lOpenCL query.cpp -o query//valgrind --leak-check=full --track-origins=yes --tool=memcheck ./query N#include #include #include #include #include #include 使用
..
我针对 Valgrind 运行的 mips32 应用程序在 mmap 函数中失败.如果我单独运行它可以正常工作,但是当我针对 valgrind 运行它时,它每次都以 EINVAL 失败. void * mem = (uint32_t *)mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, ,mmap_size); 解决方案 当客户端应用
..
所以我有一个 Country.c 文件,其中包含: typedef struct City* pCity;typedef struct Country* pCountry;typedef struct Territory* pTerritory;结构城市{字符*名称;炭*食物;国际人口;};结构国家{字符 *名称;int numCities;p城市;pTerritory countryTerr;
..
当使用 --leak-check=full 运行 valgrind 时,生成的报告包含有关“可能丢失"的内存的信息. valgrind 手册中有一些关于此的信息,以及一些示例报告. http://valgrind.org/docs/manual/mc-manual.html 泄漏摘要:绝对丢失:1 个块中的 4 个字节间接丢失:0 个块中的 0 个字节可能丢失:0 个块中的 0 个字
..
我正在学习 pthreads 编程. 我了解到线程有两种状态:1. 可连接2. 可拆卸 Joinable 的情况下,需要调用 pthread_join 来释放资源(栈),而 detached 的情况下不需要调用 pthread_join,资源会在线程退出时释放. 我写了一个示例程序来观察行为 #include #include #include void *threadFn(v
..
我正在尝试使用 valgrind 避免误报,但我对 atexit() 和 fork() 的组合感到很糟糕,尽管使用了 --trace-children=yes.我的代码: #include #include #include 静态 int * arr;静态无效清理(){免费(arr);printf("空闲 arr 为:%p\n", (void *)arr);}int main(){arr = m
..
我有这个基本的 Hello World 代码: #include int main() {printf("Hello World!");返回 0;} 然后 valgrind 返回给我这个摘要: 堆摘要: ==17840== 退出时正在使用:160 个块中有 22,114 个字节 ==17840== 总堆使用量:176 次分配,16 次释放,已分配 28,258 字节 ==17840
..
关于统一值和条件跳转,我遇到了一些Valgrind错误.这是我的Valgrind输出 == 28124 ==条件跳转或移动取决于未初始化的值== 28124 ==在0x4C2E0E9:strlen(在/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)== 28124 ==通过0x400AA7:append_character(在/home/
..
我现在正在安装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'
..
我一直在试图理解为什么valgrind对于使用ucontexts的小型测试程序抱怨“使用大小为8的未初始化值".它基本上是一个程序,它创建"n_ucs" ucontext,并在"max_switch"时间内切换它们. 我了解“警告:客户端切换堆栈?"(这基本上是程序的全部内容),但是对于所有“使用大小为8的未初始化值"来说,我都没有任何意义 如果Valgrind错误为假阳性,或者该程序
..
我已经阅读了有关此参数的文档,但是区别确实很大!启用后,一个简单程序的内存使用量(请参见下文)约为 7 GB ;禁用该程序时,报告的使用量约为 160 KB . top 也显示了大约7 GB,这可以通过 pages-as-heap = yes 来确认. (我有一个理论,但我不认为这可以解释如此巨大的差异,所以-寻求帮助). 令我特别困扰的是,大多数报告的内存使用情况都是由 std
..