我很惊讶 Google C++ 测试框架没有明确支持检查内存泄漏。但是,Microsoft Visual C++ 有一个解决方法,但是 Linux 呢?
如果内存管理对我来说至关重要,那么使用另一个 C++ 单元测试框架会更好吗?
原文由 Andrew 发布,翻译遵循 CC BY-SA 4.0 许可协议
我很惊讶 Google C++ 测试框架没有明确支持检查内存泄漏。但是,Microsoft Visual C++ 有一个解决方法,但是 Linux 呢?
如果内存管理对我来说至关重要,那么使用另一个 C++ 单元测试框架会更好吗?
原文由 Andrew 发布,翻译遵循 CC BY-SA 4.0 许可协议
“我很惊讶 Google C++ 测试框架没有明确支持检查内存泄漏。”
它不是(也从来没有)故意这样做的。您实际上可以进行一些验证,例如使用 google mock 并设置预期调用(例如析构函数)。但是使用专门针对这方面的工具肯定会比您自己编写的所有东西做得更好。
“使用另一个 C++ 单元测试框架更好吗?”
那么,为什么还要费心寻找不同的单元测试框架(也不会支持这样的功能,至少我不知道)。
您可以使用诸如 valgrind 之类的工具,并在他们的控制下运行您的 UnitTester
可执行文件以检测内存泄漏。
笔记:
使用 UnitTester
可执行文件执行此操作的上述建议将无法从您的代码生成的最终可执行文件中捕获所有可能的内存泄漏,但仅有助于发现实际的错误/缺陷测试代码。
原文由 πάντα ῥεῖ 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
3 回答3.4k 阅读
如果内存管理对我来说至关重要,那么使用另一个 C++ 单元测试框架会更好吗?
我不知道 C++ 单元测试,但我使用了 Dr. memory,如果你有符号它甚至可以告诉你内存泄漏发生在哪一行,它可以在 linux windows 和 mac 上运行!真的很有用:D
更多信息 http://drmemory.org/