我使用 frama-c 工具来分析下面的代码。
int main (int argc, char *argv[])
{
int i,a;
for (i = 0; i < 100; i += 1)
{
a=0;
if (a==0)
{
continue;
}
else
{
break;
}
}
return 0;
}
cmd是
frama-c -pdg -dot-pdg graph main.c
我的问题是关于控制依赖。圆圈节点是什么意思?我试着解释一下“while”节点,也许它代表一次循环,因为一个循环从“i<100”开始,所以存在控制依赖(“i<100”-----o“while” )。我猜对了吗?但是“中断”节点是什么意思?我猜那个节点“goto __Cont;” 与“休息”有关;“else”块中的语句。
我想我脑子里没有清晰的抽象模型来完整准确地理解控制依赖。你会帮助我或给我任何建议吗?非常感谢提前道。