2016
DOI: 10.1016/j.jss.2016.08.062
|View full text |Cite
|
Sign up to set email alerts
|

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

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 nulls with special values, called "ghosts", that track the propa… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
2
0

Year Published

2017
2017
2022
2022

Publication Types

Select...
2
1

Relationship

0
3

Authors

Journals

citations
Cited by 3 publications
(2 citation statements)
references
References 18 publications
0
2
0
Order By: Relevance
“…Use case #3: The third practical use case that would benefit from the HyperAST are the temporal code analyses linking and tracing code elements across history. For example, understand when a null pointer issue or a bad smell appeared in a commit [10], tracking the evolutions of a given method [15,17], measuring the stability metric of a class [41] [14,15,17], or understanding the evolution of a method complexity [28], computing change-and error-proneness of a given code element [5].…”
Section: Discussionmentioning
confidence: 99%
“…Use case #3: The third practical use case that would benefit from the HyperAST are the temporal code analyses linking and tracing code elements across history. For example, understand when a null pointer issue or a bad smell appeared in a commit [10], tracking the evolutions of a given method [15,17], measuring the stability metric of a class [41] [14,15,17], or understanding the evolution of a method complexity [28], computing change-and error-proneness of a given code element [5].…”
Section: Discussionmentioning
confidence: 99%
“…Traceability also helps mitigate failure propagation-i.e., due to defects in the code that endure through the development cycle and potentially reach the customer (for example, see [33,34]). Aligning tests with requirements to establish coverage metrics is vital, and without this information, it can be unclear if a requirement has been correctly tested or not.…”
Section: Lessons Learnedmentioning
confidence: 99%