任何人都可以推薦一個高質量的C++內存調試API或Windows軟件(特別是與MinGW一起工作的)嗎?我幾乎肯定了我的程序中有內存泄漏,但我不知道從哪裏開始尋找。C++內存調試器?
另外,在一個相關的說明中,我以前嘗試重載全局的new和delete操作符,並從那裏存儲調試信息。然而,當我嘗試用我的重載操作符替換每一個新的事件時,它會拋出一堆錯誤。我只嘗試使用一個簡單的預處理宏來做到這一點。
#define new new(__FILE__, __LINE__)
圍繞這個問題有沒有獨特的解決方法?
編輯:我可能應該更清楚這一點。事實上我確實聲明瞭一個重載,並且沒有任何錯誤地實現它。唯一的問題是,當我嘗試使用宏替換所有使用新運算符來使用我的重載時,這就是爲什麼我只發佈宏代碼。
當然你的宏會引發錯誤。 [操作員新](http://www.cplusplus.com/reference/std/new/operator%20new/)沒有重載,它接受這些參數。定義一個宏不只是爲你創建一個適用的函數。 – 2011-06-12 01:20:28
我不想聽起來居高臨下,但宏開闢了一個愚蠢的錯誤的方式:是你的'新'定義*之前*宏出現?爲什麼不完全忽略它,並定義全局'new'(沒有參數的那個),進行日誌記錄並從例如'operator new'? – 2011-06-12 01:21:31
@Luc,不。我確保在宏之前添加我的超載聲明。儘管如此,我可能會嘗試將正常的全球超載。 – B3tturTh3nU 2011-06-12 01:28:09