我們正試圖在Linux上運行的C++應用程序找出內存泄漏後相同的內存泄漏。我們使用的是Valgrind 3.6.0,並且能夠獲得幾個「絕對丟失」的堆棧。在報告中,它也給出了「絕對丟失」字節的總數。Valgrind的顯示甚至固定泄漏
,我們必須包括的修復是這樣的:改變delete ptr
到delete[] ptr
其中ptr
指向的上堆位置的陣列。
請注意,PTR拿着的內存量好。我們也修改了許多其他刪除。因此,我們期望泄漏減少。
但修復後,奇怪的Valgrind的仍然報相同數量的泄漏和以前一樣,在總結。
==00:00:15:13.661 14014== LEAK SUMMARY:
==00:00:15:13.661 14014== definitely lost: 236 bytes in 8 blocks
==00:00:15:13.661 14014== indirectly lost: 22,113 bytes in 17 blocks
==00:00:15:13.662 14014== possibly lost: 695,006 bytes in 47 blocks
==00:00:15:13.662 14014== still reachable: 2,056,059 bytes in 732 blocks
==00:00:15:13.662 14014== suppressed: 0 bytes in 0 blocks
有人可以看到Valgrind的這種行爲嗎? 我們使用了所有正確選項調用mem_check工具等
沒有代碼,我們無法幫到你。 –