getClosureData dereferences some additional pointers in the ConstrClosure case to work out the pkg/modl/name combination. This results in garbage when used out-of-process as the pointers point to uninitialised memory.
The correct fix is probably to change ghc-heap so that it doesn't eagerly decode these fields but returns pointers to them.
It seems like the only decent way to implement this is to add another type parameter but I'm not that eager to do that. Perhaps because we have DWARF information it's ok to not have this.
getClosureData
dereferences some additional pointers in theConstrClosure
case to work out thepkg/modl/name
combination. This results in garbage when used out-of-process as the pointers point to uninitialised memory.The correct fix is probably to change
ghc-heap
so that it doesn't eagerly decode these fields but returns pointers to them.