Program slicing with dynamic points-to sets

被引:16
|
作者
Mock, M [1 ]
Atkinson, DC
Chambers, C
Eggers, SJ
机构
[1] Univ Pittsburgh, Dept Comp Sci, Pittsburgh, PA 15260 USA
[2] Santa Clara Univ, Dept Comp Engn, Santa Clara, CA 95053 USA
[3] Univ Washington, Dept Comp Sci & Engn, Seattle, WA 98195 USA
关键词
dynamic analysis; points-to analysis; program slicing;
D O I
10.1109/TSE.2005.94
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Program slicing is a potentially useful analysis for aiding program understanding. However, in reality even slices of small programs are often too large to be useful. Imprecise pointer analyses have been suggested as one cause of this problem. In this paper, we use dynamic points-to data, which represents optimistic pointer information, to obtain a bound on the best case slice size improvement that can be achieved with improved pointer precision. Our experiments show that slice size can be reduced significantly for programs that make frequent use of calls through function pointers because for them the dynamic pointer data results in a considerably smaller call graph, which leads to fewer data dependences. Programs without or with only few calls through function pointers, however, show considerably less improvement. We discovered that C programs appear to have a significant fraction of direct and nonspurious pointer data dependences so that reducing spurious dependences via pointers is only of limited benefit. Consequently, to make slicing useful in general for such programs, improvements beyond better pointer analyses will be necessary. On the other hand, since we show that collecting dynamic function pointer information can be performed with little overhead ( average slowdown of 10 percent for our benchmarks), dynamic pointer information may be a practical approach to making slicing of programs with frequent function pointer use more successful in practice.
引用
收藏
页码:657 / 678
页数:22
相关论文
共 50 条
  • [21] Heterogeneous fixed points with application to points-to analysis
    Kanade, A
    Khedker, U
    Sanyal, A
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2005, 3780 : 298 - 314
  • [22] Active Learning of Points-To Specifications
    Bastani, Osbert
    Sharma, Rahul
    Aiken, Alex
    Liang, Percy
    PROCEEDINGS OF THE 39TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, PLDI 2018, 2018, : 678 - 692
  • [23] The ART of Sharing Points-to Analysis: Reusing Points-to Analysis Results Safely and Efficiently
    Halalingaiah, Shashin
    Sundaresan, Vijay
    Maier, Daryl
    Nandivada, V. Krishna
    Proceedings of the ACM on Programming Languages, 2024, 8 (OOPSLA2)
  • [24] Theoretical foundations of dynamic program slicing
    Binkley, Dave
    Danicic, Sebastian
    Gyimothy, Tibor
    Harman, Mark
    Kiss, Akos
    Korel, Bogdan
    THEORETICAL COMPUTER SCIENCE, 2006, 360 (1-3) : 23 - 41
  • [25] An efficient dynamic program slicing technique
    Mund, GB
    Mall, R
    Sarkar, S
    INFORMATION AND SOFTWARE TECHNOLOGY, 2002, 44 (02) : 123 - 132
  • [26] An Effective Approach of Points-To Analysis
    Zhang Yuping
    Deng Zhaori
    Zhang Xiaoning
    Ma Yan
    PROCEEDINGS OF THE 2015 INTERNATIONAL SYMPOSIUM ON COMPUTERS & INFORMATICS, 2015, 13 : 2038 - 2045
  • [27] Flow- and Context-Sensitive Points-To Analysis Using Generalized Points-To Graphs
    Gharat, Pritam M.
    Khedker, Uday P.
    Mycroft, Alan
    STATIC ANALYSIS, (SAS 2016), 2016, 9837 : 212 - 236
  • [28] Using ZBDDs in points-to analysis
    Lhotak, Ondrej
    Curial, Stephen
    Amaral, Jose Nelson
    LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, 2008, 5234 : 338 - +
  • [29] Fast and precise points-to analysis
    Lundberg, Jonas
    Gutzmann, Tobias
    Edvinsson, Marcus
    Lowe, Welf
    INFORMATION AND SOFTWARE TECHNOLOGY, 2009, 51 (10) : 1428 - 1439
  • [30] Quantifying uncertainty in points-to relations
    Ribeiro, Constantino G.
    Cintra, Marcelo
    LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, 2007, 4382 : 190 - +