Omniscient Debugging for Executable DSLs

Abstract : Omniscient debugging is a promising technique that relies on execution traces to enable free traversal of the states reached by a model (or program) during an execution. While a few General-Purpose Languages (GPLs) already have support for omniscient debugging, developing such a complex tool for any executable Domain Specific Language (DSL) remains a challenging and error prone task. A generic solution must: support a wide range of executable DSLs independently of the metaprogramming approaches used for implementing their semantics; be efficient for good responsiveness. Our contribution relies on a generic omniscient debugger supported by efficient generic trace management facilities. To support a wide range of executable DSLs, the debugger provides a common set of debugging facilities, and is based on a pattern to define runtime services independently of metaprogramming approaches. Results show that our debugger can be used with various executable DSLs implemented with different metaprogramming approaches. As compared to a solution that copies the model at each step, it is on average six times more efficient in memory, and at least 2.2 faster when exploring past execution states, while only slowing down the execution 1.6 times on average.
Type de document :
Article dans une revue
Journal of Systems and Software, Elsevier, 2018, 137, pp.261-288. 〈10.1016/j.jss.2017.11.025〉
Liste complète des métadonnées

Littérature citée [53 références]  Voir  Masquer  Télécharger
Contributeur : Erwan Bousse <>
Soumis le : mercredi 13 décembre 2017 - 09:29:35
Dernière modification le : jeudi 20 décembre 2018 - 01:23:32


Fichiers produits par l'(les) auteur(s)



Erwan Bousse, Dorian Leroy, Benoit Combemale, Manuel Wimmer, Benoit Baudry. Omniscient Debugging for Executable DSLs. Journal of Systems and Software, Elsevier, 2018, 137, pp.261-288. 〈10.1016/j.jss.2017.11.025〉. 〈hal-01662336〉



Consultations de la notice


Téléchargements de fichiers