【问题标题】:Software for checking memory leakage in exe fileexe文件内存泄漏检测软件
【发布时间】:2015-04-16 15:51:32
【问题描述】:

我有一个用 VC++ Windows 窗体应用程序编写的应用程序,它与各种硬件(如 A/D 卡、GPIB、D/A 等)交互。我的客户在现场运行了该应用程序,发现应用程序在运行几次后就崩溃了秒。我让他通过任务管理器监控内存增长,我发现确实,内存在增长。所以看起来像是内存泄漏的一些问题。现在我想找到我的代码中的确切位置,我没有正确释放/分配内存。但我无权访问现场 PC。我必须在没有那些硬件 A/D 等的 PC 上执行此操作。是否有任何软件可以接受我的 exe,并指出导致问题的函数/代码行的名称,而不实际执行我的 exe ? 我的 exe 无法运行,因为我没有这些硬件。

【问题讨论】:

  • 您可以使用像 Dr. Memory (drmemory.org) 这样的内存分析工具 - 确保您的应用程序是使用调试符号编译的 32 位。见这里:drmemory.org/docs/page_prep.html
  • 在 S.O. 上请求软件/工具/库推荐是题外话。也就是说,我能想到的最好方法是找到一些静态分析工具,例如CppCheck,如果他们发现了这个错误,你会很幸运。您可能会尝试通过使用 RAII 来消除大多数 newdelete 的使用,例如std::stringstd::vector、智能指针......当然,您可以提供工具或构建供客户端在现场运行,但我假设您正在努力避免进一步给它们带来不便。

标签: c++ windows visual-studio-2010 memory memory-management


【解决方案1】:

我使用 Smartbear QATime 来完成这项任务。它是一个分析器,也可以分析堆分配。在报告中,您可以获得仍然存在的对象的列表以及它们被创建的行。

【讨论】:

    猜你喜欢
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 2012-01-22
    • 2015-02-28
    相关资源
    最近更新 更多