packages feed

haskell-debugger-0.12.2.0: CHANGELOG.md

# Revision history for haskell-debugger

## 0.12.2.0 -- 2026-03-09

* Bug fixes and improved progress reporting
* It's now possible interactively debug GHC itself! This works by simply:
    1. Using GHC 9.14 as the boot compiler
    2. Creating .vscode/launch.json in the GHC tree root with
        * `entryFile: "ghc/Main.hs"`
        * `entryArgs: "["-B${workspaceFolder}/_build/stage0/lib/", "Test.hs"]"`

## 0.12.1.0 -- 2026-02-24

* Update range of supported runtime `haskell-debugger-view` versions to `0.2.*`

## 0.12.0.0 -- 2026-02-24

* Improved exceptions support!
    * Break-on-exception breakpoints now provide source locations
    * And exception callstacks based on the ExceptionAnnotation mechanism.
* Introduced stacktraces support!
    * Stack frames decoded from interpreter frames with breakpoints are displayed
    * Stack frames decoded from IPE information available for compiled code frames too
    * Custom stack annotations will also be displayed
* Use the external interpreter by default!
    * Paves the way for separating debugger threads vs debuggee threads in multi-threaded debugging
    * Allows debuggee vs debugger output to be separated by construction
* Windows is now supported when using the external interpreter (default)
* Fixed bug where existential constraints weren't displayed in the variables pane
* Plus more bug fixes, refactors, test improvements, and documentation updates.

## 0.11.0.0 -- 2026-01-05

* Introduce but don't yet expose infrastructure for debugging multi-threaded
  programs and constructing better callstacks.
* Introduce `RemoteExpr`: A DSL for evaluation on the remote process.
    * This allows us to cache remote expressions at a much greater granularity
      which improves performance and memory usage significantly in the long term.
* Improves logging to Debug Console
* Augment `haskell-debugger-version`, version `0.2.0.0` with
    * This release brings the `Program` DSL which allows the debuggee to be
      queried from a custom instance, making it possible to implement
      visualisations which rely on e.g. evaluatedness of a term.
        * See the `DebugView` instance for `[a]` for an example of a more
          complex instance.
    * `haskell-debugger-0.11.0.0` is only compatible with
      `haskell-debugger-view-0.2.0.0` and will abort if unsupported
      `haskell-debugger-view` versions are found in the dependencies closure
* Bump `dap` minimum version to `0.3.1`
* Various fixes and code improvements

## 0.10.1.0 -- 2025-11-21

* Fixes critical bug which prevented debugger from being used with non-boot
  dependencies!

## 0.10.0.0 -- 2025-11-18

* Adds Custom Debug Visualisations!
    * The value inspection internals were refactored to always try first to use a
      custom visualization and fallback to the general-case visualization which
      mimics the heap representation of a value.
    * We ship a handful of custom visualisations for base types like `String`,
      `Int`, etc, and for types from a few core packages: `Text`, `ByteString`, `Map` and `IntMap`.
    * The user can add custom visualizations for the desired types by
      implementing an instance for `DebugView` from `haskell-debugger-view`
        * At runtime, `hdb` will pick up the `DebugView` instances in scope and use them when possible.
    * When the package dependency closure includes `haskell-debugger-view`, we
      will use that unit specifically. When it is not in the dependencies, we
      will load a built-in version in memory.
* Evaluate requests now return a structured and expandable response, akin to the variables pane
    * To show the whole value inline one can recover the previous behavior by
      calling `show` on the value to display.
    * This makes it possible to have structured results in the "Watch" pane.
* Adds support for conditional breakpoints and hit count breakpoints
* Bug fixes in variable inspection
* Bug fixes in multiple-home-units

## 0.9.0.0 -- 2025-10-13

### Main changes

* Run a proxy program with `runInTerminal` to allow stdin via the terminal process, if the client supports it.

### Bug fixes

* Fix bug where build failures were reported in a pop-up rather than stderr
* Fix crashes panicking with `findUnitIdOfEntryFile`
* Fix cli bug by use absolute entryFile path
* Fix bug caused by not canonicalizing special target and root
* Fix in variable expansion (expand `Term`s iteratively as the user expands the tree)

## 0.8.0.0 -- 2025-09-19

* Allow defaults for all settings except `entryFile` and return a proper error in that case
* Fix bug that crashed debugger when attempting to load newtype constructor closure
* Fix bug that broke displaying newtype variables
* (Vscode) Allow the debugger to be run without a launch.json file
* Don't display functions as a forceable thunk, instead just the type
* Add `--version` flag

## 0.7.0.0 -- 2025-09-10

* Fix line buffering of debuggee output (thus, stepping through a print line, will indeed print it to the console now).
    * In fact, this was only caused by not building with `--enable-executable-dynamic`

## 0.6.0.0 -- 2025-09-10

* Improve unit handling and fix running when `main` functions exist across different units
    * Add interactive home unit id
    * The entry file determines which of the `main`s to run.
* Add proper option parsing
* Add preview version of `hdb cli` interactive mode, as an alternative to DAP server
    * Experimental and incomplete
* Fix: output uncaught exceptions to stderr
* Fix: output eval completed result to console

## 0.5.0.0 -- 2025-08-26

* Compatibility with GHC 9.14
* Add support for stepping out of functions as a tech preview
* Use implicit cradle discovery to better support multiple configurations,
  mirroring HLS (and thus providing a more similar experience)
* Query the GHC runtime version via hie-bios, now honoring e.g. `with-compiler:
  ...` in `cabal.project` to fetch the right GHC version
* Rename package from `ghc-debugger` to `haskell-debugger`, and
  `ghc-debug-adapter` to `hdb`, to be consistent with other tools and
  ecosystems and to avoid ambiguity with `ghc-debug` (program heap analysis library and
  tool)
* Use cache directories for `hdb` to have faster startup times. This will only
  be enabled for compilers supporting the upcoming `.gbc` (compiled bytecode
  artifact) files.

## 0.4.0.0 -- 2025-06-27

* Add support for debugging multiple home units (MHU)

## 0.3.0.0 -- 2025-06-07

* Critical fixes for variables inspection

## 0.2.0.0 -- 2025-05-13

* Significantly improves variable inspection and expansion commands.

## 0.1.0.0 -- 2025-05-08

* First version. Released on an unsuspecting world.