Lambda the Ultimate

inactiveTopic Backwards Debugging
started 12/14/2001; 1:27:04 PM - last post 12/18/2001; 3:46:15 AM
Ehud Lamm - Backwards Debugging  blueArrow
12/14/2001; 1:27:04 PM (reads: 1976, responses: 7)
Backwards Debugging
Faced with an incorrect value in a program variable, we must trace back to find where the error stems from. This can be done by using a debugger and placing breakpoints, or by adding output statements to help trace program execution.

This paper describes another approach: tools that help capture the evolution of values, giving the programmer the ability to trace back through the ancesttry of any particular value.

The paper concentrates on applying this approach in the context of lazy functional programming, but I think that in general it is also applicable to imperative programming.


Posted to Software-Eng by Ehud Lamm on 12/14/01; 1:29:16 PM

pixel - Re: Backwards Debugging  blueArrow
12/14/2001; 1:37:42 PM (reads: 1160, responses: 1)
OCaml has backwards debugging. It's wonderful. It is one of the feature i'm most lacking when not using OCaml

Ehud Lamm - Re: Backwards Debugging  blueArrow
12/14/2001; 3:05:08 PM (reads: 1205, responses: 0)
What one would like to be able to do is to find the point in the program where the value is bad, fix it, snd rerun the rest of the program to check if the problem is fixed.

Does OCaml provide for this kind of use? (BTW: Any link for a description of this feature?)

pixel - Re: Backwards Debugging  blueArrow
12/14/2001; 5:07:03 PM (reads: 1143, responses: 0)
I don't think ocaml gives the ability to modify value in the debugger

For OCaml's implementation of backward debugging, have a look at this from Xavier Leroy

Paul Snively - Re: Backwards Debugging  blueArrow
12/14/2001; 11:27:48 PM (reads: 1133, responses: 1)
Ehud Lamm: What one would like to be able to do is to find the point in the program where the value is bad, fix it, snd rerun the rest of the program to check if the problem is fixed.

Prograph has this see <http://www.cs.washington.edu/homes/jpower/vpl/scaling/debug.html>. In general, this is extremely easy to provide in dataflow programming languages.

Ehud Lamm - Re: Backwards Debugging  blueArrow
12/15/2001; 11:01:28 AM (reads: 1165, responses: 0)
Thanks. Any good introduction to dataflow languages?

Paul Snively - Re: Backwards Debugging  blueArrow
12/15/2001; 2:44:50 PM (reads: 1109, responses: 0)
I can only recommend looking at Prograph itself:

<http://www.pictorius.com/prograph.html>

Ehud Lamm - Re: Backwards Debugging  blueArrow
12/18/2001; 3:46:15 AM (reads: 1071, responses: 0)
It seems like there was a Lucid book somewhere on the Net, but I can't seem to locate it.