_CrtDumpMemoryLeaks();
如果你不知道,是一个转储程序中所有内存泄漏的函数。我当前显示我有一个3632062字节的内存泄漏(它没有被解除分配)。
我在想: 有没有办法在分配了一定数量的字节时导致Visual C ++ Express中断?这样我可以在分配了3632062个字节时中断,然后读取堆栈跟踪以查看我分配它的位置。
这是我目前唯一可以想到的方法,用于查找内存的分配位置,以便我可以修复它。我一直在搜索我的代码,但我找不到任何需要分配3632062字节的地方(因为我加载的唯一文件是2767136字节..)虽然我确定泄漏与文件有关I'我正在经营。
找到内存泄漏源的任何想法?我正在使用Native C ++,Visual C ++ 2010
答案 0 :(得分:3)
您可以使用_CrtSetAllocHook来跟踪总内存使用情况。
UMDH将为您提供所有堆中已分配块的列表。这可能是您想要的,因为打破达到给定的总分配阈值不会告诉您所有块的分配位置。
答案 1 :(得分:1)
我之前使用过这个simple memory leak detector非常成功地找到了内存泄漏。