Sep 2026· Proceedings of the 14th Workshop on Programming Languages and Operating Systems· 0 citations· 17 references
TL;DR
A debugging workflow that combines dynamic analysis with directed unit tests is introduced, and ACF, an infrastructure for automating this workflow is presented, indicating that ACF can help developers to isolate specific inputs causing an error, thus simplifying the process of locating faulty statements.
Abstract
Debugging software systems is a tedious and time-consuming activity, which includes reproduction of the observed errors, inspecting log files, usage of interactive debuggers, and running tests — all that is done with the goal of identifying a root cause. The process of debugging is even more challenging in the case of large systems with long computations, where programs (and test suites) may run for hours. We introduce a debugging workflow that combines dynamic analysis with directed unit tests, and present ACF, an infrastructure for automating this workflow. Dynamic analysis collects runtime data about procedure calls, their argument values, and relevant program states during execution of a target system. Tests use the recorded values as inputs. We have implemented the ACF infrastructure for C/C++ programs on top of LLVM. Our experiments with real-world systems indicate that ACF can help developers to isolate specific inputs causing an error, thus simplifying the process of locating faulty statements.
Statically typed languages offer many advantages in software engineering, including bug prevention, enhanced code quality, and reduced maintenance costs. However, these benefits come at the expense of a steep learning curve and a slower development pace. Although known for its expressive and strong type system, Haskell...
Shuai Fu, Tim Dwyer, Peter James Stuckey et al.· International Conference on...· 0 citations
Python programs that are distributed or running in remote locations quite often encounter performance issues in a quite subtle manner which is one reason their local counterparts are easier to troubleshoot since one disadvantage is that in distributed/remote setups one doesn't have full visibility and there may also be...
Madhurima Kommuru· American International Journ...· 0 citations
Large Language Models (LLMs) are increasingly used to generate executable software systems from natural language specifications, accelerating development and reducing manual implementation effort. Although recent studies have investigated the functional correctness, security, maintainability, and robustness of LLM-gene...
César Santos, Michele Vitagliano, Roberto Natella et al.· 0 citations
Related blog posts
MIT News · Artificial Intelligence· news.mit.eduOct 2, 2026
Writing as a participant and researcher, PhD student JS Tan SM ’22 has co-authored a new book about the rise of tech worker protests and the employer backlash that followed.
Requirements in large systems rarely exist in isolation. Their meaning depends on the wider project context - other requirements, policies, decisions, tests, and implementation details. That becomes especially important when AI is used for review, because spotting a possible conflict or gap is only the beginning. ReqSpace explores how AI, visualisation, and connected project context can help reviewers understand those findings, trace the relationships behind them, and focus on the questions that…
AI is making software generation faster, but speed does not remove the need for expertise. As more work is delegated to AI, tacit knowledge may become one of the most important human advantages in software engineering. The post Beyond Prompt Engineering: The Role of Tacit Knowledge in Software Engineering appeared first on GPT-Lab.