valgrind相关内容
首先,我知道有人问过类似的问题.但是,我想对真正原始的C数据类型有一个更一般的简单问题.所以就在这里. 在 main.c 中,我调用一个函数来填充这些字符串: intmain(int argc,char * argv []){char * host = NULL;char *数据库;字符* collection_name;char * filename =“";char * fields
..
我正在实现一个具有remove_entry函数和clear_table函数的哈希表.现在,我收到与remove_entry函数有关的内存读取错误.并非常感谢您的帮助 这些是我的结构: typedef struct bucket {字符* key;无效*值;struct bucket *下一步;} 桶;typedef struct {int key_count;int table_size
..
我试图在C语言中创建一个简单的单链接列表,并且在Valgrind中运行程序时遇到无限的"Singal 11正在被删除"循环. 我的.h文件: #ifndef TEST_H#定义TEST_H构造水果{字符名称[20];};结构节点{构造水果*数据;struct节点* next;};结构清单{struct node *标头;无符号数;};#万一 我的.c文件: #include"te
..
我无法通过Homebrew在macOS Big Sur上安装Valgrind.在终端机中,我尝试过 $ brew install valgrind Homebrew的自动更新后,我收到以下消息: valgrind:该软件需要Linux.错误:无法满足的要求导致此构建失败. 是否可以安装Valgrind? 解决方案 大致上,您仅希望是
..
我有一个程序意外使用大量堆(大约3GB).我通过valgrind memcheck进行了测试,该报告没有泄漏,声称所有堆内存仍然可以访问. 因此,我使用调试选项重建了所有库,并通过valgrind massif运行了编.我使用的是Valgrind-3.8.1,我今天下载并在盒子上构建了它.命令行是: valgrind --tool = massif myprog Valgrind没有
..
我对我的一个开源OpenCL代码运行了 valgrind ( https://github.com/fangq/mmc ),并且在都已正确发布,但是仍然在对示例程序进行测试时,每次调用 我将针对如何使用NVIDIA OpenCL减少这种内存泄漏提出一个新的问题和悬赏.如果您有任何经验,请分享.将发布以下链接.谢谢 解决方案 我仔细检查了我所有的OpenCL变量,命令队列,内核和程
..
我有一个std :: map,它通过一些API调用进行了初始化.当我尝试使用此地图时,出现分段错误.如何检测无效的代码或无效的内容或可以帮助我解决问题的任何详细信息?代码如下: std :: map续some_func(cont);//通过引用获取参数并对其进行初始化,此函数内部
..
考虑以下代码 int main(){返回0;} 我用g ++编译了它,并将输出传递给valgrind.输出如下. == 11752 ==堆摘要:== 11752 ==正在出口使用:1块中的72,704字节== 11752 ==总堆使用量:1个分配,0个释放,72,704字节分配== 11752 ==== 11965 ==泄漏摘要:== 11965 ==绝对丢失:0字节,共0块== 11
..
我有一个程序,该程序的峰值内存使用量为66MB,我正在尝试使用Valgrind Massif进行分析.不幸的是,Massif仅显示了800KB的峰值内存使用量.另一方面,top告诉我65MB是共享内存.可以在Linux中分析程序的共享内存使用情况吗? 解决方案 至少对于Valgrind 3.7.0,您可以使用以下选项来提供所需的信息:--pages-as-heap = no |是页面级别的
..
我写了一小段这样的代码: 模板空白测试(){T * ptr = nullptr;ptr =(T *)malloc(1 * sizeof(T));新的((void *)ptr)T(T());ptr =(T *)realloc(ptr,2 * sizeof(T));new((void *)(ptr + 1))T(T());(ptr)->〜T();(ptr +1)->〜T();fr
..
我一直在使用valgrind和gdb,但我不太清楚问题出在哪里.对于我而言,要想在gdb中真正找到它,它跳得太多了,而在valgrind中,我没有足够的信息.这是我的makeargv函数,该函数将从strtok()输出的字符串放入数组中.从下面的解析函数中调用makeargv.我不确定我要去哪里.我非常感谢您的帮助:D. 仅供参考,我真的对所有这些分配都是陌生的,并且并没有真正理解我想要的概
..
我有一个关于从堆内存中删除数组的问题.在书中和此博客和其他资源中,例如一个,我读到要从堆中删除数组,必须在 delete 关键字后使用 [] ,这样,如果我们不使用[] 我们将有泄漏内存. 例如,考虑下面的代码. //构造数组int * s = new int [10];//从堆中删除数组删除[]秒; 我使用 valgrind 包在Linux上测试了这个小程序,以检查由于错误编码导致的
..
我想检测 (以及其他一些调用,但是这对我来说是最重要的),以给定的二进制文件(最好在实际的syscall/sysenter级别(x86-64和x86)上)制作 sys_brk 调用). 主要目标: 沙盒的一部分,可将固定数量的内存提供给入狱的进程 因此,我想摆脱 如何实施(一种)示例解决方案(或您的解决方案): 只需将说明更改为 NOP 由于brk成功返回0,请使用设置内存
..
我在某些代码上运行了valgrind,如下所示: valgrind --tool=memcheck --leak-check=full --track-origins=yes ./test 它返回以下错误: ==24860== Conditional jump or move depends on uninitialised value(s) ==24860== at 0x4
..
我有一个简单的矩阵类,可以与opengl一起使用(es 2.0,afaik没有针对该特定版本的opengl的任何内置版本). 基本上,它只是一个向量,该向量的大小已调整为在构造函数中包含16个浮点数(我为它具有的=运算符选择了一个仅在16个浮点数数组上的向量),以及一些对opengl的上下文.无论如何,这些便利结构之一将身份矩阵加载到向量中,它是: void Matrix::loadI
..
我需要为我的应用创建动态调用图.我使用callgrind工具(valgrind套件)运行它,并获得了callgrind.out.xxxxx文件.现在,我想对此数据进行图形化表示. KCacheGrind对我没有多大帮助,因为它绘制了图形的有限部分(绘制了〜50个函数,而不是概要分析的〜1500个,我不知道如何解决).如何获得将绘制所有功能的图形图像? 解决方案 好的,我已经找到了方法.您可
..
Valgrind显示大小为8的错误的未初始化值. 偶尔,下面的条件跳转会导致未初始化的值错误. 我要做的就是使用gcc随附的stdc ++库打印格式化的字符串 以及内置的vsnprintf. 这位于称为format的方法内,该方法是自定义字符串类的一部分. 现在怎么办?一切看起来都正确.错误似乎在_itoa.c内部.但是我可以想到的是,在外面所做的就是不使用此功能,这不太可能!
..
当我编译下面的短代码(在其中定义一个字符串,然后使用strdup进行复制)时,我收到3条警告:2条来自GCC的编译器警告和1条来自valgrind的运行时警告/错误. 我怀疑内存泄漏错误(由valgrind报告)也与我对strdup的使用有关,这就是为什么要在下面包含相关输出. 我做错了什么? (我正在研究C书籍,这就是作者使用strdup的方式.) 代码: #includ
..
我正试图为文档的目的为服务器生成调用图. 不是用于任何类型的分析. 我使用以下命令生成了输出: sudo valgrind --tool=callgrind --dump-instr=yes /opt/ats-trunk/bin/traffic_server 并转换为: http://code.google.com/p/jrfonseca/Wiki/Gprof2Dot 转换为.do
..
我遇到了一个有趣的运行时错误.我认为这是某种内存泄漏.我编写了以下程序: C代码: #include #include #include #include #include #define PRECISION 4096 #define DECIMAL_POINT 1 #define
..