当前位置: X-MOL 学术arXiv.cs.SE › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
NSan: A Floating-Point Numerical Sanitizer
arXiv - CS - Software Engineering Pub Date : 2021-02-25 , DOI: arxiv-2102.12782
Clement Courbet

Sanitizers are a relatively recent trend in software engineering. They aim at automatically finding bugs in programs, and they are now commonly available to programmers as part of compiler toolchains. For example, the LLVM project includes out-of-the-box sanitizers to detect thread safety (tsan), memory (asan,msan,lsan), or undefined behaviour (ubsan) bugs. In this article, we present nsan, a new sanitizer for locating and debugging floating-point numerical issues, implemented inside the LLVM sanitizer framework. nsan puts emphasis on practicality. It aims at providing precise, and actionable feedback, in a timely manner. nsan uses compile-time instrumentation to augment each floating-point computation in the program with a higher-precision shadow which is checked for consistency during program execution. This makes nsan between 1 and 4 orders of magnitude faster than existing approaches, which allows running it routinely as part of unit tests, or detecting issues in large production applications.

中文翻译:

NSan:浮点数字消毒器

消毒剂是软件工程中相对较新的趋势。它们旨在自动查找程序中的错误,现在作为编译器工具链的一部分,程序员通常可以使用它们。例如,LLVM项目包括开箱即用的清理程序,用于检测线程安全性(tsan),内存(asan,msan,lsan)或未定义的行为(ubsan)错误。在本文中,我们介绍了nsan,这是一种用于查找和调试浮点数值问题的新型消毒器,该消毒器在LLVM消毒器框架内实现。nsan强调实用性。它旨在及时提供精确且可操作的反馈。nsan使用编译时检测工具在程序中的每个浮点计算增加了一个高精度的影子,该影子在程序执行过程中进行了一致性检查。
更新日期:2021-02-26
down
wechat
bug