java valgrind_valgrind

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值