gpt4 book ai didi

c - Valgrind 是否存在已知的误报问题?

转载 作者:太空狗 更新时间:2023-10-29 16:28:44 25 4
gpt4 key购买 nike

Valgrind 是否存在任何已知的误报?我使用 fmemopen 函数得到“条件跳转或移动取决于未初始化的值”,用 C 编写并使用 GCC 编译。我能确定它是真的吗?

编辑:是否存在不在禁止文件中的已知问题?在程序中是否可以做一些事情,这些事情并不是真正的错误,但 Valgrind 会说它们是错误?如果存在已知问题,最好有一个列表。

最佳答案

是的,Valgrind 存在误报,这就是为什么它有特定 glibc 和 gcc 版本的抑制文件,例如。如果您将较旧的 valgrind 与较新的 gcc 和 glibc 一起使用,即 valgrind 3.3 与 glibc 2.9,则可能会出现误报。

话虽如此,您仍然需要调查问题并确定它是否真的是误报(如果是这种情况,您可以自己编写抑制)或者它是否是真正的错误你的程序。

没有快速简便的方法来说明这里发生了什么,但在这种情况下,我怀疑您正在将未初始化的值从您的代码传递到库代码。尝试 Valgrind 选项 --track-origins=yes。它将显示未初始化值的来源。如果这是您的代码,您可能应该初始化它。如果它在库中,则可能是误报,或者仍然是库调用参数的错误值可能导致它,因此请检查这些。

关于c - Valgrind 是否存在已知的误报问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/796600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com