mfc内存泄漏如何定位,MFC提示内存不足

  mfc内存泄漏如何定位,MFC提示内存不足

  转载:http://blog..net/xuweiqun/archive/2006/11/15/1385231.aspx

  首先,MFC应该报告我们发现了内存泄漏。注意:运行几次以确保输出内容不变,尤其是{}之间的值,否则下面的方法将无法正常工作。

  让我们来看看:

  f:/code sample/Test/Test pipe/leak Test/main frm . CPP(54):{ 86 } normal block at0x 00422 e 80,10byteslong。

  数据:1F1F1F1FCDCDCDCDCD

  f:/code sample/test/test pipe/leak test/main frm . CPP(54)告诉我们MFC认为是在这个文件的54行中发生了内存泄漏。您可以双击“更改行”转到文件的54行。但有时这些信息并不能用于准确的判断。比如MFC可能会报一行Strcore.cpp文件,其实就是CString的实现函数。此时,我们不知道内存泄漏是何时发生的。

  我们现在需要更多的信息。那么让我们来看看以下内容:

  {86}normalblockat0x00422E80,10byteslong。

  数据:1F1F1F1FCDCDCDCDCD

  它告诉我们第86次分配的内存还没有释放,共有10个字节,内容以十六进制的方式打印给我们。

  有了这些信息,我们就可以开始调试内存泄漏了。

  在程序开始时按下F10,停止并打开监视窗口:

  在“监视”窗口中,输入:

  {,msvcrtd.dll}_crtBreakAlloc

  然后将该值更改为上面提到的分配次数:86

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: