Mercury: Properties and Design of a Remote Debugging Solution using Reflection.

Nick Papoulias, Noury Bouraqadi, Luc Fabresse, Sté́phane Ducasse, Marcus Denker · The Journal of Object Technology · 2015

Remote debugging facilities are a technical necessity for devices that lack appropriate input/output interfaces (display, keyboard, mouse) for programming (e.g., smartphones, mobile robots) or are simply unreachable for local development (e.g., cloud-servers).Yet remote debugging solutions can prove awkward to use due to re-deployments.Empirical studies show us that on average 10.5 minutes per coding hour (over five 40-hour work weeks per year) are spent for re-deploying applications (including re-deployments during debugging).Moreover current solutions lack facilities that would otherwise be available in a local setting because it is difficult to reproduce them remotely.Our work identifies three desirable properties that a remote debugging solution should exhibit, namely: run-time evolution, semantic instrumentation and adaptable distribution.Given these properties we propose and validate Mercury, a remote debugging model based on reflection.Mercury supports run-time evolution through a causally connected remote meta-level, semantic instrumentation through the reification of the underlying execution environment and adaptable distribution through a modular architecture of the debugging middleware.

Read the paper · More papers on PaperTik