The anti-goldilocks debugger
Myoungkyu Song, Eli Tilevich
Abstract
Myoungkyu Song, Eli Tilevich
Abstract
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 programs, without the distraction of the bytecode-level enhancements obfuscating the program's source code. AGJ executes a structurally enhanced 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.
OpenAlex reports 1 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
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 programs, without the distraction of the bytecode-level enhancements obfuscating the program's source code. AGJ executes a structurally enhanced 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.
Key concepts: Debugger, Bytecode, Debugging, Computer science, Programming language, Goldilocks principle, Programmer, Undo