valgrind-false-positive
tl; dr:对Valgrind假阳性导致修复的深入研究。
介绍
我维护 ,这是我很久以前从原始作者那里接手的程序。 它需要一个,这是保存PCB设计的一种正常方法,并将其转换为3D打印机或CNC铣床的铣削指令。
3天前,PR测试失败,并显示Valgrind错误。 错误提示:
==28297== Conditional jump or move depends on uninitialised value(s)
这意味着Valgrind已检测到我试图为分支使用值。 就像我写过这样的话:
int x; // Left uninitialized
if (x > 5 ) { do_it (); }
Valgrind认为我做了类似的事情,所以让我知道我的程序将具有不可预测的行为。 因此,我回到了上一次成功的CI运行,并且:
失败了
它只