1. 16 Feb, 2007 1 commit
  2. 07 Feb, 2007 1 commit
    • mnislaih's avatar
      Optimize dynamic breakpoints for speed · 9004e883
      mnislaih authored
      Made a bit faster the test which gets done every time a running program hits a dynamic breakpoint. I moved the bounds checking inside a DEBUG pragma and replaced (IArray.!) for unsafeAt
  3. 21 Jan, 2007 2 commits
    • mnislaih's avatar
      Improve presentation of :print output · 69346489
      mnislaih authored
    • mnislaih's avatar
      Refactoring of Debugger.hs · 01314483
      mnislaih authored
      A big motivation to start with it was getting several independently useful functions out of the Ghci monad and into the IO monad instead. Working in debugger integration for Emacs via the ghc-api is helping me to improve reusability..
            While I was there, I tried to make the code less tangled, easier to understand, switched from implicit Exceptions to explicit Eithers in the bkptTable code, etc.
  4. 20 Jan, 2007 1 commit
  5. 11 Jan, 2007 2 commits
  6. 05 Jan, 2007 3 commits
  7. 03 Jan, 2007 1 commit
  8. 18 Dec, 2006 1 commit
  9. 11 Dec, 2006 1 commit
  10. 10 Dec, 2006 2 commits
    • mnislaih's avatar
      Closure inspection in GHCi · 121da25a
      mnislaih authored
      The :print, :sprint and :force commands for GHCi.
      This set of commands allows inspection of heap structures of the bindings in the interactive environment.
      This is useful to observe lazyness and specially to inspect things with undespecified polymorphic types, as happens often in breakpoints.
    • mnislaih's avatar
      Dynamic breakpoints in GHCi · 8bc615fd
      mnislaih authored
      This patch adds dynamic breakpoints to GHCi
      There is a new ':breakpoint' command to manage breakpoints.
      GHCi simply uses the breakpoint api functions in ghc-api to install itself as a client.
      The mechanism used by GHCi to keep track of enabled breakpoints is a simple table.
      When a breakpoint is hit, a new interactive session is launched and the bindings in the breakpoint are injected. Some commands are disabled in this sub session