Changes between Version 55 and Version 56 of NewGhciDebugger


Ignore:
Timestamp:
Apr 9, 2007 3:32:31 PM (7 years ago)
Author:
guest
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • NewGhciDebugger

    v55 v56  
    210210== Known problems in the debugger == 
    211211 
    212 The following list describes issues where the debugger does not behave in the ideal way: 
    213  * Computations which fork concurrent threads can use breakpoints, but sometimes a thread gets blocked indefinitely. Consider this program: 
     212=== Orphaned threads === 
     213 
     214Computations which fork concurrent threads can use breakpoints, but sometimes a thread gets blocked indefinitely. Consider this program: 
    214215{{{ 
    215216   main = do 
     
    223224 
    224225Suppose we have a breakpoint set somewhere inside the computation done by `foo`, but there are no breakpoints in the computation done by `bar`. When we run this program in GHCi the following things happen: 
    225     - `foo` gets forked and `foo` and `bar` begin their work [[BR]] 
    226     - `bar` completes its job and we return to the GHCi prompt (uh oh!) [[BR]] 
    227     - `foo` eventually hits a breakpoint and attempts to return to the command line, but it can't because we are already there (in the previous step). 
     226 * `foo` gets forked and `foo` and `bar` begin their work [[BR]] 
     227 * `bar` completes its job and we return to the GHCi prompt (uh oh!) [[BR]] 
     228 * `foo` eventually hits a breakpoint and attempts to return to the command line, but it can't because we are already there (in the previous step). 
    228229 
    229230Now the foo thread is blocked, so we can't witness the breakpoint. 
    230231 
    231  * foober 
    232232 
    233233----