Glib程序使用Valgrind查找内存泄露
G_DEBUG=gc-friendly
G_SLICE=always-malloc //glib有缓存 故需使用
上述两条设置环境变量 G_SLICE和G_DEBUG排除由内存分配机制带来的影响
--tool=memcheck //使用valgrind的memcheck功能
-show-reachable=yes //是否检测控制范围之外的泄漏,比如全局指针、static指针等
--log-file=a.log //结果输出到文件
--leak-check=full //显示具体代码中泄漏的地方
--leak-resolution=high //
--num-callers=20
严格通用
G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind --tool=memcheck --leak-check=full --leak-resolution=high --num-callers=20 --show-reachable=yes --log-file=a.log ./app
编写 valgrind_test.sh文件,内容如下
killall ../bin/test
export G_SLICE=always-malloc
export G_DEBUG=gc-friendly
valgrind --tool=memcheck --leak-check=full --leak-resolution=high ../bin/test --verbose --no-daemon --timed-exit &> ./valgrind_test.log
执行./valgrind_test.sh
查看结果文件valgrind_test.log,可以先查看LEAK SUMMARY:段,对于possibly lost可以不处理
==31312== Memcheck, a memory error detector
==31312== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==31312== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==31312== Command: ../bin/test --verbose --no-daemon --timed-exit
==31312==
** Message: called g_read_mr_init(mr_type:0)
** Message: called read_mr_file(mr_filename:../bin/input/mr_detail_201301141710.zcsv,mr_list_hash:0x7ff000050)
==31312== Warning: set address range perms: large range [0x59dc040, 0x259dc040) (undefined)
==31312== Conditional jump or move depends on uninitialised value(s)
==31312== at 0x4C28A1A: index (mc_replace_strmem.c:218)
==31312== by 0x404956: read_gsmmr_file (gsmmr.c:400)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== Conditional jump or move depends on uninitialised value(s)
==31312== at 0x4C28A2E: index (mc_replace_strmem.c:218)
==31312== by 0x404956: read_gsmmr_file (gsmmr.c:400)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312==
==31312== Conditional jump or move depends on uninitialised value(s)
==31312== at 0x40496F: read_gsmmr_file (gsmmr.c:424)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
** (process:31312): DEBUG: decompress 1954436 mr from ../bin/input/mr_detail_201301141710.zcsv
==31312== Warning: set address range perms: large range [0x59dc028, 0x259dc058) (noaccess)
g_hash_table_size (mr_list_hash)=36807 tv_sec=1358154474,tv_usec=214239000** Message: called g_read_mr_init(mr_type:0)
** Message: called read_mr_file(mr_filename:../bin/input/TD-SCDMA_MRO_HUAWEI_OSS_1600_20130527122900.bmr,mr_list_hash:0x7ff000050)
** (process:31312): DEBUG: decode 49796 mro_block from ../bin/input/TD-SCDMA_MRO_HUAWEI_OSS_1600_20130527122900.bmr
g_hash_table_size (mr_list_hash)=5040 tv_sec=1369628708,tv_usec=380000==31312==
==31312== HEAP SUMMARY:
==31312== in use at exit: 689,582,602 bytes in 576,558 blocks
==31312== total heap usage: 19,806,784 allocs, 19,230,226 frees, 2,099,437,182 bytes allocated
==31312==
==31312== 15 bytes in 1 blocks are possibly lost in loss record 1 of 53
==31312== at 0x4C278FE: malloc (vg_replace_malloc.c:270)
==31312== by 0x31A20417D2: g_malloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2058F7D: g_strdup (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2068FE0: g_get_charset (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2042C61: g_log_default_handler (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2042FF8: g_logv (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2043412: g_log (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404FEC: g_read_mr_init (mrread.c:37)
==31312== by 0x404BC3: test_read_gsmmr_file (test_mrread.h:22)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 15 bytes in 1 blocks are possibly lost in loss record 2 of 53
==31312== at 0x4C278FE: malloc (vg_replace_malloc.c:270)
==31312== by 0x31A20417D2: g_malloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2058F7D: g_strdup (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20690B0: g_get_charset (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2042C61: g_log_default_handler (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2042FF8: g_logv (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2043412: g_log (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404FEC: g_read_mr_init (mrread.c:37)
==31312== by 0x404BC3: test_read_gsmmr_file (test_mrread.h:22)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 16 bytes in 1 blocks are possibly lost in loss record 3 of 53
==31312== at 0x4C278FE: malloc (vg_replace_malloc.c:270)
==31312== by 0x4C27A72: realloc (vg_replace_malloc.c:662)
==31312== by 0x31A2041620: g_realloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20142DA: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A201439A: g_array_set_size (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20622A7: g_static_private_set (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20690F2: g_get_charset (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2042C61: g_log_default_handler (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2042FF8: g_logv (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2043412: g_log (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404FEC: g_read_mr_init (mrread.c:37)
==31312== by 0x404BC3: test_read_gsmmr_file (test_mrread.h:22)
==31312==
==31312== 24 bytes in 1 blocks are possibly lost in loss record 4 of 53
==31312== at 0x4C2668B: calloc (vg_replace_malloc.c:593)
==31312== by 0x31A2041707: g_malloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20690D9: g_get_charset (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2042C61: g_log_default_handler (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2042FF8: g_logv (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2043412: g_log (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404FEC: g_read_mr_init (mrread.c:37)
==31312== by 0x404BC3: test_read_gsmmr_file (test_mrread.h:22)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 240 bytes in 1 blocks are possibly lost in loss record 6 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404ED3: main (main.c:26)
==31312==
==31312== 496 bytes in 1 blocks are possibly lost in loss record 8 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A205C36A: g_string_sized_new (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2042A4E: g_log_default_handler (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2042FF8: g_logv (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2043412: g_log (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404FEC: g_read_mr_init (mrread.c:37)
==31312== by 0x404BC3: test_read_gsmmr_file (test_mrread.h:22)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 1,008 bytes in 1 blocks are possibly lost in loss record 12 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A202B1D2: g_hash_table_new_full (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404654: read_gsmmr_file (gsmmr.c:350)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 1,008 bytes in 1 blocks are possibly lost in loss record 13 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A202B1D2: g_hash_table_new_full (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404654: read_gsmmr_file (gsmmr.c:350)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 1,488 bytes in 3 blocks are possibly lost in loss record 14 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A205C36A: g_string_sized_new (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2042A4E: g_log_default_handler (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2042FF8: g_logv (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2043412: g_log (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404FEC: g_read_mr_init (mrread.c:37)
==31312== by 0x404BC3: test_read_gsmmr_file (test_mrread.h:22)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 3,472 bytes in 7 blocks are possibly lost in loss record 17 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2036D5D: g_list_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A202ABB9: g_hash_table_get_values (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404C7D: test_read_gsmmr_file (test_mrread.h:30)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 49,920 bytes in 208 blocks are possibly lost in loss record 19 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x403F0F: mr_new (gsmmr.c:162)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 51,120 bytes in 213 blocks are possibly lost in loss record 20 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x403E12: mr_new (gsmmr.c:136)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 56,160 bytes in 234 blocks are possibly lost in loss record 21 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x403E7A: mr_new (gsmmr.c:143)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 101,040 bytes in 421 blocks are possibly lost in loss record 22 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x40421B: mr_new (gsmmr.c:241)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 101,520 bytes in 423 blocks are possibly lost in loss record 23 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x40407E: mr_new (gsmmr.c:195)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 106,560 bytes in 444 blocks are possibly lost in loss record 24 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404182: mr_new (gsmmr.c:221)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 109,440 bytes in 456 blocks are possibly lost in loss record 25 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x403F7A: mr_new (gsmmr.c:169)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 109,680 bytes in 457 blocks are possibly lost in loss record 26 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x40438A: mr_new (gsmmr.c:274)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 111,120 bytes in 463 blocks are possibly lost in loss record 27 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404286: mr_new (gsmmr.c:248)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 111,120 bytes in 463 blocks are possibly lost in loss record 28 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x40448E: mr_new (gsmmr.c:300)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 112,320 bytes in 468 blocks are possibly lost in loss record 29 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404117: mr_new (gsmmr.c:214)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 115,200 bytes in 480 blocks are possibly lost in loss record 30 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404013: mr_new (gsmmr.c:188)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 115,440 bytes in 481 blocks are possibly lost in loss record 31 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404423: mr_new (gsmmr.c:293)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 117,360 bytes in 489 blocks are possibly lost in loss record 32 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x40431F: mr_new (gsmmr.c:267)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 126,960 bytes in 529 blocks are possibly lost in loss record 33 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404914: read_gsmmr_file (gsmmr.c:418)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 173,600 bytes in 350 blocks are possibly lost in loss record 34 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2036D5D: g_list_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A202ABB9: g_hash_table_get_values (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404C7D: test_read_gsmmr_file (test_mrread.h:30)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 4,856,400 bytes in 20,235 blocks are possibly lost in loss record 35 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x40438A: mr_new (gsmmr.c:274)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 4,926,240 bytes in 20,526 blocks are possibly lost in loss record 36 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404914: read_gsmmr_file (gsmmr.c:418)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 4,946,640 bytes in 20,611 blocks are possibly lost in loss record 37 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x40407E: mr_new (gsmmr.c:195)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 4,957,920 bytes in 20,658 blocks are possibly lost in loss record 38 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404423: mr_new (gsmmr.c:293)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 4,971,360 bytes in 20,714 blocks are possibly lost in loss record 39 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x40431F: mr_new (gsmmr.c:267)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 4,983,120 bytes in 20,763 blocks are possibly lost in loss record 40 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x40448E: mr_new (gsmmr.c:300)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 5,015,280 bytes in 20,897 blocks are possibly lost in loss record 41 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x403E12: mr_new (gsmmr.c:136)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 5,017,920 bytes in 20,908 blocks are possibly lost in loss record 42 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x403E7A: mr_new (gsmmr.c:143)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 5,031,360 bytes in 20,964 blocks are possibly lost in loss record 43 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x403F0F: mr_new (gsmmr.c:162)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 5,034,960 bytes in 20,979 blocks are possibly lost in loss record 44 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x40421B: mr_new (gsmmr.c:241)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 5,036,640 bytes in 20,986 blocks are possibly lost in loss record 45 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404182: mr_new (gsmmr.c:221)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 5,122,080 bytes in 21,342 blocks are possibly lost in loss record 46 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x403F7A: mr_new (gsmmr.c:169)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 5,136,000 bytes in 21,400 blocks are possibly lost in loss record 47 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404013: mr_new (gsmmr.c:188)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 5,156,160 bytes in 21,484 blocks are possibly lost in loss record 48 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404117: mr_new (gsmmr.c:214)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 5,175,360 bytes in 21,564 blocks are possibly lost in loss record 49 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2057D7D: g_slist_prepend (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x404286: mr_new (gsmmr.c:248)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 14,407,344 bytes in 14,293 blocks are possibly lost in loss record 50 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x403B51: mr_new (gsmmr.c:60)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 86,786,784 bytes in 86,098 blocks are possibly lost in loss record 51 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20568E5: g_slice_alloc0 (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x403B51: mr_new (gsmmr.c:60)
==31312== by 0x4048DC: read_gsmmr_file (gsmmr.c:414)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 149,042,432 bytes in 42,288 blocks are possibly lost in loss record 52 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A20567CB: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x40488D: read_gsmmr_file (gsmmr.c:403)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== 362,291,808 bytes in 113,242 blocks are possibly lost in loss record 53 of 53
==31312== at 0x4C26458: memalign (vg_replace_malloc.c:727)
==31312== by 0x4C264F3: posix_memalign (vg_replace_malloc.c:876)
==31312== by 0x31A2055F47: ??? (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x31A2056801: g_slice_alloc (in /lib64/libglib-2.0.so.0.2200.5)
==31312== by 0x40488D: read_gsmmr_file (gsmmr.c:403)
==31312== by 0x40507B: read_mr_file (mrread.c:56)
==31312== by 0x404BEE: test_read_gsmmr_file (test_mrread.h:26)
==31312== by 0x404EE3: main (main.c:28)
==31312==
==31312== LEAK SUMMARY:
==31312== definitely lost: 0 bytes in 0 blocks
==31312== indirectly lost: 0 bytes in 0 blocks
==31312== possibly lost: 689,572,150 bytes in 576,549 blocks
==31312== still reachable: 10,452 bytes in 9 blocks
==31312== suppressed: 0 bytes in 0 blocks
==31312== Reachable blocks (those to which a pointer was found) are not shown.
==31312== To see them, rerun with: --leak-check=full --show-reachable=yes
==31312==
==31312== For counts of detected and suppressed errors, rerun with: -v
==31312== Use --track-origins=yes to see where uninitialised values come from
==31312== ERROR SUMMARY: 48 errors from 48 contexts (suppressed: 4 from 4)
Glib程序使用Valgrind查找内存泄露的更多相关文章
- Valgrind查找内存泄露利器
Valgrind是一个GPL的软件,用于Linux(For x86, amd64 and ppc32)程序的内存调试和代码剖析.你可以在它的环境中运行你的程序来监视内存的使用情况,比如C 语言中的ma ...
- Android中如何查找内存泄露
1.首先确定是否有内存泄露及哪个程序造成. 1.1.内存泄露已弹出out of memory对话框的情况. 这种情况很简单,直接看对话框就知道是哪个应用的问题了.然后再分析该应用是否是因为内存泄露造成 ...
- 使用UMDH查找内存泄露
参考文献: 1.http://blog.csdn.net/wcjy07220114/article/details/6962140 2.http://blog.csdn.net/chenyujing1 ...
- 用poolmon来查找内存泄露
用poolmon来查找内存泄露 poolmon C:\WinDDK\7600.16385.1\tools\Other\i386\poolmon.exegflags C:\WinDDK\7600 ...
- Valgrind检测内存泄露简介
原文地址: Valgrind 概述 体系结构 Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合.Valgrind由内核(core)以及基于内核的其他调试工具组成.内核 ...
- leaks工具查找内存泄露
作为一名iOS开发攻城狮,在苹果没有出ARC(自动内存管理机制)时,我们几乎有一半的开发时间都耗费在这么管理内存上.后来苹果很人性的出了ARC,虽然在很大程度上,帮助我们开发者节省了精力和时间.但是我 ...
- Linux 下用 valgrind 查找内存泄漏小例子
1.安装 valgrind yum install valgrind 2.测试用例 main.cpp #include <iostream> using namespace std; st ...
- valgrind 检查内存泄露
https://www.oschina.net/translate/valgrind-memcheck
- 用Eclipse Memory Analyzer查找内存泄露
写在CSDN里面了 http://blog.csdn.net/dayulxl/article/details/78164301
随机推荐
- GCD实现简单的单例类-Singletion
什么是单例模式 1.单例模式是一个类在系统中只有一个实例对象.通过全局的一个入口点对这个实例对象进行访问.在 iOS 开发中,单例模式是非常有用的一种设计模式.如 下图,是一个简单单例模式的 UML ...
- UIScrollView基本使用
- (void)viewDidLoad { [super viewDidLoad]; scrollView = [[UIScrollView alloc] initWithFrame:CGRectMa ...
- 使用Open Live Writer 的代码高亮插件体验
由于windows live writer 2012 已经停止服务,转而推出开源项目Open Live Writer .虽然Open Live Writer 也没怎么更新,官网更是一个插件都没有放出来 ...
- leetcode算法刷题(二)——动态规划(一)
上次刷了五六道题,都是关于string处理的,这次想换个知识点刷一下,然后再回头刷string的题,当做复习.. 这几天主要会选择动态规划的题目,因为以前从没刷过这方面的东西,很多东西都不是很懂..就 ...
- python学习day2(一)
一.上周作业回顾 1.登陆接口: 思路流程: 1.登陆,三次锁定用户 2.用户信息文件,黑名单文件 3.检测黑名单,如输入账号在黑名单中存在,不允许登陆 4.用户密码判断 主要知识点:while,fo ...
- eclipse中的两种Jre 及 Jre与Jdk的区别
分类: ——————————区分eclipse中的两种Jre———————- (Eclipse也是一个普通的Java程序,因此必须有一个JRE做为运行环境.如果你的机器上没有安装任何JRE(或者JDK ...
- java的深复制与浅复制
今天座右铭-----浪费时间就等于慢性自杀 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原 来的对象.换言之,浅复制仅仅复制所考虑的对象,而不复 ...
- 并查集及其简单应用:优化kruskal算法
并查集是一种可以在较短的时间内进行集合的查找与合并的树形数据结构 每次合并只需将两棵树的根合并即可 通过路径压缩减小每颗树的深度可以使查找祖先的速度加快不少 代码如下: int getfather(i ...
- omnibus方式部署gitlab
omnibus方式部署gitlab Posted on 2015 年 1 月 10 日 4233 Views 这几天折腾搭建git服务器,选择了比较流行的gitlab,一开始就直奔一键安装脚本去了 ...
- C# 连接 Mysql 中文乱码问题
网上有很多解决乱码的方法,什么 set names utf8 .什么在插入数据前进行编码,亲自试了都没有效果,在网上寻觅了很久,终于找到一种方法,并亲试成功: 首先要保证你的数据库是UTF8字符集 ...