DMCA
Thin slicing (2007)
Venue: | In PLDI |
Citations: | 73 - 2 self |
Citations
837 | Interprocedural slicing using dependence graphs
- Horwitz, Reps, et al.
- 1988
(Show Context)
Citation Context ...context insensitive and one context sensitive, applying wellunderstood concepts from slicing. In both thin slice approaches, we first compute a subset of the System Dependence Graph of Horwitz et al. =-=[12]-=-. We exclude control dependence edges, and include a subset of the standard SDG edges for heap accesses. Graph construction relies on a precomputed points-to analysis, to determine def-use information... |
629 | Program Analysis and Specialization for the C Programming Language
- Andersen
- 1994
(Show Context)
Citation Context ...based on the program as discovered by an on-the-fly call graph construction, including library methods. We used a pointer analysis based on Andersen’s analysis with on-the-fly call graph construction =-=[4, 27]-=-, but with fully object-sensitive cloning for objects of key collections classes, as described in [9]. The precise handling of containers was key forsprecision for all slicing variants, as the experim... |
298 | ESP: Pathsensitive program verification in polynomial time
- Das, Lerner, et al.
- 2002
(Show Context)
Citation Context ...rise in practice. In our programming experience, we have found that when such bugs arise, they can be tricky to debug, as values can be mutated in unexpected places. Analyses that find typestate bugs =-=[6, 9]-=-, e.g., reading from a file after closing it, could benefit from using thin slices to explain bugs that involve aliasing. Such tools sometimes hide error reports that involve aliasing, since there is ... |
291 | Supporting controlled experimentation with testing techniques: An infrastructure and its potential impact
- Do, Elbaum, et al.
- 2005
(Show Context)
Citation Context ... (2) to compare the number of inspected statements for thin and traditional slices. We investigated several injected bugs in the Java programs in the Software-Artifact Infrastructure Repository (SIR) =-=[8]-=-. SIR provides both several injected bugs for each program and test suites that can be used to expose the bugs. For each injected bug, we ran the corresponding test suite to discover a failure. Then, ... |
179 | L.J.: Scaling java points-to analysis using spark. In:
- Lhoták, Hendren
- 2003
(Show Context)
Citation Context ...e purposes of thin slicing, most other Java language features can be suitably translated into this language, and the language is similar to representations commonly used for Java flow analysis (e.g., =-=[16]-=-). The grammar rules are as follows: locname ::= x | x.f expr ::= new C | locname s ::= locname := expr | s1 ; s2 Note that in the following discussion, we use meta-variables m and m ′ to range over l... |
174 | Jungloid mining: helping to navigate the api jungle.
- Mandelin, Xu, et al.
- 2005
(Show Context)
Citation Context ... libraries already contain more code than a programmer can hope to master, and frameworks further compound the complexity. 1 In many frameworks, programmers spend hours learning simple usage patterns =-=[20]-=- and even more time debugging, which requires deeper understanding. 1 According to [20], the J2SE 1.4 standard library includes at least 21,000 methods and Eclipse [2] includes more than 100,000. Thin... |
144 |
Dependence analysis for pointer variables.
- HORWITZ, PFEIFFER, et al.
- 1989
(Show Context)
Citation Context ...itional slices: (1) control dependences are excluded, and (2) dependences of base pointers are excluded. Our handling of base pointers makes value-flow relevance narrower than classic flow dependence =-=[11]-=-, the notion used by traditional slicing for handling data dependence. A statement s is flow dependent on statement s ′ if s ′ updates any memory location read by s. So, a statement x := y.f in store ... |
111 |
Slicing object-oriented software
- Larsen, Harrold
- 1996
(Show Context)
Citation Context ...pointer analysis. This work targets C, and so had to deal with difficulties arising from issues such as stackdirected pointers and unsafe memory access, which do not arise in Java. Larsen and Harrold =-=[15]-=- presented one of the first slicing approaches for object-oriented software, adding pseudo-parameters for fields to track dependencies through the heap. Our context- sensitive slicer implementation us... |
99 | Effective typestate verification in the presence of aliasing.
- Fink, Yahav, et al.
- 2008
(Show Context)
Citation Context ...rise in practice. In our programming experience, we have found that when such bugs arise, they can be tricky to debug, as values can be mutated in unexpected places. Analyses that find typestate bugs =-=[6, 9]-=-, e.g., reading from a file after closing it, could benefit from using thin slices to explain bugs that involve aliasing. Such tools sometimes hide error reports that involve aliasing, since there is ... |
87 |
Finding Security Errors in Java Programs with Static Analysis.
- Livshits, Lam
- 2005
(Show Context)
Citation Context ...undness can be essential for some applications. For example, when performing an audit to see if untrusted inputs can flow to a sensitive statement s (e.g., web form inputs flowing to a database query =-=[19]-=-), a thin slice will show all statements that incoming values passed though, soundly indicating whether the values have passed through some “cleansing” function before reaching s. We have also develop... |
60 | Slicing objects using system dependence graphs. icsm
- Liang, Harrold
- 1998
(Show Context)
Citation Context ...ndle all fields that may be accessed transitively by callees. In recent years, several papers have improved precision by integrating more precise static alias analysis into slicing. Liang and Harrold =-=[18]-=- present a novel approach to represent formal parameter objects with trees. Hammer and Snelting [10] present an enhancement to this approach, including a criterion for sound limiting of tree sizes for... |
49 | Context-sensitive points-to analysis: Is it worth it?
- Lhotak, Hendren
- 2006
(Show Context)
Citation Context ...e add = (AddNode) n; 16 ... 17 } 18 } Figure 4. An example illustrating a tough cast. Expressions in the thin slice used to understand the safety of the cast are underlined. scalable pointer analysis =-=[17]-=-; we used the same pointer analysis used to construct our call graph. Checking these tough casts with thin slicing represents a useful exercise for understanding a code base, and can be useful for ref... |
49 | PSE: explaining program failures via postmortem static analysis.
- Manevich, Sridharan, et al.
- 2004
(Show Context)
Citation Context ... using thin slices to explain bugs that involve aliasing. Such tools sometimes hide error reports that involve aliasing, since there is no mechanism in the tool for explaining the aliasing succinctly =-=[21]-=-. Three additional technical points about explaining aliasing merit mention. First, thin slices that explain aliasing should be restricted to only show the flow of objects that can flow to both base p... |
47 | Effective whole-program analysis in the presence of pointers
- Atkinson, Griswold
(Show Context)
Citation Context ...s-to analysis indicates x may-alias w. We handle interprocedural heap flow the same way as the standard SDG, with heap reads and writes modeled as extra parameters and return values to each procedure =-=[5, 13]-=-. Our implementation introduces such parameters using the same heap partitions as used by the preliminary pointer analysis. Discovering the appropriate set of parameters for each procedure requires an... |
45 | Improving program slicing with dynamic points-to data
- Mock, Atkinson, et al.
- 2002
(Show Context)
Citation Context ... thin slice expansion technique is similar in spirit, but goes in a different direction by expanding slices to include statements that indirectly give rise to the primary alias relations. Mock et al. =-=[22]-=- showed that for C programs with heavy pointer use, using dynamic points-to data significantly improved slice precision over a conservative flow-insensitive pointer analysis. We suspect Java programs ... |
33 | Advanced Slicing of Sequential and Concurrent Programs,”
- Krinke
- 2003
(Show Context)
Citation Context ...n 1979 [30], slicing has inspired a large body of work on computing slices and on applications to a variety of software engineering tasks. We refer the reader to Tip’s survey [29] and Krinke’s thesis =-=[14]-=- for broad overviews of slicing technology and challenges. Here, we focus on the work most relevant to our own. Our thin slicing algorithm is a straightforward adaptation of the SDG-based approach fir... |
20 | An improved slicer for java,”
- Hammer, Snelting
- 2004
(Show Context)
Citation Context ...For clarity, we refer to relevant expressions as being in the slice, which actually includes the corresponding statements.s1 class Vector { 2 Object[] elems; int count; 3 Vector() { elems = new Object=-=[10]-=-; } 4 void add(Object p) { 5 this.elems[count++] = p; 6 } 7 Object get(int ind) { 8 return this.elems[ind]; 9 } ... 10 } 11 Vector readNames(InputStream input) { 12 Vector firstNames = new Vector(); 1... |
10 |
libraries for analysis,” http://wala. sourceforge.net
- Watson
- 2006
(Show Context)
Citation Context ...-sensitive traditional slicer [13] to our larger benchmarks. 5.1 Configuration and Methodology We implemented the thin and traditional data slicers using the T.J. Watson Libraries for Analysis (WALA) =-=[3]-=-. We utilized the call graph construction and pointer analysis algorithms provided by WALA, along with its tabulation solver for context-sensitive analysis [25]. We analyzed the Sun JDK 1.4.2_09 stand... |