Changes between Version 85 and Version 86 of NewGhciDebugger


Ignore:
Timestamp:
Apr 10, 2007 4:51:11 PM (8 years ago)
Author:
guest
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • NewGhciDebugger

    v85 v86  
    451451 * When the user decides to continue execution after a breakpoint the GHCi thread fills in the `breakMVar`, thus waking up the expression thread, and then the GHCi thread waits on the `statusMVar` again. The whole process continues until eventually the expression thread completes its evaluation. 
    452452 
     453Now we turn our attention to the `RunBreak` constructor: 
     454{{{ 
     455   RunBreak :: forall a . a -> ThreadId -> BreakInfo -> IO RunResult -> RunResult 
     456}}} 
     457The arguments of `RunBreak` are as follows, in order from left to right: 
     458 1. a heap closure, specifically something which represents a chunk of the Stg stack (an `StgAP_STACK`, to be precise). It is inside this object that we find the values of the local variables of the breakpoint. We use a type variable here for convenience.  
     459 2. a thread ID of the expression thread. XXX Actually, we no longer use this value for anything, and it can probably be removed.  
     460 3. a `BreakInfo`, which stores information about the breakpoint, such as the module name, the tick number, and the stack offsets and identifiers of the local variables.  
     461 4. an IO action to execute when we resume execution after hitting the breakpoint. This contains code to fill and wait on the `MVars` mentioned earlier. 
     462 
     463 
    453464=== Inspecting values === 
    454465