Valgrind 是一个检测内存错误的调试工具,经常会报告“Conditional Jump or Move Depends on Uninitialized Value(s)”跳转或移动取决于未初始化的值”消息。此消息表明某个值在用于条件跳转或移动操作之前尚未初始化。
但是,valgrind有时只显示使用未初始化值的位置,而不显示其来源。要解决此问题,请使用选项 --track-origins=yes。虽然它会减慢 valgrind 的处理速度,但它提供了有关值来源的附加信息。
valgrind 手册解释了可能不会发生报告使用未初始化的值后立即执行。相反,当程序尝试以可能影响其可见行为的方式利用该值时,就会发生这种情况。
根据 Valgrind 常见问题解答,由于错误率很高,目前不支持急切报告未初始化的值由合法复制未初始化值引起的正值。
以上是为什么 Valgrind 报告'条件跳转或移动取决于未初始化的值”以及如何跟踪原点?的详细内容。更多信息请关注PHP中文网其他相关文章!