Revision history for haskell-debugger
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
Terms 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
mains 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.