【发布时间】:2011-11-26 15:14:25
【问题描述】:
我有以下 valgrind 输出:
==28099==
==28099== HEAP SUMMARY:
==28099== in use at exit: 0 bytes in 0 blocks
==28099== total heap usage: 131 allocs, 131 frees, 3,472 bytes allocated
==28099==
==28099== All heap blocks were freed -- no leaks are possible
==28099==
==28099== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4)
--28099--
--28099-- used_suppression: 2 dl-hack3-cond-1
--28099-- used_suppression: 2 glibc-2.5.x-on-SUSE-10.2-(PPC)-2a
==28099==
==28099== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4)
有 4 个抑制错误。虽然这里没有泄漏,但是在移植到另一个系统时会产生问题。
[编辑]
我也使用 valgrind -v 选项重新运行。但我没有发现任何错误。
==30287== Memcheck,内存错误检测器 ==30287== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==30287== 使用 Valgrind-3.6.0.SVN-Debian 和 LibVEX;使用 -h 重新运行以获取版权信息 ==30287== 命令:./EXECUTABLE1 test_input.txt ==30287== --30287-- Valgrind 选项: --30287----suppressions=/usr/lib/valgrind/debian-libc6-dbg.supp --30287---v --30287-- --gen-suppressions=all --30287-- --error-limit=no --30287-- /proc/version 的内容: --30287-- Linux 版本 2.6.38.3.2.amd64-smp(gcc 版本 4.4.5 (Debian 4.4.5-8))#1 SMP Wed Apr 20 17:36:19 CEST 2011 --30287-- Arch 和 hwcaps: AMD64, amd64-sse3-cx16 --30287-- 页面大小:当前 4096,最大支持 4096 --30287-- Valgrind 库目录:/usr/lib/valgrind --30287-- 从 /home/path/to/file(0x400000) 读取 syms --30287-- 从 /lib/ld-2.11.2.so (0x4000000) 读取符号 --30287-- 考虑 /lib/ld-2.11.2.so .. --30287-- .. CRC 不匹配(计算 cd91cee9 需要 11b4673c) --30287-- 考虑 /usr/lib/debug/lib/ld-2.11.2.so .. --30287-- .. CRC 有效 --30287-- 从 /usr/lib/valgrind/memcheck-amd64-linux (0x38000000) 读取 syms --30287-- 对象没有动态符号表 --30287-- 读取抑制文件:/usr/lib/valgrind/debian-libc6-dbg.supp --30287-- 读取抑制文件:/usr/lib/valgrind/default.supp --30287-- REDIR: 0x4016230 (strlen) 重定向到 0x380408a7 (vgPlain_amd64_linux_REDIR_FOR_strlen) --30287-- 从 /usr/lib/valgrind/vgpreload_core-amd64-linux.so (0x4a20000) 读取 syms --30287-- 从 /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so (0x4c21000) 读取 sym ==30287== 警告:新重定向与现有重定向冲突——忽略它 --30287-- 新:0x04016230 (strlen) R-> 0x04c25850 strlen --30287-- REDIR:0x40160a0(索引)重定向到 0x4c25460(索引) --30287-- REDIR: 0x4016120 (strcmp) 重定向到 0x4c25e30 (strcmp) --30287-- 从 /lib/libm-2.11.2.so (0x4e29000) 读取 sym --30287-- 考虑 /lib/libm-2.11.2.so .. --30287-- .. CRC 不匹配(计算 dd5c85df 需要 ccd85fcf) --30287-- 考虑 /usr/lib/debug/lib/libm-2.11.2.so .. --30287-- .. CRC 有效 --30287-- 从 /lib/libc-2.11.2.so (0x50ab000) 读取 sym --30287-- 考虑 /lib/libc-2.11.2.so .. --30287-- .. CRC 不匹配(计算 7d8e8f4f 想要 9b015f2c) --30287-- 考虑 /usr/lib/debug/lib/libc-2.11.2.so .. --30287-- .. CRC 有效 --30287-- REDIR: 0x5128600 (__GI_strrchr) 重定向到 0x4c25280 (__GI_strrchr) --30287-- REDIR: 0x51218c0 (malloc) 重定向到 0x4c24466 (malloc) --30287-- REDIR: 0x5128d00 (memchr) 重定向到 0x4c25ed0 (memchr) --30287-- REDIR: 0x512a750 (memcpy) 重定向到 0x4c25f00 (memcpy) --30287-- REDIR: 0x5126b10 (strlen) 重定向到 0x4a205ac (_vgnU_ifunc_wrapper) ==30287== 警告:新重定向与现有重定向冲突——忽略它 --30287-- 新:0x05126b40 (__GI_strlen) R-> 0x04c257f0 strlen --30287-- REDIR: 0x5126b40 (__GI_strlen) 重定向到 0x4c25810 (__GI_strlen) --30287-- REDIR: 0x512baf0 (__GI___rawmemchr) 重定向到 0x4c26ba0 (__GI___rawmemchr) --30287-- REDIR:0x51217e0(免费)重定向到 0x4c24076(免费) 以下是存在的键及其对应的值 --30287-- REDIR: 0x512bb40 (strchrnul) 重定向到 0x4c26b50 (strchrnul)
【问题讨论】:
标签: c memory memory-management memory-leaks valgrind