我有一个C++程序,因为内存不足错误而死。
你知道一个用于C++程序的工具,它显示哪个程序行分配了多少堆?
你知道一个用于C++程序的工具,它显示哪个程序行分配了多少堆?
我想确定程序的哪一部分占用了大部分堆。
谢谢。
平台:Microsoft C++ ... Windows
顺便说一下,可以堆腐败导致过多的内存使用情况?
解决方案: 这不是堆腐败。一些未初始化的变量用于分配内存量。 我使用了valgrind,它立即显示了问题(包括巨大的分配和未初始化的变量)。
我有一个C++程序,因为内存不足错误而死。
你知道一个用于C++程序的工具,它显示哪个程序行分配了多少堆?
你知道一个用于C++程序的工具,它显示哪个程序行分配了多少堆?
我想确定程序的哪一部分占用了大部分堆。
谢谢。
平台:Microsoft C++ ... Windows
顺便说一下,可以堆腐败导致过多的内存使用情况?
解决方案: 这不是堆腐败。一些未初始化的变量用于分配内存量。 我使用了valgrind,它立即显示了问题(包括巨大的分配和未初始化的变量)。
这听起来像你想要某种分析工具。快速谷歌搜索提出了这个堆栈溢出问题:
What's your favorite profiling tool (for C++)
(它说:“C”中的URL,但问题是关于C++)
在Visual Studio中,如果你得到一个在调试时这种异常,代码将在异常点时中断。然后,您可以浏览调用堆栈,以确切了解到目前为止每个功能中您的位置。我假设类似的东西会适用于其他平台。
这可能是错误的情况下堆损坏。 – 2010-07-13 19:51:04
FWIW,“顺便说一下”在我回答后加入了...... – Cogwheel 2010-07-13 20:00:59
Paul Nettle MMGR你在那里找到了一个“mmgr”,这是我以前用过的。它非常有用的恕我直言。
编译器?平台? – Cogwheel 2010-07-13 19:45:54