2
我使用的gcov与选项-a来标识基本块( - 全块),其从该手册:解释gcov输出,
When you use the -a option, you will get individual block counts
原始文件:
#include <stdio.h>
#include "file1.h"
int max(int a , int b)
{
int k = 0;
if (a > b)
return a;
else
return b;
}
的gcov文件如下:
-: 0:Source:file1.c
-: 0:Graph:file1.gcno
-: 0:Data:file1.gcda
-: 0:Runs:1
-: 0:Programs:1
-: 1:#include <stdio.h>
-: 2:#include "file1.h"
-: 3:
-: 4:int max(int a , int b)
1: 5:{
1: 6: int k = 0;
1: 7: if (a > b)
1: 7-block 0
1: 8: return a;
1: 8-block 0
-: 9: else
1: 10: return b;
$$$$$: 10-block 0
1: 10-block 1
-: 11:}
-: 12:
-: 13:
我找不到有关gcov输出格式的任何信息。从原始代码我可以识别3个基本块,但gcov只有数字2,也在第10行识别两个块。
您可以识别第10行的两个区块吗?这个符号是什么意思“$$$$$”? – user847988
其中一个块是else部分,另一个块可能是从主返回(没有自己的行)。 $$$$$标记未执行的块(不是行)。 –