Casper: Automatic tracking of null dereferences to inception with causality traces

Benoit Cornu, Earl T. Barr, Lionel Seinturier, Martin Monperrus
2016 Journal of Systems and Software  
Fixing a software error requires understanding its root cause. In this paper, we introduce "causality traces", crafted execution traces augmented with the information needed to reconstruct the causal chain from the root cause of a bug to an execution error. We propose an approach and a tool, called Casper, based on code transformation, which dynamically constructs causality traces for null dereference errors. The core idea of Casper is to replace nulls with special objects, called "ghosts",
more » ... track the propagation of the nulls from inception to their error-triggering dereference. Causality traces are extracted from these ghosts. We evaluate our contribution by providing and assessing the causality traces of 14 real null dereference bugs collected over six large, popular open-source projects.
doi:10.1016/j.jss.2016.08.062 fatcat:s2en3oykrbagrnkv22hktzfdnq