Data con names in the debugger
simonpj at microsoft.com
Mon Dec 18 03:42:59 EST 2006
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.
More information about the Cvs-ghc