基于Petri网的Rust程序并发缺陷自动检测方法
《ACM Transactions on Autonomous and Adaptive Systems》:Petri Nets-based Methods on Automatically Detecting for Concurrency Bugs in Rust Programs
【字体:
大
中
小
】
时间:2026年10月10日
来源:ACM Transactions on Autonomous and Adaptive Systems 5.2
编辑推荐:
摘要AI 摘要要查看此AI生成的摘要,您需要拥有高级访问权限。了解更多登录摘要摘要Rust 的内存安全保证,尤其是所有权和生命周期系统,推动了它的广泛采用。然而,Rust 程序中仍然存在并发错误,且现有的检测手段存在显著局限:静态分析器存在上下文不敏感和高误报率的问题,而动态
摘要
摘要
Rust 的内存安全保证,尤其是所有权和生命周期系统,推动了它的广泛采用。然而,Rust 程序中仍然存在并发错误,且现有的检测手段存在显著局限:静态分析器存在上下文不敏感和高误报率的问题,而动态方法则因指数级路径探索而带来不可接受的运行时开销。本文提出了一种基于 Petri 网的方法,用于从 Rust 编译器生成的中级中间表示(MIR)中检测 Rust 并发错误,仅针对目标错误类别所需的并发相关操作。该方法建立在三大支柱之上:(1) 一种专为目标错误类别设计的语法驱动的程序到 Petri 网的转换;(2) 通过上下文感知切片实现的见证保留状态压缩;(3) 通过高效的 Petri 网可达性分析进行错误检测。
该方法的核心创新在于在 Petri 网结构中对 Rust 同步原语和与所有权相关的资源生命周期进行控制流驱动的建模,将并发相关操作表示为令牌移动。集成的指针分析在转换过程中自动识别别名。在 Rust 并发基准测试上的实验表明,所提出的分析在精度上优于 LockBud,在路径覆盖率或运行时上优于 Miri。与 LockBud 相比,我们的方法通过流敏感的别名感知资源绑定,将误报率降低了 35.7%,漏报率降低了 28.3%。与作为动态分析工具的 Miri 相比,我们的基于可达性的方法避免了重复的调度执行,在多个基准测试案例中显著更快。
AI 摘要
AI 生成的摘要(实验性)
本摘要由自动化工具生成,未经本文作者撰写或审核。它旨在支持发现过程、帮助读者评估相关性,并协助来自相邻研究领域的读者理解本工作。它作为作者提供的摘要的补充,后者仍然是论文的主要摘要。完整文章仍为权威记录版本。点击此处了解更多。
点击此处对本摘要的准确性、清晰度和有用性发表评论。这样做将有助于改进和未来的重新生成版本。
要查看此AI生成的通俗摘要,您需要拥有高级访问权限。
生物通微信公众号
生物通新浪微博
今日动态 |
人才市场 |
新技术专栏 |
中国科学人 |
云展台 |
BioHot |
云讲堂直播 |
会展中心 |
特价专栏 |
技术快讯 |
免费试用
版权所有 生物通
Copyright© eBiotrade.com, All Rights Reserved
联系信箱:
粤ICP备09063491号