A relational approach to monitoring complex systems
ACM Transactions on Computer Systems (TOCS)
ACM Computing Surveys (CSUR)
Fast breakpoints: design and implementation
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
The SPLASH-2 programs: characterization and methodological considerations
ISCA '95 Proceedings of the 22nd annual international symposium on Computer architecture
Retargetability and extensibility in a parallel debugger
Journal of Parallel and Distributed Computing
KDB: a multi-threaded debugger for multi-threaded applications
SPDT '96 Proceedings of the SIGMETRICS symposium on Parallel and distributed tools
Debugging Multithreaded Programs with MPD
IEEE Software
Generalized path expressions: A high level debugging mechanism (Preliminary Draft)
SIGSOFT '83 Proceedings of the ACM SIGSOFT/SIGPLAN software engineering symposium on High-level debugging
METRIC: tracking down inefficiencies in the memory hierarchy via binary rewriting
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Session-aware debugging features for web applications using Ruby and Python frameworks
Workshop on Domain specific approaches to software test automation: in conjunction with the 6th ESEC/FSE joint meeting
Hi-index | 0.00 |
While threads have become an accepted and standardized model for expressing concurrency and exploiting parallelism for the shared-memory model, debugging threads is still poorly supported. This paper identifies challenges in debugging threads and offers solutions to them. The contributions of this paper are threefold. First, an open interface for debugging as an extension to thread implementations is proposed. Second, extensions for thread-aware debugging are identified and implemented within the Gnu Debugger to provide additional features beyond the scope of existing debuggers. Third, an active debugging framework is proposed that includes a language-independent protocol to communicate between debugger and application via relational queries ensuring that the enhancements of the debugger are independent of actual thread implementations. Partial or complete implementations of the interface for debugging can be added to thread implementations to work in unison with the enhanced debugger without any modifications to the debugger itself. Sample implementations of the interface for debugging have shown its adequacy for user-level threads, kernel threads and mixed thread implementations while providing extended debugging functionality at improved efficiency and portability at the same time.