Valgrind内存错误检测工具使用
基本用法
假设你有一个可执行程序 ./my_program,可以这样运行 Valgrind:
Bash
valgrind --tool=memcheck --leak-check=full ./my_program
常用选项说明:
选项 说明
--tool=memcheck 使用 Memcheck 工具(默认)
--leak-check=full 显示每个泄漏的详细信息
--show-leak-kinds=all 显示所有类型的内存泄漏(definitely, indirectly, possibly, reachable)
--track-origins=yes 跟踪未初始化值的来源(会降低性能)
--log-file=valgrind.out 将输出写入文件
完整示例:
Bash
valgrind
--tool=memcheck
--leak-check=full
--show-leak-kinds=all
--track-origins=yes
--log-file=valgrind.log
./my_program arg1 arg2
确保编译时包含调试符号:
Bash
gcc -g -O0 -Wall -Wextra -o my_program my_program.c
-g:生成调试信息(让 Valgrind 显示源码行号)
-O0:关闭优化(避免编译器优化干扰内存分析)
浙公网安备 33010602011771号