polyspace: stub函数退出的最佳实践?

15的观点(30天)
我不确定什么是最好的实践是对stub函数退出/终止程序。考虑一个重启()函数重新启动系统。我可以作为存根
无效重启(空白)
{
(;;){
;
}
}
但是让”为“红色NTC,我似乎无法让消失“-known-NTC重启”。所以我去了
#包括< stdlib.h >
无效重启(空白)
{
退出(0);
}
这使得“退出”破灭红色下划线,泡沫评论说“一个问题发生在调用函数的执行__polyspace__stdstubs.exit。”。
我怎么存根这样一个函数没有红色或其他有问题的语句吗?

接受的答案

Alexandre De Barros
Alexandre De Barros 2014年7月15日
嗨,汤米!
如果一个函数退出程序,然后通过定义调用这个函数不会返回,这叫后,程序将不会继续。这就是为什么Polyspace将标志一个过渡委员会检查,表明如果你调用这个函数,您的程序将会停止。
重要的是使用这个红色的检查例如理解为什么一些代码是遥不可及的:
重启();/ /你的函数,出口应用程序。我们这里有一个红色的过渡委员会
重启();/ /问题:这个函数不是叫!
如果你存根函数没有一个全国过渡委员会或NTL,然后Polyspace将考虑,在上面的例子中,函数重启()可以调用,这是不正确的。所以结果不能反映现实的。
还请注意,Polyspace将这张支票传播通过调用树和它保持这个过渡委员会检查也是非常重要的。
我们来看另一个例子与这个功能:
int检查(int status_code) {
如果(status_code > 10)
重启();
其他的
返回1;
}
后来这段代码,我们将假设my_status设置为不正确的值:
my_status = 11;/ /哎呀,错了值!
如果(检查(my_status)) {
/ /做某事非常重要的
}
在检查()函数,将会有一个过渡委员会在重启(),但会有另一个过渡委员会称检查()因为Polyspace知道重启()函数将被称为自参数status_code是11。
如果重新启动()的没有一个全国过渡委员会,检查()调用与status_code等于11显示为好。但在现实中,这段代码会导致意外重启。
更多的信息在这个过渡委员会检查 在这里
亚历克斯
2的评论
Alexandre De Barros
Alexandre De Barros 2014年7月24日
这就跟你问声好!
没有办法justifiy红色作为检查检查所以没有出现。使用annotation确实是一个解决方案,但如果你想要这个红色的检查没有出现在报告,那么我建议你更换永远循环通过调用退出重启()。调用退出确实会不给一个过渡委员会检查但一个红色的“指示”(冲红)。
最好的问候,
亚历克斯

登录置评。

更多的答案(0)