valgrind报告以下代码的错误
void test(const std::vector<string> &strvec) {
string val;
if (strvec.size() > 0) {
val = strvec.front(); // use of uninitialized value of size 8
}
}
很抱歉,我无法发布完整的代码,因为它取决于很多其他事情。这只是一个简单的代码片段。
由于valgrind没有报告任何有关size()检查的错误,所以我认为 我应该能够得到它的前线。但我不明白为什么它抱怨访问未初始化的值。
答案 0 :(得分:0)
我发现了问题。
实际上,当任何操作依赖于因访问未定义变量而导致的先前跳转时,它会为这些操作报告相同的错误。
在我的情况下,这个错误取决于远离这里的if-check,但代码路径确实取决于那个。
valgrind是否可以选择报告&root-cause&#39;?