1、 Automatic detection of floating-point exceptions
作者:Earl T. Barr Thanh Vo Vu Le Zhendong Su
单位:Department of Computer Science, University of California at Davis
出版:POPL’13
研究方向:浮点异常检测
主要技术点:符号执行
摘要:
设计并实现了一种检测浮点异常的符号执行系统Ariadne。Ariadne系统地对一个数值程序进行变换并检查每一个异常触发条件。Ariadne使用实数算法对变换后的程序进行符号化执行,来发现可能到达或触发异常的候选实数输入集。Ariadne将每一个候选输入转换为浮点数,与原始程序进行对比测试。通常,采用近似浮点算法的实数算法可能将执行路径从可达变为不可达,反之亦然。本工作的关键发现在于,对于浮点异常检测问题,这种近似的方法在实际应用中能够很好地工作,是由于若一个输入产生了异常,很多输入也都可能,并且其中至少一个在浮点计算和实数计算中都会产生异常。为了实现Ariadne,我们设计了一种新型的线性化技术来解决非线性约束。对GSL库中的467个标量函数进行了测试,Ariadne可以定位GSL中大量真实的运行时异常。GSL的开发人员确认了我们的原始发现,并期待Ariadne的公开版本,我们也计划在近期发行。
浮点精度问题的背景:
On June 4, 1996, the European Space Agency’s Ariane 5 rocket veered off course and self-destructed because the assignment of a floating-point number to an integer caused an overflow [40
浮点精度异常检测技术
![](https://img-home.csdnimg.cn/images/20240711042549.png)