valgrind 的简单使用

valgrind 不能用简单的重定向,它自己有它自己的日记输出……
valgrind --tool=memcheck --leak-check=yes --show-reachable=yes
其中 tool 的类型有:
memcheck:检查动态内存的使用
cachegrind:分析系统 cache 的使用
callgrind:类似于 gprof(需要-pg编译参数)

重定向日志:
默认是stderr
--log-fd=fd_num
–指定打印到某个文件描述符
--log-file=filename
–打印到文件,推荐该方法
--log-socket=192.168.0.1:12345
–可以重定向到socket中

valgrind --tool=memcheck --leak-check=full --show-reachable=yes --log-file=result ./ufo

still reachable:指针指向的动态内存还没有被释放就退出了……
definitely lost:检测到内存一定泄漏了,这类错误一定要处理。
possibly lost:可能有泄漏,一般都是中间有二级指针分配的情况会报错。
suppressed:统计了使用valgrind的某些参数取消了的错误。

Invalid write of size 4    ==> 数组越界

你可能感兴趣的:(linux,valgrind)