SLICER4J: A Dynamic Slicer for Java']Java

被引:11
作者
Ahmed, Khaled [1 ]
Lis, Mieszko [1 ]
Rubin, Julia [1 ]
机构
[1] Univ British Columbia, Vancouver, BC, Canada
来源
PROCEEDINGS OF THE 29TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '21) | 2021年
关键词
Program analysis; dynamic slicing; !text type='Java']Java[!/text;
D O I
10.1145/3468264.3473123
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:1570 / 1574
页数:5
相关论文
共 22 条
  • [1] AGRAWAL H, 1990, SIGPLAN NOTICES, V25, P246, DOI 10.1145/93548.93576
  • [2] Agrawal H., 1991, P ACM 4 S TESTING AN, P60
  • [3] MANDOLINE: Dynamic Slicing of Android Applications with Trace-Based Alias Analysis
    Ahmed, Khaled
    Lis, Mieszko
    Rubin, Julia
    [J]. 2021 14TH IEEE CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST 2021), 2021, : 105 - 115
  • [4] Ahmed Khaled, 2021, SLICER4J
  • [5] Allen F.E., 1970, SIGPLAN Not, V5, P1
  • [6] Alves E., 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering, P520, DOI 10.1109/ASE.2011.6100114
  • [7] [Anonymous], 1999, Proceedings of CASCON99
  • [8] Arzt S, 2014, ACM SIGPLAN NOTICES, V49, P259, DOI [10.1145/2666356.2594299, 10.1145/2594291.2594299]
  • [9] StubDroid: Automatic Inference of Precise Data-flow Summaries for the Android Framework
    Arzt, Steven
    Bodden, Eric
    [J]. 2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2016, : 725 - 735
  • [10] THE PROGRAM DEPENDENCE GRAPH AND ITS USE IN OPTIMIZATION
    FERRANTE, J
    OTTENSTEIN, KJ
    WARREN, JD
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1987, 9 (03): : 319 - 349