博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于valgrind的 “Conditional jump or move depends on uninitialised value(s)”
阅读量:6604 次
发布时间:2019-06-24

本文共 1257 字,大约阅读时间需要 4 分钟。

关于valgrind的 “Conditional jump or move depends on uninitialised value(s)”:
valgrind在报这个错误的时候程序未必有bug,如下例:
ExpandedBlockStart.gif
代码
//
test.cpp
#include 
<
iostream
>
using
 
namespace
 std;
bool
 ptr(
char
 
*
testptr)
{
        
int
 i
=
0
;
        
if
(i 
==
 
0
){
                memcpy(testptr,
"
Hello
"
,
5
);
                
return
 
true
;
        }
        
return
 
false
;
}
int
 main(
int
 argc, 
const
 
char
 
*
argv[])
{
        
char
 
*
=
 
new
 
char
 [
10
];
        
if
(ptr(p)){
                printf(
"
%s\n
"
,p);
        }
        delete [] p;
        
return
 
0
;
}

执行:
g++ test.cpp -Wall
valgrind --tool=memcheck --leak-check=full --show-reachable=yes ./a.out
就会报下面的错:
==8472==
==8472== Conditional jump or move depends on uninitialised value(s)
==8472==    at 0x4906507: strlen (mac_replace_strmem.c:243)
==8472==    by 0x3D26142A0A: vfprintf (in /lib64/tls/libc-2.3.4.so)
==8472==    by 0x3D26148157: printf (in /lib64/tls/libc-2.3.4.so)
==8472==    by 0x4009A6: main (in /home/maoqi/private/cpp/a.out)
Hello
==8472==
==8472== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 5 from 2)
==8472== malloc/free: in use at exit: 0 bytes in 0 blocks.
==8472== malloc/free: 1 allocs, 1 frees, 10 bytes allocated.
==8472== For counts of detected errors, rerun with: -v
==8472== All heap blocks were freed -- no leaks are possible.

因此在遇到这种错误的时候需要仔细分析。

 

 

转载于:https://www.cnblogs.com/FrankTan/archive/2010/01/08/1642569.html

你可能感兴趣的文章
Hibernate 分组查询 子查询 原生SQL
查看>>
软件工程_第二次作业
查看>>
有关vue的一点点收获
查看>>
数据结构之栈与队列
查看>>
centos常用网络管理命令
查看>>
mysql主从配置(基于mysql5.5.x)
查看>>
mysql表时间戳字段设置
查看>>
如何将本地vue项目上传到github
查看>>
极验验证码示例
查看>>
# 基于Gitolite搭建Git Server - 支持SSH&HTTP
查看>>
C# DllImport的用法
查看>>
Flask 中command的使用
查看>>
Java SVN检出项目出现报错,Expected value at 1:0 Expected value at 2:0 Expected value at xx:xx错误的解决,实测解决...
查看>>
业务侧有大量timeout请求超时日志
查看>>
openwrt makefile选项
查看>>
JavaScript常用编程问题记录
查看>>
前端知识总结-2018上篇
查看>>
Ext Js简单常用对象的创建使用
查看>>
ARR2.5 配置反向代理
查看>>
hdfs的FileSystem实例化
查看>>