基于传播引擎的高效指针引用错误检测
132 浏览量
更新于2024-08-27
收藏 614KB PDF 举报
本文主要探讨的是"基于传播引擎的指针引用错误检测"这一主题。在C语言编程中,指针是一种关键的数据类型,但其广泛使用也导致了许多复杂的错误,其中指针引用错误尤为常见且具有潜在的严重后果。传统的错误检测工具,如Saturn、Splint和Clang-SA,尽管在某些方面有所作用,但由于它们可能缺乏用户友好性、检测精度不高以及难以应对大规模程序的挑战,往往无法满足实际开发中的需求。
作者针对这些问题,提出了一种创新的错误检测方法,该方法的核心是利用域敏感、流敏感和上下文敏感的传播引擎。所谓"错误属性格",即一种用于表示和跟踪程序中错误状态的抽象数据结构,它允许在源代码级别进行细致的错误分析。通过计算和传播错误属性格,该方法能够更准确地识别出指针引用错误,例如空指针引用,这是一种常见的运行时错误,可能导致程序崩溃或数据损坏。
在Open64开源编译器中,作者实现了一个原型系统Propagator,作为这项新技术的实践平台。通过将Propagator应用于包括Apache、OpenSSH和gzip在内的广泛使用的实际应用程序,作者对其性能进行了评估。实验结果显示,Propagator在平均检测时间上表现出色,仅为12秒,相较于其他工具有显著的优势。此外,误报率也控制得相当低,仅为13%,这表明Propagator在提高检测精确度的同时,保持了良好的可扩展性。
对比测试显示,Propagator在空指针引用错误检测方面的表现优于Saturn、Splint和Clang-SA,没有出现漏报已知错误,这显示出其在实际应用中的稳健性和实用性。基于传播引擎的指针引用错误检测方法不仅提高了错误检测的效率和准确性,而且具有良好的适应性和可定制性,对于提升软件质量和开发效率具有重要的意义,为未来的静态代码分析和优化提供了一种新的有效途径。
点击了解资源详情
点击了解资源详情
2024-11-11 上传
2024-11-11 上传
2024-11-11 上传
2024-11-11 上传
2024-11-11 上传
weixin_38655987
- 粉丝: 8
- 资源: 933
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析