Monitoring and Debugging Concurrent and Distributed Object-Oriented Systems
Joseph R. Kiniry
Abstract
A major part of debugging, testing, and analyzing a complex software system is understanding what is happening within the system at run-time. Some developers advocate running within a debugger to better understand the system at this level. Others embed logging statements, even in the form of hard-coded calls to print functions, throughout the code. These techniques are all general, rough forms of what we call system monitoring, and, while they have limited usefulness in simple, sequential systems, they are nearly useless in complex, concurrent ones. We propose a set of new mechanisms, collectively known as a monitoring system, for understanding such complex systems, and we describe an example implementation of such a system, called IDebug, for the Java programming language.
Create a lesson
Related papers
A Gated Spec-Driven Workflow: An Audit-Trail Study of Coding-Agent Work
Rodrigo Figueiredo Abdo, Pedro Carvalho Brom
Equal Access, Unequal Gains? GitHub Copilot and Productivity Among Developers with Disabilities
Emeralda Sesari, Daria Ana-Maria Mogoş, Federica Sarro et al.
One Strategy Does Not Fit All: Rethinking Data Labeling for Just-in-Time Vulnerability Prediction
Quan Tran, Duong Nguyen, Thanh Le-Cong et al.
Reproducibility in open-source RISC-V HW flows
Peter Kourzanov, Anmol Anmol
Who Is Doing the Thinking? Characterising Human Agency in First-Year Students' AI Interactions
Ali Shakiba, Thomas Chaffey
RESTberus: Trace-Aware Benchmarking of Automated REST API Testing Tools Across Microservice Dependencies
John Toniutti, Massimiliano Baldo, Marino Miculan et al.