Causes and Effects in Computer Programs
Andreas Zeller
Abstract
Debugging is commonly understood as finding and fixing the cause of a problem. But what does ``cause'' mean? How can we find causes? How can we prove that a cause is a cause--or even ``the'' cause? This paper defines common terms in debugging, highlights the principal techniques, their capabilities and limitations.
Create a lesson
Related papers
MARGoS: A Configuration-Driven Platform for Reproducible MARL Experiments in ARGoS
Tom Philipp Backert, Mohammad D. Soorati, Javad Ghofrani
(When) Should a Software Factory be Lights-off? Benchmarking Code Review Agents on Bug Detection
Chenyang Yang, Hao He, Ti-Chung Cheng et al.
A-SAW: The Agentic Software Architecture Workflow
Finn Klatt, Luca Di Grazia, Johannes Schneider
SWE-DeceptionBench: Benchmarking Deceptive Behaviors of LLMs Across the Software Development Lifecycle
Xiting Liu, Lin Yang, Yitong Zhang et al.
Not All Correct Fixes Run Alike: An Empirical Study of Patch Performance in Repository-Level Issue Resolution
Han Peng, Xing Hu, Feifei Niu et al.
REINS: Agent-guided Thread Scheduling for Concurrency Bug Detection and Reproduction
Yu Zhang, Corina S. Pasareanu, Guowei Yang