我用boundschecker(可检vc/cb/delphi等等内存/api/资源的bug),挺好.

解决方案 »

  1.   

    有boundschecker的中文说明或教程吗?
    好像很复杂。
    [email protected]
    谢谢!
      

  2.   

    boundschecker用法很简单的!
    www.vckbase.com是好象有吧
      

  3.   

    VC++6。0里有一个工具,叫PROCESS VIEW,可以看见进程和线程,其中一个项目,可以检测内存泄漏
      

  4.   

    补充:在开始菜单的Visual Studio 6.0的子项目里
      

  5.   

    你太幸运了,我刚刚测试过我的程序是否有内存泄漏,方法如下:
    CMemoryState a1;
    a1.Checkpoint();
    Yourfunctionname();
    CMemoruState a2,a3;
    a2.Checkpoint();
    if(a3.Difference(a1,a2))
         MessageBox("内存泄漏!");
    else
        MessageBox("OK!");
    这样可以测试你的函数是否有内存泄漏。
      

  6.   

    首先感谢您使用微软产品。
     对于如何检测内存泄漏的问题,我想从两方面给出一些参考,一,如何在程序开发过程中在源代码层次上检测程序中的内存泄漏。
    二,如何用工具检测应用程序的内存泄漏问题。
     对于第一个问题,应用程序的内存泄漏的检测可以通过Windows 2000自带的Performance Monitor进行。Performance Monitor可以用来监测系统中处理器、内存、磁盘以及网络资源的使用情况。Performance Monitor的启动可以在命令行键入perfmon,也可以从Administration Tools中的快捷方式启动。关于Performance Monitor的使用的更详细的Windows 2000 Professional Resource Kit的第28章"Evaluating Memory and Cache Usage"中的” Investigating Memory Problems”部分。该文档可以在MSDN的Resource Kit目录下找到,也可以通过WWW在线访问微软的技术站点,URL是http://www.microsoft.com/windows2000/techinfo/reskit/en-us/default.asp?url=/windows2000/techinfo/reskit/en-us/prork/prec_evl_xzgm.asp。
     对于第二个问题,即在源代码级别检测程序中的内存泄漏,在VC++ 6.0中可以通过Debug模式和CRT库来方便的检测程序中的内存泄漏,具体可以参见在线文档,文档的URL是:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvc60/html/memleaks.asp。以下是一个例子。假设有如下VC++程序:
     
    //start
    #include "stdafx.h"void leakMemory(){
            char* pChar=new char[5];
    }int main(int argc, char* argv[])
    {
            leakMemory();
            return 0;
    }
    //end该程序的leakMemory存在内存泄漏。分配给pChar指针的char[5]没有被释放。在该程序中如过需要检测leakMemory()函数的内存泄漏,可以在程序中插入一些语句使之成为以下程序://start
    #define _CRTDBG_MAP_ALLOC
    #include "stdafx.h"
    #include <stdlib.h>
    #include <crtdbg.h>void leakMemory(){
            char* pChar=new char[5];
    }int main(int argc, char* argv[])
    {
            leakMemory();
            _CrtDumpMemoryLeaks();
            return 0;
    }
    //end此时,在VC++ 6.0中按F5开始Debug,在下部调试信息框的"Debug"标签页中将显示如下与内存泄漏有关的内容:
    Detected memory leaks!
    Dumping objects ->
    {44} normal block at 0x00431BB0, 5 bytes long.
     Data: <     > CD CD CD CD CD 
    Object dump complete.
    The thread 0xCA8 has exited with code 0 (0x0).通过这些信息,程序员可以有效的对内存泄漏进行检测。CRT库还有复杂的使用方法和更强大的功能。具体文档可以查看MSDN,或者阅读在线帮助文档。
    希望我的回答能够令您满意。
    - 微软全球技术中心 VC技术支持本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。 
      

  7.   

    程序员大本营微软版DISK 2上有工具