虽然大部分时间我们谈论的都是静态分析工具,但是当处理内存和线程相关的问题时动态分析工具却更为有效。这就是为什么像 Valgrind 这样的分析框架如此重要的原因。
从 monoTouch 5.4 开始,开发者就可以使用 Valgrind 来调试基于iOS 的应用程序了。我们推荐Valgrind 3.7.0 或更高版本,在编译时需要指定如下标记:–enable-only32bit 和–prefix=/usr/local。
Valgrind 直接提供了以下几个工具:
- 内存错误探测器
- 两个线程错误探测器
- 高速缓存与分支预测剖析器
- 调用图生成缓存与分支预测剖析器
- 堆分析器
因为 Valgrind 是一个框架,所以开发者偶尔可以基于它创建一些新的工具和变种。
Rolf Bjarne Kvinge 也警告到, Valgrind 可能会产生一些噪音,只需关注“Invalid read of size X”和“Invalid write of size X”等提示信息即可。
查看英文原文: Valgrind Support for MonoTouch
感谢臧秀涛对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论