Academic
Publications
GC assertions: using the garbage collector to check heap properties

GC assertions: using the garbage collector to check heap properties,10.1145/1542476.1542503,Edward Aftandilian,Samuel Z. Guyer

GC assertions: using the garbage collector to check heap properties   (Citations: 5)
BibTex | RIS | RefWorks Download
ABSTRACT This paper introduces GC assertions, a system interface that pro- grammers can use to check for errors, such as data structure in- variant violations, and to diagnose performance problems, such as memory,leaks. GC assertions are checked by the garbage collec- tor, which is in a unique position to gather information and answer questions about the lifetime and connectivity of objects in the heap. We introduce several kinds of GC assertions, and we describe how they are implemented,in the collector. We also describe our report- ing mechanism, which provides a complete path through the heap to the offending objects. We show results for one type of asser- tion that allows the programmer,to indicate that an object should be reclaimed at the next GC. We nd,that using this assertion we can quickly identify a memory,leak and its cause with negligible overhead. Categories and Subject Descriptors D.2.4 [Software Engineering]: Software/Program Vericationó Reliability, Statistical Methods General Terms
Cumulative Annual
View Publication
The following links allow you to view full publications. These links are maintained by other sources not affiliated with Microsoft Academic Search.
    • ...Guyer [1] describes a suite of assertions that can be e ciently checked at GC time...
    • ...Compared to past systems, this design decision resembles that of the QVM system [3], as opposed to the option followed by Aftandilian and Guyer [1], which puts o assertion checking until GC time...
    • ...We picked the most complex of the bugs previously identified in pseudojbb using heap assertions [1]...
    • ...GC Assertions provides a set of heap assertions that, like DeAL, are checked by the garbage collector at runtime [1]...

    Christoph Reichenbachet al. What can the GC compute efficiently?: a language for heap assertions a...

    • ...quire heap snapshots to be analyzed offline [21], or support only a limited set of simple heap queries [1, 4]. Specification languages for Java such as JML [18] allow the programmer to specify expressive heap assertions, but lack runtime support for checking them...
    • ...In [1], the authors suggest the idea of “piggybacking on a GC traversal” to check various heap properties...
    • ...That is, the method of [1] reuses the work done by GC traversal to evaluate queries about the heap...
    • ...In [1], the main concern is what properties can be checked by piggybacking on a GC traversal...
    • ...Reusing the work of GC for query evaluation, as done in previous work [1], is inherently limiting the kinds of queries that can be computed: as we explained earlier, GC traversal only computes whether an object is reachable, while checking properties such as ownership requires information on how the object is reachable, via what paths...
    • ...Further compared to [1], we support heap queries specified in JML and provide novel parallel algorithms with finegrained synchronization for evaluation of common queries...

    Martin Vechevet al. PHALANX: parallel checking of expressive heap assertions

    • ...Furthermore, we may need to abandon the incremental approach in favor of full-heap collectors [1]...

    Du Li. Dynamic tainting for deployed Java programs

Sort by: