你如何让Valgrind精确地显示出现错误的位置?我编译我的程序(通过PuTTy在Linux终端上的Windows机器上),添加-g调试选项。如何让Valgrind显示线路错误?
当我运行Valgrind时,我得到了泄漏和堆概要,而且我确实已经失去了内存,但我从来没有得到关于它发生的位置的信息(文件名,行)。在我分配内存之后,Valgrind不应该告诉我在哪一行,它以后不能释放?
==15746==
==15746== HEAP SUMMARY:
==15746== in use at exit: 54 bytes in 6 blocks
==15746== total heap usage: 295 allocs, 289 frees, 11,029 bytes allocated
==15746==
==15746== LEAK SUMMARY:
==15746== definitely lost: 12 bytes in 3 blocks
==15746== indirectly lost: 42 bytes in 3 blocks
==15746== possibly lost: 0 bytes in 0 blocks
==15746== still reachable: 0 bytes in 0 blocks
==15746== suppressed: 0 bytes in 0 blocks
==15746== Rerun with --leak-check=full to see details of leaked memory
==15746==
==15746== For counts of detected and suppressed errors, rerun with: -v
==15746== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 15 from 8)
是的,它应该。你可以在这里粘贴valgrind输出吗?你在详细模式下运行valgrind吗? – Jack
添加了输出。它说要重新运行--leak-check = full,但我确实用该标志运行它。不知道为什么它不起作用。即使使用-v模式,我也会得到相同的信息。 – ShrimpCrackers
你是否说valgrind不支持泄漏检查选项? – Jack