From b35dd61361a2d2deb98b90c24a668e0310a989b5 Mon Sep 17 00:00:00 2001 From: Zubin Duggal <zubin@cmi.ac.in> Date: Thu, 11 Jan 2024 15:48:13 +0530 Subject: [PATCH] GHCi: Lookup breakpoint CCs in the correct module We need to look up breakpoint CCs in the module that the breakpoint points to, and not the current module. Fixes #24327 --- compiler/GHC/StgToByteCode.hs | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/compiler/GHC/StgToByteCode.hs b/compiler/GHC/StgToByteCode.hs index 35a688107d9d..22130d3a47a3 100644 --- a/compiler/GHC/StgToByteCode.hs +++ b/compiler/GHC/StgToByteCode.hs @@ -86,7 +86,6 @@ import qualified Data.Map as Map import qualified Data.IntMap as IntMap import qualified GHC.Data.FiniteMap as Map import Data.Ord -import GHC.Stack.CCS import Data.Either ( partitionEithers ) import GHC.Stg.Syntax @@ -391,8 +390,7 @@ schemeER_wrk d p (StgTick (Breakpoint tick_ty tick_no fvs mod) rhs) = do current_mod_breaks <- getCurrentModBreaks case break_info hsc_env mod current_mod current_mod_breaks of Nothing -> pure code - Just ModBreaks {modBreaks_flags = breaks, modBreaks_module = mod_ptr} -> do - cc_arr <- getCCArray + Just ModBreaks {modBreaks_flags = breaks, modBreaks_module = mod_ptr, modBreaks_ccs = cc_arr} -> do platform <- profilePlatform <$> getProfile let idOffSets = getVarOffSets platform d p fvs ty_vars = tyCoVarsOfTypesWellScoped (tick_ty:map idType fvs) @@ -2260,12 +2258,6 @@ getLabelsBc n = BcM $ \st -> let ctr = nextlabel st in return (st{nextlabel = ctr+n}, coerce [ctr .. ctr+n-1]) -getCCArray :: BcM (Array BreakIndex (RemotePtr CostCentre)) -getCCArray = BcM $ \st -> - let breaks = expectJust "GHC.StgToByteCode.getCCArray" $ modBreaks st in - return (st, modBreaks_ccs breaks) - - newBreakInfo :: BreakIndex -> CgBreakInfo -> BcM () newBreakInfo ix info = BcM $ \st -> return (st{breakInfo = IntMap.insert ix info (breakInfo st)}, ()) -- GitLab