valgrind:使用来自 std::string::asassign 的单位化值
valgrind: Use of unitialized value from std::string::assign
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() 检查的错误,所以我认为我应该能够得到它的前面。但我不明白为什么它抱怨访问未初始化的值。
我发现了问题。
就 https://blog.mozilla.org/nnethercote/2009/02/27/eliminating-undefined-values-with-valgrind-the-easy-way/
实际上,当任何操作依赖于由访问未定义的变量引起的早期跳转时,它会为这些操作报告相同的错误。
就我而言,此错误取决于远离此处的 if-check,但代码路径确实取决于该检查。
瓦尔格林德可以选择报告"根本原因"吗?
相关文章:
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- RcppEigen 模板化函数,用于填充单位法线
- 如何有效地计算将单位立方体映射到自身的反射和旋转?
- 以天C++为单位的两个时间戳之间的差异
- 如何以毫秒为单位获取开始时间和 now() 之间的毫秒差异(以 C++为单位?
- 从原始字节解码协议缓冲区(以 C++为单位)
- ANTLR - 如何从维度扩展单位
- 如何在 c++ 中确定一条指令(以字节为单位)在哪里结束,另一条指令从哪里开始?
- 编写以 C++ 为单位返回值的函数
- 纹理单位重叠?渲染了错误的纹理
- Cuda:具有位集数组的 XOR 单位集
- 以C++为单位进行运行长度编码
- 如何找到两个日期之间的时间差异(以秒和纳秒为单位)?
- arr[n] 是否以 C++ 为单位打印数组的长度?
- 字符串数组上的 sizeof 运算符以 C++ 为单位给出不同的输出
- 以 C++ 为单位具有输出限制的排列
- 以 GDB 为单位指定浮点精度
- 整数数据如何以位为单位存储在内存中?不是右对齐吗?
- 如何在没有硬编码的情况下以C++为单位获取类数组的长度?
- valgrind:使用来自 std::string::asassign 的单位化值