Debuggable Concurrency Extensions for Standard ML

Report ID: TR-352-91
Author: Tolmach, Andrew P. / Appel, Andrew W.
Date: 1991-10-00
Pages: 13
Download Formats: |PDF|
Abstract:

We are developing an interactive debugger with reverse execution for the language Standard ML extended to include concurrent threads in the style of Modula-2+. Our debugging approach is based on automatic instrumentation in the source language of the user's source code; this makes the debugger completely independent of the compiler back-end, run-time system, and target hardware. The debugger operates entirely inside the concurrency model and has no special concurrency privileges. In this paper, we consider some of the challenges of debugging a non-deterministic concurrent symbolic language "in itself." Issues considered include logging non-deterministic activity, obtaining more secure semantics for our concurrency primitives, controlling distributed computations, and defining suitable time models. We conclude by suggesting an alternative simulation-based approach to dealing with non-determinism.

This technical report has been published as
Debuggable concurrency extensions for Standard ML. Andrew P. Tolmach and Andrew W. Appel, Proc. ACM/ONR Workshop on Parallel and Distributed Debugging, May 1991 (ACM/SIGPLAN Notices, Dec. 1991), pp. 115-127.