Publication | Open Access
A Debugger for Standard ML
64
Citations
29
References
1995
Year
EngineeringCompiler TechnologySoftware SystemsSoftware EngineeringHardware SystemsSoftware AnalysisBinary AnalysisFuzzingCompilersProgramming LanguagesCompiler SupportComputer EngineeringComputer ScienceDebuggerStatic Program AnalysisOperating SystemsProgram AnalysisSoftware TestingReverse ExecutionStandard MlNew Jersey CompilerSystem SoftwareData Modeling
Abstract We have built a portable, instrumentation-based, replay debugger for the Standard ML of New Jersey compiler. Traditional ‘source-level’ debuggers for compiled languages actually operate at machine level, which makes them complex, difficult to port, and intolerant of compiler optimization. For secure languages like ML, however, debugging support can be provided without reference to the underlying machine, by adding instrumentation to program source code before compilation. Because instrumented code is (almost) ordinary source, it can be processed by the ordinary compiler. Our debugger is thus independent from the underlying hardware and runtime system, and from the optimization strategies used by the compiler. The debugger also provides reverse execution, both as a user feature and an internal mechanism. Reverse execution is implemented using a checkpoint and replay system; checkpoints are represented primarily by first-class continuations.
| Year | Citations | |
|---|---|---|
Page 1
Page 1