我正在尝试调试一个给出错误的程序:Abort(core dumped).Valgrind检测到堆栈粉碎并给出一个LEAK SUMMARY,其中1个块仍然可以访问.它向函数downloadAndOpen的第12行发出信号,在那里我有一个我认为在main结束时关闭的fopen,但它似乎不是.我很感激这个bug的帮助.valgrind输出是:
*** stack smashing detected ***: ./mtg terminated
==9594==
==9594== HEAP SUMMARY:
==9594== in use at exit: 352 bytes in 1 blocks
==9594== total heap usage: 1 allocs, 0 frees, 352 bytes allocated
==9594==
==9594== 352 bytes in 1 blocks are still reachable in loss record 1 of 1
==9594== at 0x402A17C: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==9594== by 0x40BE62B: __fopen_internal (iofopen.c:73)
==9594== by 0x40BE70A: fopen@@GLIBC_2.1 (iofopen.c:103)
==9594== by 0x8048729: downloadAndOpen (downloadAndOpen.c:12)
==9594== by 0x80485B5: main (mtg.c:15)
==9594==
==9594== LEAK …
Run Code Online (Sandbox Code Playgroud)