Supporting Efficient and Advanced Omniscient Debugging for xDSMLs (SLE’15)
Omniscient debugging is a promising technique that relies on execution traces to enable free traversal of the states reached by a system during an execution. While some General-Purpose Languages (GPLs) already have support for omniscient debugging, developing such a complex tool for any executable Domain-Specific Modeling Language (xDSML) remains a challenging and error prone task. A solution to this problem is to define a generic omniscient debugger for all xDSMLs. However, generically supporting any xDSML both compromises the efficiency and the usability of such an approach. Our contribution relies on a partly generic omniscient debugger supported by generated domain-specific trace management facilities. Being domain-specific, these facilities are tuned to the considered xDSML for better efficiency. Usability is strengthened by providing multidimensional omniscient debugging. Results show that our approach is on average 3.0 times more efficient in memory and 5.03 more efficient in time when compared to a generic solution that copies the model at each step.
Go into the Tags of the repository, right click on the sle15 tag, and choose “Checkout”
Then, right click on the repository, do “import projects”, uncheck “Search for nested projects”, and import all projects except for the ones starting with “fr.inria.diverse.tracemm”.
Configuring and starting the evaluation
In the fr.inria.diverse.trace.benchmark project, open the fr.inria.diverse.trace.benchmark.start.BenchmarkStart class, and edit the two variables heapDumpFolder and outputFolder to set a folder where memory heap dumps can be stored, and a folder where results (ie. a csv file) are written
In the run-configuration folder of the fr.inria.diverse.trace.benchmark project, right-click on RunBenchmark.launch and choose “Run as… RunBenchmark”