我正在寻找Valgrind来帮助提高我的C编码/调试,当我发现它只适用于Linux时——我没有其他需要或兴趣将我的操作系统转移到Linux,所以我想知道是否有同样好的Windows程序。
当前回答
Parasoft insur++一直是可靠的:
http://www.parasoft.com/jsp/products/insure.jsp?itemId=63
其他回答
看看这个问题:有没有好的Valgrind可以替代Windows?. 虽然提出了valgrind的通用替代品,但它主要讨论内存泄漏检测器,而不是竞态条件检测。
我曾经有机会使用Compuware DevPartner Studio,那真的很好,但它相当昂贵。 一个更便宜的解决方案可以是GlowCode,我刚刚与一个5。X版本,尽管在附加到我需要调试的进程时出现了一些问题,但它运行得很好。
你可以参考《Game Programming Gems 8》中的文章《游戏内内存分析器的设计与实现》。
它展示了如何实现一个低开销的半侵入式实时内存分析器,源代码在CD-ROM中提供。
请参阅软件QA测试和测试工具资源页面上的“源测试工具”链接,以获得类似工具的列表。
我曾经使用BoundsChecker,DevPartner Studio和Intel V-Tune进行分析。我最喜欢V-Tune;你可以模拟各种英特尔芯片组,它会给你关于如何优化该平台的提示。
您可以尝试RuntimeChecker试用版或者IBM Purify试用版。
一个免费的解决方案是在Visual Studio中使用以下代码:
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
只要把这个写在所有cpp文件的顶部。 这将在停止调试运行时检测应用程序的内存泄漏,并在输出窗口中列出它们。双击内存泄漏行将突出显示已分配内存且从未释放内存的行。这可能对你有帮助:http://www.flipcode.com/archives/How_To_Find_Memory_Leaks.shtml
推荐文章
- 使用C返回一个数组
- 我如何找到哪个程序正在使用端口80在Windows?
- 在Windows中有像GREP这样的模式匹配实用程序吗?
- $destroy是否删除事件监听器?
- 如何在Windows命令提示符下运行.sh ?
- 如何为KnockoutJS调试模板绑定错误?
- 为什么pthreads的条件变量函数需要互斥?
- 如何在构建目标之外生成gcc调试符号?
- 如何从命令行在windows中找到mysql数据目录
- __FILE__宏显示完整路径
- 开关语句:必须默认为最后一种情况?
- 调试器是如何工作的?
- 逗号运算符是做什么的?
- 在没有事件源注册的情况下写入Windows应用程序事件日志
- 在内存的哪里我的变量存储在C?