diff options
-rw-r--r-- | libraries/ghci/GHCi/Run.hs | 7 | ||||
-rw-r--r-- | rts/Interpreter.c | 10 |
2 files changed, 11 insertions, 6 deletions
diff --git a/libraries/ghci/GHCi/Run.hs b/libraries/ghci/GHCi/Run.hs index d05877579a..2988ec202a 100644 --- a/libraries/ghci/GHCi/Run.hs +++ b/libraries/ghci/GHCi/Run.hs @@ -298,7 +298,12 @@ setStepFlag = poke stepFlag 1 resetStepFlag :: IO () resetStepFlag = poke stepFlag 0 -type BreakpointCallback = Int# -> Int# -> Bool -> HValue -> IO () +type BreakpointCallback + = Int# -- the breakpoint index + -> Int# -- the module uniq + -> Bool -- exception? + -> HValue -- the AP_STACK, or exception + -> IO () foreign import ccall "&rts_breakpoint_io_action" breakPointIOAction :: Ptr (StablePtr BreakpointCallback) diff --git a/rts/Interpreter.c b/rts/Interpreter.c index 0e80593d07..9eb6560a8c 100644 --- a/rts/Interpreter.c +++ b/rts/Interpreter.c @@ -289,7 +289,7 @@ static StgWord app_ptrs_itbl[] = { }; HsStablePtr rts_breakpoint_io_action; // points to the IO action which is executed on a breakpoint - // it is set in main/GHC.hs:runStmt + // it is set in main/GHC.hs:runStmt Capability * interpretBCO (Capability* cap) @@ -1098,10 +1098,10 @@ run_BCO: // Arrange the stack to call the breakpoint IO action, and // continue execution of this BCO when the IO action returns. // - // ioAction :: Bool -- exception? + // ioAction :: Int# -- the breakpoint index + // -> Int# -- the module uniq + // -> Bool -- exception? // -> HValue -- the AP_STACK, or exception - // -> Int -- the breakpoint index (arg2) - // -> Int -- the module uniq (arg3) // -> IO () // ioAction = (StgClosure *) deRefStablePtr ( @@ -1111,7 +1111,7 @@ run_BCO: SpW(10) = (W_)obj; SpW(9) = (W_)&stg_apply_interp_info; SpW(8) = (W_)new_aps; - SpW(7) = (W_)False_closure; // True <=> a breakpoint + SpW(7) = (W_)False_closure; // True <=> an exception SpW(6) = (W_)&stg_ap_ppv_info; SpW(5) = (W_)BCO_LIT(arg3_module_uniq); SpW(4) = (W_)&stg_ap_n_info; |