Changelog for haskell-debugger-0.13.2.0
Revision history for haskell-debugger
0.13.2.0 -- 2026-09-17
- Added binary distributions intended for on Linux and macOS.
- Made debug session survive errors in non-essential operations.
- Added support to visualize variables bound in earlier stack frames.
- Improved reporting of session loading and other errors.
- Switched to loading all components from cradle, from
hie-bios-0.20+ - Added support for Stack annotations with optional source locations.
- Added support for GHC 10.1
- Removed outdated 'install using stack' README section.
- Fixed unintended loudness of
hdb server -v0. - Restricted debug console to inner scope of module stopped at.
0.13.1.0 -- 2026-04-28
- Fix critical bug which caused certain breakpoints to be overwritten by or confused with breakpoints from separate modules.
- Fix: Make forcing a thunk invalidate all threads
0.13.0.0 -- 2026-04-24
Features:
- Launch the external-interpreter directly in User's Terminal. That is, VSCode
terminal will run the external interpreter, which is evaluating the debuggee
directly, directly (rather than a proxy program).
- When using the internal interpreter, falls back to running
hdb proxy.
- When using the internal interpreter, falls back to running
- Add support for
import Modulestatements at the debug REPL. - Add logpoints support.
- Support for nightly GHC 9.15, leveraging external interpreter commands.
Bug fixes:
- Fix: Import failed where depended-upon package was incorrectly considered hidden
- Fix: Respond cleanly to DAP client with ErrorResponse on exceptions, rather than crashing the session.
- Fix: terminate/disconnect/terminated wasn't following DAP properly, resulting in premature exiting crashes
- Fix: Debugger.View.Class cannot be found in certain multi-repl sessions
- Fix: Make custom DebugViews instances work for
newtypes - Fix: Display more unevaluatable closures as
<fn>rather than as thunks_ - Fix: Inherit the language extensions at any given breakpoint source to the REPL
- Fix: Don't print certain evaluation results in duplicate
- Fix: Set scopeExpensive=true for Module and Global
Additionally, the debugger internals and the testsuite were considerably refactored and improved, paving the way for better, faster changes, with more confidence.
0.12.3.0 -- 2026-03-11
- Updated extension logo to be Haskell's logo
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:
- Using GHC 9.14 as the boot compiler
- 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-viewversions to0.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, version0.2.0.0with- This release brings the
ProgramDSL 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
DebugViewinstance for[a]for an example of a more complex instance.
- See the
haskell-debugger-0.11.0.0is only compatible withhaskell-debugger-view-0.2.0.0and will abort if unsupportedhaskell-debugger-viewversions are found in the dependencies closure
- This release brings the
- Bump
dapminimum version to0.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,MapandIntMap. - The user can add custom visualizations for the desired types by
implementing an instance for
DebugViewfromhaskell-debugger-view- At runtime,
hdbwill pick up theDebugViewinstances in scope and use them when possible.
- At runtime,
- 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
showon the value to display. - This makes it possible to have structured results in the "Watch" pane.
- To show the whole value inline one can recover the previous behavior by
calling
- 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
runInTerminalto 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
entryFileand 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
--versionflag
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
- In fact, this was only caused by not building with
0.6.0.0 -- 2025-09-10
- Improve unit handling and fix running when
mainfunctions 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 cliinteractive 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: ...incabal.projectto fetch the right GHC version - Rename package from
ghc-debuggertohaskell-debugger, andghc-debug-adaptertohdb, to be consistent with other tools and ecosystems and to avoid ambiguity withghc-debug(program heap analysis library and tool) - Use cache directories for
hdbto 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.