小编Mar*_*ton的帖子

了解gcov文件中的分支

我正在尝试理解gcov工具的输出.没有选项运行它是有道理的,但我想尝试理解分支覆盖选项.不幸的是,很难理解分支机构的作用以及为什么不采用它们.下面是方法的输出(使用最新的LLVM/Clang构建进行编译).

function -[TestCoverageAppDelegate loopThroughArray:] called 5 returned 100% blocks executed 88%
        5:   30:- (NSInteger)loopThroughArray:(NSArray *)array {
        5:   31:    NSInteger i = 0;
       22:   32:    for (NSString *string in array) {
branch  0 taken 0
branch  1 taken 7
        -:   33:        
       22:   34:    }
branch  0 taken 4
branch  1 taken 3
branch  2 taken 0
branch  3 taken 3
        5:   35:    return i;
        -:   36:}
Run Code Online (Sandbox Code Playgroud)

我通过这个运行5次测试,传入nil,一个空数组,一个包含1个对象的数组,一个包含2个对象的数组和一个包含4个对象的数组.我可以猜测,在第一种情况下,分支1意味着"进入循环",但我不知道分支0是什么.在第二种情况下,分支0似乎再次循环,分支1似乎结束循环,分支3继续/退出循环,但我不知道分支2是什么或为什么/什么时候执行它.

如果有人知道如何破译分支信息,或者知道任何有关这一切的详细文档,我会很感激帮助.

xcode objective-c llvm gcov

7
推荐指数
1
解决办法
2964
查看次数

标签 统计

gcov ×1

llvm ×1

objective-c ×1

xcode ×1