Valgrind memcheck 在完成之前一直在死亡

Valgrind memcheck keeps dying before it finishes

当 运行ning valgrind memcheck 时,它一直死掉并终止进程,输出如下:

valgrind: m_oset.c:156 (elem_of_node): Assertion 'n->magic == OSET_MAGIC' failed.
valgrind: bad magic on node 0x1574B69EE0 = ffffdddd (expected 5b1f)
possible causes:
 - node metadata corrupted by overwriting end of element?

我将此解释为 valgrind 停止,因为它的一个内部数据结构似乎由于断言失败而损坏。不过,我不明白为什么会这样。它在我的环境中似乎有点可重复。确切的节点地址每个 运行 都不同,但它总是大致围绕相同的地址(另一个 运行 显示 0x1573C405E0)。这是否表示 RAM 不好、我的软件中存在内存损坏错误、valgrind 中的错误或其他原因?

如果有帮助,我运行宁以下:

valgrind --tool=memcheck --gen-suppressions=all --leak-check=full --show-leak-kinds=all --leak-resolution=med --track-origins=yes --vgdb=no [my_application]

我过去使用过 valgrind memcheck 而没有 运行 遇到这样的问题,我不确定这里发生了什么。

根据我最初问题的第 5 条评论,这似乎与 valgrind 宏有关,至少可以通过间隔宏调用以在崩溃前提供更多处理时间来解决。迁移到较新的版本也可能有所帮助,但未知且目前不适合我。