iPhone:我怎样才能使用gcov?

时间:2010-07-11 10:03:46

标签: iphone gcov google-toolbox-for-mac

我正在尝试在iPhone Project上使用gcov  并遵循Apple的描述here,但它不起作用。

当我构建并配置项目时,会为每个目标文件创建.gcda文件。 但是没有执行的行被记录到.gcda文件中。 (CoverStory显示所有覆盖率均为0%)

我刚刚在模板项目中添加了一个简单的类,如下所示。

@interface SomeClass : NSObject
- (void)func1:(BOOL)flag;
@end

@implementation SomeClass
- (void)func1:(BOOL)flag {
  if (flag) {
    NSLog(@"flag is YES");
  }
  else {
    NSLog(@"flag is NO");  
  }
}
@end

我分配了这个类并在application:didFinishLaunchingWithOptions中调用func1, 我预计会显示SomeClass的覆盖率(50%左右)。

我正在使用OSX 10.6.4,iPhone SDK 4.0和Xcode 3.2.3。 还需要更多配置吗?请指导。

更新2010/7/15:

我尝试了link @tonclon给我的这些提示,但它还没有奏效。 以下描述是我尝试过的。

  1. GCC 4.0编译的Cocoa应用程序 在“Cocoa”应用程序的项目设置中,

    • 将GCC_INSTRUMENT_PROGRAM_FLOW_ARCS设为是
    • 将GCC_GENERATE_TEST_COVERAGE_FILES设置为YES
    • 将其他链接标记设置为-lgcov
    • 将C / C ++编译器版本设置为4.0

    它工作,.gcda文件是按预期生成的覆盖信息。 但是在使用SDK 4.0的iPhone项目中,我不能使用相同的配置 gcc 4.0无法在SDK 4.0(ex Blocks)

  2. 中编译某些语法
  3. 在google-tool-box中使用自定义gcov库 而不是在其他链接器标志中设置-lgcov, 我试过custom gcov library included in google-toolbox-for-mac, 但生成的.gcda文件显示覆盖率为0%。 (结果相同)

  4. 你能告诉我接下来应该做什么吗?任何建议表示赞赏。

1 个答案:

答案 0 :(得分:0)

有几件事:

  1. 关闭前缀标题
  2. 确保您“正确”退出
  3. 请在此处查看gcov页面(http://code.google.com/p/google-toolbox-for-mac/w/list),看看它们是否有帮助。我有gcov使用Xcode 3.2.5和iOS4.2。