The anti-goldilocks debugger

Myoungkyu Song, Eli Tilevich
2009 Proceeding of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications - OOPSLA '09  
The practice of enhancing the bytecode of Plain Old Java Objects (POJOs) with additional capabilities, including persistence, distribution, and security, has become an indispensable part of enterprise software development. The resulting transparently-applied, large-scale structural changes to the bytecode significantly complicate symbolic debugging. This demonstration will showcase the Anti-Goldilocks Java (AGJ) debugger, which enables the programmer to trace and debug transparently transformed
more » ... programs, without the distraction of the bytecode-level enhancements obfuscating the program's source code. AGJ executes a structurallyenhanced program, while dynamically reinterpreting the debugging output (e.g., 'step', 'print variable', etc.) to display program information as pertaining to the original version of the code. AGJ is based on a new debugging architecture that leverages our domain-specific language for describing enhancements. A paper in the main technical program of OOPSLA 2009 [5] describes the design rationale and implementation details of AGJ. This demonstration will showcase the functionality of our reference implementation by using it to locate bugs in a framework-based enterprise application from the financial industry. Using the domain of transparent persistence, this demonstration will compare AGJ to the standard JDK debugger, thereby highlighting the capabilities of AGJ to cut through the morass of transparent bytecode enhancements in order to find obscure bugs.
doi:10.1145/1639950.1640027 dblp:conf/oopsla/SongT09a fatcat:oxd7f3evnbbapo63qq3lldg6am