valgrind检测内存泄漏

时间:2021-03-29 15:17:47

Valgrind 使用


用法:valgrind [options] prog-and-args 

[options]: 常用选项,适用于所有Valgrind工具

-tool=<name>最常用的选项。运行valgrind中名为toolname的工具。默认memcheck。
h -help 显示帮助信息。
-version 显示valgrind内核的版本,每个工具都有各自的版本。
q -quiet 安静地运行,只打印错误信息。
v -verbose 更详细的信息,增加错误数统计。
-trace-children=no|yes 跟踪子线程?[no]
-track-fds=no|yes 跟踪打开的文件描述?[no]
-time-stamp=no|yes 增加时间戳到LOG信息?[no]
-log-fd=<number> 输出LOG到描述符文件[2=stderr]
-log-file=<file> 将输出的信息写入到filename.PID的文件里,PID是运行程序的进行ID
-log-file-exactly=<file> 输出LOG信息到file
-log-file-qualifier=<VAR> 取得环境变量的值来做为输出信息的文件名。[none]
-log-socket=ipaddr:port 输出LOG到socket,ipaddr:port

LOG信息输出

-xml=yes 将信息以xml格式输出,只有memcheck可用
-num-callers=<number> show <number> callers in stack traces [12]
-error-limit=no|yes 如果太多错误,则停止显示新错误?[yes]
-error-exitcode=<number> 如果发现错误则返回错误代码[0=disable]
-db-attach=no|yes 当出现错误,valgrind会自动启动调试器gdb。[no]
-db-command=<command> 启动调试器的命令行选项[gdb-nw %f %p]


适用于Memcheck工具的相关选项:

-leak-check=no|summary|full要求对leak给出详细信息? [summary]
-leak-resolution=low|med|high how much bt merging in leak check [low]
-show-reachable=no|yes show reachable blocks in leak check? [no]

 

常用命令

Valgrind –tool=memcheck –leak-check=yes ./mx

Valgrind –leak-check=full ./mx

valgrind--tool=memcheck --leak-check=yes ./mx


from : http://blog.csdn.net/hust_wusen/article/details/8776002