我正在使用我的程序中的wxWidgets進行目錄管理和壓縮/不妥協的文件集合。當我一直在構建我的文件系統時,我注意到每次運行都會發生內存泄漏。經過大量測試後,我意識到,只要我使用與wxFileName相關的任何函數,就會發生內存泄漏。我正在使用wx widgets 3.0.1,我的獨立示例如下。使用任何涉及wxFileName的內存時發生內存泄漏
#include <wx\filename.h>
int main()
{
wxFileName::Mkdir("Test");
return 0;
}
結果是相同的,如果我做一個wxFileName類的實例。
如何讓wx小部件不會造成內存泄漏?我希望能夠將大量文件打包到一個文件中,並通過各種其他庫(通過將zip解壓縮到臨時文件夾並從中讀取數據)從它們中讀取數據。我還沒有能夠得到任何其他庫來壓縮/解壓縮整個文件夾,所以我真的需要能夠使用wxWidgets而不會發生內存泄漏。
我在另一個線程中看到,視覺工作室調試器錯誤地識別了內存泄漏,但是我通過AQtime運行它,並確認確實存在內存泄漏。
精確調試輸出涉及內存泄漏如下:
Detected memory leaks!
Dumping objects ->
{1087} normal block at 0x009B4BC0, 64 bytes long.
Data: <\+= d+= l+= t+= > 5C 2B 3D 00 64 2B 3D 00 6C 2B 3D 00 74 2B 3D 00
{1086} normal block at 0x009B4880, 772 bytes long.
Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
{1085} normal block at 0x009B4680, 28 bytes long.
Data: < H > 80 48 9B 00 C1 00 00 00 00 00 00 00 CD CD CD CD
Object dump complete.
因此*你的問題*中的特定代碼報告爲devstudio和aqtime泄漏內存?假設你在符號調試中構建'wx',devstudio在哪裏說泄漏分配的來源是? – WhozCraig 2014-10-02 04:50:20
@WhozCraig是的,特定的代碼報告內存泄漏。我編輯了原始文章以顯示確切的內存泄漏。我不確定devstudio是什麼。我在調試中構建了wx,但我不知道是否包含了符號(默認情況下是否會發生?)。 此外,從我收集的內存泄漏發生在「wxAnyValueTypeGlobals」。 – Legacyblade 2014-10-02 05:05:09
DevStudio是生成該輸出的東西(實際上,關閉時的CRT調試報告,但您從devstudio的輸出日誌中得到它)。這確實很奇怪。實際上,我更傾向於使用WinDbg和該工具的堆分析父親而不是VS. – WhozCraig 2014-10-02 06:29:16