Data con names in the debugger

Andy Gill andy at galois.com
Tue Dec 19 02:18:29 EST 2006


To understand, this functionality is only available under GHCi built  
code?

We need a wiki table, summarizing the various options and ways... Ahh  
we do have one,
http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Config

Can someone that knows what's what add infomation about the debugger  
options
and flags used inside the RTS? Thanks.

AndyG

On Dec 18, 2006, at 4:14 AM, Simon Marlow wrote:

> Simon Peyton-Jones wrote:
>
>> I saw that Ian committed your patches -- great!
>> Concerning the recovery of DataCon names, you write "The closure  
>> viewer
>> obtains the heap address of a Haskell value, find out the address  
>> of its
>> associated info table, and trace back to the DataCon?  
>> corresponding to this
>> info table. This is possible because the ghc runtime allocates a  
>> static info
>> table for each and every datacon, so all we have to do is extend  
>> the linker
>> with a dictionary relating the static info table addresses to a  
>> DataCon?
>> name. Moreover, the ghci linker can load interpreted code  
>> containing new data
>> or newtype declarations. So the dynamic linker code is extended in  
>> the same
>> way."
>> Isn't there a simpler way to do this: just include the DataCon  
>> name in the
>> info table of the data con.  Of course that makes every  
>> (debuggable) binary a
>> bit bigger, but so does all the breakpoint stuff.
>
> Maybe.  Doing this just for datacons wouldn't be so bad in terms of  
> bloat, and it'll be necessary anyway if we're using the systems  
> dynamic linker rather than the RTS linker, which is the case when  
> using shared libraries.  The system dynamic linker can't in general  
> map addresses back to symbol names.
>
> Pepe: while browsing the code, I noticed you're using an  
> association list for the AddressEnv - it would be better to use a  
> FiniteMap here (or maybe even a UniqFM).
>
> Cheers,
> 	Simon
>
> _______________________________________________
> Cvs-ghc mailing list
> Cvs-ghc at haskell.org
> http://www.haskell.org/mailman/listinfo/cvs-ghc



More information about the Cvs-ghc mailing list