
On Sun, 2011-08-28 at 17:47 +0100, Thomas Schilling wrote:
I don't think you can link GHCi with binaries compiled in profiling mode. You'll have to build an executable.
Okay... sorry to be obtuse, but what exactly does this mean? I'm not using GHCi at all: I *am* in an executable built with profiling info. I'm doing this: dflags <- GHC.getSessionDynFlags let dflags' = dflags { GHC.ghcMode = GHC.CompManager, GHC.ghcLink = GHC.LinkInMemory, GHC.hscTarget = GHC.HscAsm, GHC.optLevel = 2, GHC.safeHaskell = GHC.Sf_Safe, GHC.packageFlags = [GHC.TrustPackage "gloss" ], GHC.log_action = addErrorTo codeErrors } GHC.setSessionDynFlags dflags' target <- GHC.guessTarget filename Nothing GHC.setTargets [target] r <- fmap GHC.succeeded (GHC.load GHC.LoadAllTargets) and then if r is true: mods <- GHC.getModuleGraph let mainMod = GHC.ms_mod (head mods) Just mi <- GHC.getModuleInfo mainMod let tyThings = GHC.modInfoTyThings mi let var = chooseTopLevel varname tyThings session <- GHC.getSession v <- GHC.liftIO $ GHC.getHValue session (GHC.varName var) return (unsafeCoerce# v) Here, I know that chooseTopLevel is working, but the getHValue part only works without profiling. So is this still hopeless, or do I just need to find the right additional flags to add to dflags'? -- Chris Smith