我尝试使用 nedmalloc 的调试功能在我的代码中查找潜在的内存泄漏。所以我激活了标志ENABLE_LOGGING
和NEDMALLOC_TESTLOGENTRY
.
在我的程序中,我只使用系统内存池。在我的程序的最后,我调用该函数neddestroysyspool
以刷新所有内存事件。
首先,我无法激活堆栈跟踪功能。当我改变这个深度时,程序在几次分配后崩溃。为了在 VS2010 下编译,我必须DeinitSym
通过调用来定义自己CloseHandle
;我希望我做得对……但它不能正常工作。所以我不使用它。
所以我只解析文件nedmalloc.csv:我对它进行排序,这要归功于地址、分配的大小和减去地址中释放的大小。由于未知原因,对于几个大块(大小> 400kb),分配时给出的大小是正确的,但空闲时给出的大小不同,高于分配的大小。例如,我分配了一个 840352 字节的块,但释放时,记录的大小为 851932 字节。是正常的吗?
有人对这个问题有一些答案或提示吗?