paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Sulong, and Thanks for All the Bugs

Sulong:感谢所有的 Bug
ASPLOS Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems2018匹配度 2/10 · 论文属于动态程序分析与C内存错误检测,与用户的PL与AI/LLM交叉方向(Agentic程序静态分析、LLM改进静态分析/形式化验证、浮点或贝叶斯程序分析与LLM结合)几乎没有直接关联。其问题驱动和工具实现风格有参考价值,但不在当前研究核心范围内。引用 15 inbox
Manuel Rigger, Roland Schatz, René Mayrhofer, Matthias Grimmer, Hanspeter Mössenböck
crossref: 2026-09-12

AI 速览

一句话:提出 Safe Sulong:在高层语言解释器中自动检查 C 内存访问,发现现有工具遗漏的 bug。

该论文关注 C 语言中的内存错误(如缓冲区溢出)仍呈上升趋势的问题。现有动态 bug 查找工具基于底层机器执行模型,以 ad-hoc 方式插入检查,容易遗漏边界情况。作者提出一种在程序执行期间查找 bug 的新方法:核心是用高层语言编写的解释器自动执行边界、NULL 和类型等检查,并将 C 数据结构映射到高层语言的数据结构,使访问自动受检并暴露 bug。他们实现了名为 Safe Sulong 的工具,并评估表明它能发现当前先进工具遗漏的 bug,例如对 main 函数参数的越界访问。

问题
C 语言中缓冲区溢出等内存错误仍很危险且在上升,现有动态检测工具基于底层执行模型、检查插入方式 ad-hoc,易漏掉边界情况。
方法
用高层语言实现解释器执行程序,把 C 数据结构映射为高层语言数据结构,借助运行时自动边界、NULL 和类型检查来发现内存错误;实现为 Safe Sulong。
评估
实现工具后与现有先进工具对比,证明 Safe Sulong 能发现它们遗漏的 bug,如对 main 函数参数的越界访问。
原文摘要(Abstract)

In C, memory errors, such as buffer overflows, are among the most dangerous software errors; as we show, they are still on the rise. Current dynamic bug-finding tools that try to detect such errors are based on the low-level execution model of the underlying machine. They insert additional checks in an ad-hoc fashion, which makes them prone to omitting checks for corner cases. To address this, we devised a novel approach to finding bugs during the execution of a program. At the core of this approach is an interpreter written in a high-level language that performs automatic checks (such as bounds, NULL, and type checks). By mapping data structures in C to those of the high-level language, accesses are automatically checked and bugs discovered. We have implemented this approach and show that our tool (called Safe Sulong) can find bugs that state-of-the-art tools overlook, such as out-of-bounds accesses to the main function arguments.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot4291,
  title = {Sulong, and Thanks for All the Bugs},
  author = {Manuel Rigger and Roland Schatz and René Mayrhofer and Matthias Grimmer and Hanspeter Mössenböck},
  booktitle = {ASPLOS},
  year = {2018},
  doi = {10.1145/3173162.3173174}
}