当前位置: X-MOL 学术J. Syst. Archit. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Interactive and targeted runtime verification using a debugger-based architecture
Journal of Systems Architecture ( IF 3.7 ) Pub Date : 2021-01-19 , DOI: 10.1016/j.sysarc.2021.102001
Paul Naert , Seyed Vahid Azhari , Michel Dagenais

Runtime verification of software (RV) often relies on two categories of tools : dynamic heavy-weight tools, which significantly impact performance, and lighter and more efficient but static tools, which require recompiling the binary. In this paper we propose a new framework for building efficient and targeted dynamic RV tools, bridging the gap between those two categories. This framework is separated into two domains : source and binary. On the source level, a modular development environment provides a custom user interface which allows for precise targeting of instrumentation, as well as advanced interactivity. The binary level revolves around a debugger, which controls binary manipulation and library loading. In order to create fully dynamic tools, we added new instrumentation capabilities to the GNU debugger, using trampoline-based probes to inject code in the binary efficiently and interactively. Our framework focuses on accessibility for users via the graphical interface, and for developers by making it easy to adapt existing tools and by relying on popular programming languages such as Python and C++.

As a demonstration of our framework capabilities, we provide a significantly faster implementation of conditional breakpoints for GDB, as well as targeted and fully dynamic versions of two state-of-the-art runtime verification tools : Address Sanitizer and Data Watch.



中文翻译:

使用基于调试器的体系结构进行交互式且有针对性的运行时验证

软件的运行时验证(RV)通常依赖于两类工具:动态的重量级工具(显着影响性能)和更轻便,更有效的静态工具(需要重新编译二进制文件)。在本文中,我们提出了一个新的框架,用于构建有效的,针对性的动态RV工具,以弥合这两类之间的差距。该框架分为两个域:源域和二进制域。在源代码级别,模块化的开发环境提供了一个自定义的用户界面,该界面允许对仪器进行精确定位以及高级交互性。二进制级别围绕调试器进行,调试器控制二进制操作和库加载。为了创建完全动态的工具,我们向GNU调试器添加了新的检测功能,使用基于蹦床的探针高效且交互地将代码注入二进制文件中。我们的框架专注于通过图形界面为用户提供可访问性,并通过简化现有的工具并依靠流行的编程语言(例如Python和C ++)来为开发人员提供可访问性。

为了证明我们的框架功能,我们为GDB提供了条件断点的显着更快的实现,以及两种最新的运行时验证工具:Address Sanitizer和Data Watch的目标版本和完全动态版本。

更新日期:2021-01-24
down
wechat
bug