【发布时间】:2013-09-01 15:33:08
【问题描述】:
上下文
我在 Linux 下的代码库上为我的跨平台库运行 Valgrind。我想看看这是否足够,或者我是否应该对Windows 和Mac 也进行动态代码分析
问题
如果我的平台无关 C++ 代码没有在Linux 上泄漏(根据Valgrind),我可以假设它也没有在Windows 和Mac 上泄漏吗?如果不是,请提供一个独立于平台的 C++ 示例,它不会在Linux 上泄漏(根据Valgrind)但在Windows 和/或Mac 上泄漏(选择“通用”编译器,如 VC++、GCC 等中的编译器) .
精度(感谢 cmets 和答案)
- 我对独立于平台的 C++ 代码感兴趣(所以没有 #ifdef 等);
- 我考虑的是我拥有的 C++ 代码,而不是第三方代码;
- 我认为 Valgrind 是基本事实,但我可以考虑任何其他工具。我知道没有任何工具可以检测到所有内存泄漏。
【问题讨论】:
-
如果你有平台相关的代码或使用平台相关的第三方库,你绝对应该在
Windows和Mac上运行valgrind 分析。因为即使编译器也是平台相关的,并且可能包含平台相关的错误 -> 运行 valgrind。 -
确实!我编辑了我的问题,只关注与平台无关的 C++ 代码。
-
我只考虑我的 C++ 代码。不是第三方库之一。
-
哦,不要忘记可能会导致 C++ 代码泄漏的实现错误,尽管那只是运气不好。
-
@rubenvb:我不“拥有”这段代码;)
标签: c++ linux windows macos memory-leaks