Skip to content
  • Simon Marlow's avatar
    Re-working of the breakpoint support · cdce6477
    Simon Marlow authored
    This is the result of Bernie Pope's internship work at MSR Cambridge,
    with some subsequent improvements by me.  The main plan was to
    
     (a) Reduce the overhead for breakpoints, so we could enable 
         the feature by default without incurrent a significant penalty
     (b) Scatter more breakpoint sites throughout the code
    
    Currently we can set a breakpoint on almost any subexpression, and the
    overhead is around 1.5x slower than normal GHCi.  I hope to be able to
    get this down further and/or allow breakpoints to be turned off.
    
    This patch also fixes up :print following the recent changes to
    constructor info tables.  (most of the :print tests now pass)
    
    We now support single-stepping, which just enables all breakpoints.
    
      :step <expr>     executes <expr> with single-stepping turned on
      :step            single-steps from the current breakpoint
    
    The mechanism is quite different to the previous implementation.  We
    share code with the HPC (haskell program coverage) implementati...
    cdce6477