GHCi debugger status

Simon Marlow marlowsd at gmail.com
Tue Nov 25 11:00:53 EST 2008


Claus Reinke wrote:
>> No, it's a real problem.  If we retained all the variables in scope at 
>> every breakpoint, GHCi would grow a whole bunch of space leaks.  It's 
>> pretty important that adding debugging shouldn't change the space 
>> behaviour of the program.  Of course, constant factors are fine, but 
>> we're talking asymptotic changes here.
>>
>> Now perhaps it would be possible to arrange that the extra variables 
>> are only retained if they are needed by a future breakpoint, but 
>> that's tricky (conditional stubbing of variables), and :trace 
>> effectively enables all breakpoints so you get the space leaks back.
> 
> Then how about my suggestion for selectively adding lexical scope to
> breakpoints? I'd like to be able to say
> 
>    :break <loc/name> {names}
> 
> and have GHCi make the necessary changes to keep {names} available
> for inspection when it hits that breakpoint. 

The only easy way to do that is to recompile the module that contains the 
breakpoint.  To do it without recompiling is about as hard as doing what I 
suggested above, because it involves a similar mechanism (being able to 
selectively retain the values of free variables).

Cheers,
	Simon


More information about the Glasgow-haskell-users mailing list