# 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.