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