TL;DR
Casper is a tool that dynamically constructs causality traces with ghost values to help debug null dereference errors efficiently, providing quick insights into bug root causes in real-world software.
Contribution
This paper introduces causality traces and Casper, a novel dynamic debugging approach that constructs causal chains for null dereferences using ghost values at runtime.
Findings
Casper constructs causality traces in under 5 seconds.
Evaluated on 14 real null dereference bugs from popular open-source projects.
Casper effectively aids debugging by revealing root causes quickly.
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, for dynamically constructing causality traces for null dereference errors. The core idea of Casper is to inject special values, called ''ghosts'', into the execution stream to construct the causality trace at runtime. 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. Over this data set, Casper builds a causality trace in less than 5 seconds.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
