我覺得這應該是一個功能,但我的Google-Fu失敗了我。如果之前已經提過/回答過,我很抱歉,這感覺很明顯,但我找不到任何東西。Valgrind標記故意泄漏
是否有辦法將分配標記爲故意泄漏?上下文是在程序初始化期間動態分配一次並在整個程序生命週期中使用的數據結構。沒有真正的理由在程序終止之前釋放所有分配的對象(爲什麼要在房間裏有一個破壞的球衝向整個房間時清理房間?),但是它會導致Valgrind的很多誤報。
我知道我可以創建一個壓縮文件,但感覺手動和斷開連接。我更喜歡某種宏或其他源內註釋,這種分配是故意從未釋放的(例如類似於malloc(...)
- >malloc_IGNORE_LEAK(...)
)。 valgrind是否以某種方式支持這一點?
如果不是,那麼標記/跟蹤故意「泄漏」的首選解決方案是什麼?
這個答案是關於在執行結束時釋放內存的問題總結了我的想法:http://stackoverflow.com/a/2213644/1609219 – Macattack
我是這種情況下相反的意識形態。有問題的應用程序根本不是跨平臺的(也不是試圖成爲),它被設計爲在相對高性能的機器上的Unix環境中運行。在現代的情況下,這意味着虛擬內存。事實上,凱文的以下回答在這種情況下非常合適。這個問題不是「我應該釋放程序終身記憶」,它是「我打算讓操作系統完成它的工作,我怎麼告訴其他工具」 – Pat
我理解你的問題,這就是爲什麼我沒有發佈作爲一個答案,只有一個評論。話雖如此,他們還可以嗎?或者,你是否可以存儲指向所有分配的指針,並且這樣可以保持內存的可達性,並使'--show-reachable = no'可行。 – Macattack