加载中…
个人资料
Yode
Yode
  • 博客等级:
  • 博客积分:0
  • 博客访问:592,114
  • 关注人气:250
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

valgrind

(2010-06-25 18:23:42)
标签:

it

分类: java

valgrind --tool=memcheck --leak-check=full  --show-reachable=yes -v ./docParser sample.doc

Memcheck 工具主要检查下面的程序错误:

  • 使用未初始化的内存 (Use of uninitialised memory)
  • 使用已经释放了的内存 (Reading/writing memory after it has been free’d)
  • 使用超过 malloc分配的内存空间(Reading/writing off the end of malloc’d blocks)
  • 对堆栈的非法访问 (Reading/writing inappropriate areas on the stack)
  • 申请的空间是否有释放 (Memory leaks – where pointers to malloc’d blocks are lost forever)
  • malloc/free/new/delete申请和释放内存的匹配(Mismatched use of malloc/new/new [] vs free/delete/delete [])
  • src和dst的重叠(Overlapping src and dst pointers in memcpy() and related functions)

下面是常用的错误输出信息

Conditional jump or move depends on uninitialised value(s)
诊断信息A 程序行为可能与策略预期不一致,请仔细核查!
诊断信息B XXXgz导致的警告,主要是因为机器字节对齐填充了没有初始值的数据导致!
对应两个警告信息,如果是调用XXX_gzip引出的警告,则输出信息B,否则信息A。

Warning: set address range perms: large range
诊断信息 此警告可忽略!
只对应一条信息。

Syscall param *(buf) points to uninitialised byte(s)
诊断信息 请确认此系统函数所使用的参数是否需要初始化!
只对应一条信息。

Invalid read of size *
诊断信息 读取无效内存地址错误!
只对应一条信息。

Process terminating with default action of signal (): dumping core
诊断信息 程序执行期间出core!
只对应一条信息。

Use of uninitialised value of size
诊断信息 请确认此内存地址不需要初始化!
只对应一条信息。

* bytes in * blocks are possibly lost in loss record * of *
诊断信息A 内存可能存在泄露!
诊断信息B glibc内部的内存泄露的问题,可以忽略!
对应两条信息,如果发现valgrind警告的调用堆栈出现pthread_creat则返回信息B,否则返回信息A。

(* direct, * indirect) bytes in * blocks are definitely lost in loss record * of *
诊断信息 内存泄露错误!
只对应一条信息。

Invalid write of size
诊断信息 写入无效内存地址错误!
只对应一条信息。

Mismatched free() / delete / delete[]
诊断信息 请确保malloc的内存用free释放,new的内存用delete释放!
只对应一条信息。

Source and destination overlap in cpy(, *)
诊断信息A 致命错误,程序行为不符合策略预期!
诊断信息B 行为未定义,完全依赖glibc的实现,不具有可移植性!
对应两条信息,如果复制的源地址小于目的地址则返回信息A,否则返回信息B。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有