分配一定量的字节时断开

时间:2010-11-18 20:05:16

标签: c++ debugging visual-studio-2010 memory-leaks msvcrt

_CrtDumpMemoryLeaks();如果你不知道,是一个转储程序中所有内存泄漏的函数。我当前显示我有一个3632062字节的内存泄漏(它没有被解除分配)。

我在想: 有没有办法在分配了一定数量的字节时导致Visual C ++ Express中断?这样我可以在分配了3632062个字节时中断,然后读取堆栈跟踪以查看我分配它的位置。

这是我目前唯一可以想到的方法,用于查找内存的分配位置,以便我可以修复它。我一直在搜索我的代码,但我找不到任何需要分配3632062字节的地方(因为我加载的唯一文件是2767136字节..)虽然我确定泄漏与文件有关I'我正在经营。

找到内存泄漏源的任何想法?我正在使用Native C ++,Visual C ++ 2010

2 个答案:

答案 0 :(得分:3)

您可以使用_CrtSetAllocHook来跟踪总内存使用情况。

UMDH将为您提供所有堆中已分配块的列表。这可能是您想要的,因为打破达到给定的总分配阈值不会告诉您所有块的分配位置。

答案 1 :(得分:1)

我之前使用过这个simple memory leak detector非常成功地找到了内存泄漏。