Casper: Automatic Tracking of Null Dereferences to Inception with Causality Traces

by Benoit Cornu, Earl T. Barr, Lionel Seinturier and Martin Monperrus
Abstract: 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 null values with special objects, called "ghosts", that 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.
 View PDF
Open-access (on archives-ouvertes.fr)
Publisher version (via DOI)
Citations: [citations]
Other publications of Martin Monperrus

Cite it:

Casper: Automatic Tracking of Null Dereferences to Inception with Causality Traces (, , and ), In Journal of Systems and Software, Elsevier, volume 122, .
Benoit Cornu, Earl T. Barr, Lionel Seinturier and Martin Monperrus, "Casper: Automatic Tracking of Null Dereferences to Inception with Causality Traces", In Journal of Systems and Software, Elsevier, vol. 122, pp. 52-62, 2016.

Bibtex Entry:

@article{cornu:hal-01354090,
 title = {{Casper: Automatic Tracking of Null Dereferences to Inception with Causality Traces}},
 author = {Cornu, Benoit and Barr, Earl T. and Seinturier, Lionel and Monperrus, Martin},
 url = {https://hal.archives-ouvertes.fr/hal-01354090/file/casper-debugging-null-dereferences.pdf},
 journal = {{Journal of Systems and Software}},
 publisher = {{Elsevier}},
 volume = {122},
 pages = {52-62},
 year = {2016},
 doi = {10.1016/j.jss.2016.08.062},
}
Powered by bibtexbrowser
Tagged as: