valgrind

strcpy 的 valgrind 错误:大小为 1 的无效读取

我收到以下错误: Invalid read of size 1 at 0x4008F4: isNameValid (elections.c:76) 似乎错误是由strcpy 函数引起的。 但是我不知道为什么会出错,因为没有它我的代码将无法正常运行。那么我该如何解决呢? 一个最小的例子 bool isNameValid(const char *tribe_name) { char ... »

c

核心转储到 C 程序中

我对 C 编程相当老了(尽管我已经很多年没有用 C 编程了)但我现在完全被困住了。我有两个源文件: main.c #include <stdio.h> #include "inputFunction.h" int main(int argc, char** argv) { char *invoiceFile=NULL, *inputFile=NULL, *configFi... »

c

我是否正确加载了我的字符数组?

我已经盯着这个看了很久,它开始一起运行了。 所以我得到了一个 valgrind 错误: ==25468== Invalid write of size 4 ==25468== at 0x52CF64D: _IO_vfscanf (vfscanf.c:1857) ==25468== by 0x52D730A: __isoc99_fscanf (isoc99_fscanf.c:35) =... »

c

C - 在 strcpy/strlen 时,Valgrind 出现“大小为 1 的无效读/写”错误

我遇到了 seg.faults 的问题。该程序运行良好,但对于少数未知字符串会导致分段错误。我用 Valgrind 运行程序,它报告“大小为 1 的无效读/写”,主要是问题与 strcpy 和 strlen 有关。 ==5623== ERROR SUMMARY: 12 errors from 4 contexts (suppressed: 2 from 2) ==5623== ==5623=... »

c

关闭管道时收到双重免费或损坏(顶部)?

所以我有一个使用管道打开的 n 个流的数组,但是使用 gdb,我发现当我尝试关闭流或管道的写入端时程序失败。我可以很好地写入管道,但关闭它们不起作用。我在程序上运行了 valgrind,它所做的只是打印出来 ==4241== Warning: invalid file descriptor -1 in syscall read() 一遍又一遍。这是有问题的代码和错误输出。如果需要更多信息,... »

c++

Valgrind 未检测到全局指针中的泄漏

我在下面的代码上运行valgrind --leak-check=full test.cpp #include <iostream> int* p = new int[42]; // no leak reported int main() { p[0] = 42; // use it std::cout << p[0]; } 并且没有报告泄漏: ... »

c++

在循环双向链表中释放内存

valgrind 告诉我,我在 XX 个块中有 XX 个字节肯定丢失了记录等等。 并且源代码在 malloc 中,但是,我认为这是因为我没有为 malloc 释放足够的内存。无论如何,我已经提供了我认为导致堆错误的代码。 我知道我没有释放 list_remove 中的内存,我很确定这是问题的唯一来源。它可能需要一些临时的转变,但我不知道这是否是唯一的问题。 list_t *list_rem... »

c

使用 pthreads 的简单老板-工人模型

我是一名业余程序员,正在尝试使用 pthreads,看看多线程程序可以在多大程度上提高我正在处理的相当长的计算的效率。计算通过一个 std::list< string > 对象运行,弹出列表的第一个元素,并将其分配给一个线程,用它计算一些东西。该程序跟踪活动线程,并确保始终有一定数量的活动线程在运行。一旦列表为空,程序对结果数据进行排序,转储数据文件并终止。 程序的多线程版本目前不工作。它在列... »

将 valgrind 与 `R CMD check` 一起使用

我想在我的包的测试、示例和小插曲上运行 valgrind。各种消息来源暗示这样做的方法应该是: R CMD build my-pkg R CMD check --use-valgrind my-pkg_0.0.tar.gz R CMD check 似乎运行良好,但没有显示 valgrind 输出的证据,即使在设置环境变量 VALGRIND_OPTS: --memcheck:leak-check=... »

无法为 ARM 交叉编译 Valgrind

google 上有很多和我类似的问题,我都试过了,但没有一个有效,所以我必须发布这个问题。 我正在尝试使用 Valgrind 检测一些二进制文件的内存泄漏,这些文件是为我的设备编译的(使用处理器:ARM926EJ-S rev 5 (v5l))。 因此,我正在尝试使用我设备的特定工具链交叉编译 Valgrind。 这是我的过程: 我正在使用 Valgrind 3.13.0 和 Ubuntu 1... »

如何在 valgrind 进程运行时旋转 valgrind 日志

当 valgrind 进程作为 valgrind 日志运行时,我如何在我的 linux 系统上轮换 valgrind 日志,因为当 valgrind 日志大于 2 GB 时,它会停止记录,它必须终止 valgrind 进程,清理日志,然后重新启动 valgrind 进程。我的意思是动态清理日志。如果我清理日志,下一刻它会在 valgrind 运行时再次填充到原始日志。 请注意:我的进程在新连接上... »

valgrind memcheck 条件跳转将其追溯到 brk 和 sbrk 函数

我一直在寻找与我类似的帖子,但没有成功。我正在使用的代码到目前为止似乎是确定性的,并且到目前为止可以正常工作。但是,当在其上运行 Valgrind memcheck 时,我会收到数千条警告,这些警告都涉及“条件跳转或移动取决于未初始化的值”。 跟踪错误时,valgrind 将其追溯到 brk 和 sbrk 函数。我不明白为什么会这样?,更重要的是如何解决它?下面是我的部分代码。 navS... »

c

Valgrind 丢失错误

(原帖是here) 考虑以下明显有缺陷的程序: #include &lt;string.h&gt; int main() { char string1[10] = "123456789"; char *string2 = "123456789"; strcat(string1, string2); } 并假设编译它: gcc program.c -ggdb 并在其上运... »

c

使用 free() 和 realloc() 的错误

我写了一小段代码。我正在使用 void * 指针来为 C 的基本数据类型创建一个交换函数。我写了这个函数的两个版本,因为字符串与其他基本数据类型有点不同(但也许我错了) . 该函数的 int、float 和 char 版本可以正常工作,但是当我尝试将其用于字符串时,Valgrind 报告了多个错误。以下是主要内容: int main(){ int dimA=0,dimB=0; char *... »

c

Valgrind“条件跳转或移动取决于未初始化的值”错误

我在 valgrind 说“条件跳转或移动取决于未初始化的值”时遇到很多错误。 下面是其中一个块。它们都是相似的: vasm_sourceline_info_t* line = asmState-&gt;firstLine; if (line == NULL) return; while ((line = line-&gt;next) != NULL) { printf ("[%s(%i... »

c

如何配置共享内存?

我有一个峰值内存使用量为 66MB 的程序,我正在尝试使用 Valgrind Massif 对其进行分析。不幸的是,Massif 仅显示 800KB 的峰值内存使用量。另一方面,top 告诉我 65MB 是共享内存。是否可以在 Linux 中分析程序的共享内存使用情况? ... »

c++

valgrind memcheck 报告误报?

这是我的代码。 #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; char buf1[100]; char buf2[100]; int main() { char **p = (char**)(buf1+sizeof(long)); char **q = (char**)... »

Valgrind memcheck 大小为 1 的无效读取

这个例子可以按预期编译和工作。 1 #include &lt;stdlib.h&gt; 2 #include &lt;stdio.h&gt; 3 #include &lt;string.h&gt; 4 5 char * getstr() { 6 return strdup("Hello"); 7 } 8 9 void *memcpy2(void *dest, const void... »

c

递归结构的向量存在内存问题

我完全被一段与内存行为不端的简单代码所困扰(正如 Valgrind 所报告的那样)。我将其简化为这个简短的测试用例: #include &lt;vector&gt; struct el { el * next = nullptr; }; class list { public: list(): tail(nullptr) {} void push_back() ... »

c++