GoogleTest 和内存泄漏

新手上路,请多包涵

我很惊讶 Google C++ 测试框架没有明确支持检查内存泄漏。但是,Microsoft Visual C++ 有一个解决方法,但是 Linux 呢?

如果内存管理对我来说至关重要,那么使用另一个 C++ 单元测试框架会更好吗?

原文由 Andrew 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

如果内存管理对我来说至关重要,那么使用另一个 C++ 单元测试框架会更好吗?

我不知道 C++ 单元测试,但我使用了 Dr. memory,如果你有符号它甚至可以告诉你内存泄漏发生在哪一行,它可以在 linux windows 和 mac 上运行!真的很有用:D

更多信息 http://drmemory.org/

原文由 Jotac0 发布,翻译遵循 CC BY-SA 3.0 许可协议

“我很惊讶 Google C++ 测试框架没有明确支持检查内存泄漏。”

它不是(也从来没有)故意这样做的。您实际上可以进行一些验证,例如使用 google mock 并设置预期调用(例如析构函数)。但是使用专门针对这方面的工具肯定会比您自己编写的所有东西做得更好。

“使用另一个 C++ 单元测试框架更好吗?”

那么,为什么还要费心寻找不同的单元测试框架(也不会支持这样的功能,至少我不知道)。

您可以使用诸如 valgrind 之类的工具,并在他们的控制下运行您的 UnitTester 可执行文件以检测内存泄漏。

笔记:

使用 UnitTester 可执行文件执行此操作的上述建议将无法从您的代码生成的最终可执行文件中捕获所有可能的内存泄漏,但仅有助于发现实际的错误/缺陷测试代码。

原文由 πάντα ῥεῖ 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题