Building Debuggers and Other Tools: We Can “Have it All” (Position Paper 2015)

Abstract:
Software development tools that “instrument” running programs, notably debuggers, are presumed to demand difficult tradeoffs among performance, functionality, implementation complexity, and user convenience. A fundamental change in our thinking about such tools makes that presumption obsolete.

By building instrumentation directly into the core of a high-performance language implementation framework, tool support can be always on, with confidence that optimization will apply uniformly to instrumentation and result in near zero overhead. Tools can be always available (and fast), not only for end user programmers, but also for language implementors throughout development.


Michael Van De Vanter, "Building Debuggers and Other Tools: We Can “Have it All”" , The 10th Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop (ICOOOLPS 2015), Prague, Czech Republic, July 6 2015 doi:10.1145/2843915.2843917 (PDF).