Publication | Open Access
Debugging standard ML without reverse engineering
70
Citations
19
References
1990
Year
Unknown Venue
EngineeringCompiler TechnologyStandard Ml CompilerVerificationComputer ArchitectureSoftware EngineeringReverse EngineeringSoftware AnalysisFormal VerificationHardware SecurityCompilersDynamic CompilationSource CodeCompiler SupportEfficient Replay DebuggerComputer EngineeringComputer ScienceDebuggerStatic Program AnalysisProgram AnalysisSoftware TestingFormal MethodsStandard Ml
We have built a novel and efficient replay debugger for our Standard ML compiler. Debugging facilities are provided by instrumenting the user's source code; this approach, made feasible by ML's safety property, is machine-independent and back-end independent. Replay is practical because ML is normally used functionally, and our compiler uses continuation-passing style; thus most of the program's state can be checkpointed quickly and compactly using call-with-current-continuation. Together, instrumentation and replay support a simple and elegant debugger featuring full variable display, polymorphic type resolution, stack trace-back, breakpointing, and reverse execution, even though our compiler is very highly optimizing and has no run-time stack.
| Year | Citations | |
|---|---|---|
Page 1
Page 1