paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Slicer4J: a dynamic slicer for Java

Slicer4J:面向 Java 的动态切片器
FSE Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering2021匹配度 2/10 · 该论文提出的是 Java 动态切片工具,属于程序分析与调试/安全分析方向,但用户核心关注的是静态分析及其与 LLM/Agent 的交叉,以及浮点程序分析和贝叶斯程序分析。本文既未涉及 LLM/Agent,也未涉及静态分析、浮点或贝叶斯方法,仅作为通用程序分析工具与研究方向有非常间接的关联。引用 17 inbox
Khaled Ahmed, Mieszko Lis, Julia Rubin
crossref: 2026-09-12

AI 速览

一句话:提出支持多线程与现代 Java 的动态切片工具 Slicer4J,通过低开销插桩和线程感知动态控制流图计算切片。

动态程序切片广泛用于程序调试与安全分析,但面向 Java 的公开动态切片方案仅有 JavaSlicer,且它只支持 Java 6 及以下版本,也不支持多线程。为此,本文提出新的 Java 动态切片工具 Slicer4J。该工具使用低开销插桩收集运行时执行轨迹,据此构建线程感知的过程间动态控制流图,并基于该图计算切片。为支持跨越 Java 框架方法和 native 代码的切片,Slicer4J 依赖一组预构建的框架方法数据流摘要,同时允许用户按需添加自定义方法进行扩展。作者在十个基准与开源 Java 程序上展示了 Slicer4J 的适用性,并与 JavaSlicer 进行了对比,还讨论了工具的使用与扩展方式。

问题
现有唯一公开的 Java 动态切片工具 JavaSlicer 仅支持 Java 6 及以下程序且不支持多线程,无法满足现代 Java 程序的调试与安全分析需求。
方法
Slicer4J 通过低开销插桩收集运行时执行轨迹,构建线程感知的过程间动态控制流图并计算切片,并利用预构建的框架方法数据流摘要(支持用户自定义扩展)处理框架方法与 native 代码。
评估
在十个基准与开源 Java 程序上与 JavaSlicer 进行对比,展示 Slicer4J 的适用性,并讨论其使用与扩展方法。
原文摘要(Abstract)

Dynamic program slicing is used in a variety of tasks, including program debugging and security analysis. Despite being extensively studied in the literature, the only dynamic slicing solution for Java programs that is publicly available today is a tool named JavaSlicer. Unfortunately, JavaSlicer only supports programs written in Java 6 or below and does not support multithreading. To address these limitations, this paper contributes a new dynamic slicing tool for Java, named Slicer4J. Slicer4J uses low-overhead instrumentation to collect a runtime execution trace; it then constructs a thread-aware, inter-procedural dynamic control-flow graph and uses the graph to compute the slice. To support slicing through Java framework methods and native code, Slicer4J relies on a set of pre-constructed data-flow summaries of the main framework methods. It also allows the users to further customize this set, adding user-defined methods when needed. We demonstrate the applicability of Slicer4J on ten benchmark and open-source Java programs, comparing it with JavaSlicer, and discuss how to use and extend the tool.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot6444,
  title = {Slicer4J: a dynamic slicer for Java},
  author = {Khaled Ahmed and Mieszko Lis and Julia Rubin},
  booktitle = {FSE},
  year = {2021},
  doi = {10.1145/3468264.3473123}
}