【问题标题】:How to detect leaks under WinCE C/C+ runtime library?WinCE C/C++ 运行时库下如何检测泄漏?
【发布时间】:2008-12-23 01:41:31
【问题描述】:

我知道使用 crtdbg.h 标头对 Win32 进行基本泄漏检测的可能性,但是 CE CRT 库标头中不提供此标头(我使用的是最新的 SDK v6.1) .

任何人都知道如何使用 VC 9.0 自动检测 WinCE/ARMV4I 配置中的泄漏?我不想为我的类层次结构覆盖 new/delete,我更喜欢准备好使用和测试过的代码。

【问题讨论】:

    标签: c++ windows-mobile memory-leaks windows-ce crtdbg.h


    【解决方案1】:

    在工作中(开发基于 WindowsCE 的操作系统 + 应用程序),我们创建了自己的内存管理器,大致基于 Fluid Studios Memory Manager(我使用 SO 找到的链接!)。我很确定通过一些简单的修改,您可以将其调整为在您的平台上使用。

    基本上它不会覆盖 new 和 delete,而是使用预处理器向它添加额外的报告。然后,一旦程序退出,它就会生成一个内存泄漏的输出文件。

    【讨论】:

    • 我正在为我的 WinCE 开发人员使用 Fluid Memory Manager。非常感谢,这就是我要找的检漏仪!!!
    • 这对我来说无法编译(找不到unlink_unlink_wunlink,即使包括wchar.hio.h(不存在))跨度>
    • 您是否定义了所有必要的预处理器常量?您是否链接到正确的库?听起来你可能没有正确设置项目。
    【解决方案2】:

    您想使用AppVerifierEntrek CodeSnitch。我在短时间内让 CodeSnitch 工作的运气要好得多。需要注意的是我没有做很多WinMo - 主要是香草CE。我相信 CodeSnitch 和更新的 WinMo 设备(Platman 与 Corecon)存在连接问题,但我也相信 Entrek 要么有一个测试版,要么有一个适用于它的补丁。我的建议是给 Entrek 打电话(不要发邮件,他们很忙,所以打电话是您获取信息的最快途径),只有当您发现它不起作用时,才可以查看 AppVerifier。

    【讨论】:

    • CodeSnitch 不是免费的 :( 并且 AppVerifier 不适用于 Windows Mobile(我没有提到 CE 的移动版本)。无论如何,为您的回复投 1 票,谢谢!:)跨度>
    • 也许我应该编写自己的检漏仪重载新/删除,我现在需要一些非常基本的东西.....
    • 你没有说你追求免费,我可以说 CodeSnitch 的价格在你第一次使用它时就得到了回报。一个可以节省数周寻找深奥内存错误的工具非常非常值得。
    【解决方案3】:

    我认为有一个 SourceForge 项目可以解决这个问题:

    http://sourceforge.net/projects/crtdbg4wince/

    如果我理解你的问题,它就是你正在寻找的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-21
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 2010-09-08
      • 2011-05-12
      • 1970-01-01
      相关资源
      最近更新 更多