Skip to content

Emacs freezes completely when calling dap-continue after dap-ui-locals was opened #844

@aalystama

Description

@aalystama

Description

Emacs freezes completely and becomes unresponsive when the following sequence occurs:

  1. Start debugging a Flutter project using dap-debug.
  2. Wait for a breakpoint to be hit (either automatically due to an unhandled exception or a manually added one).
  3. Call dap-ui-locals to inspect local variables — this works fine.
  4. Then call dap-continue
  5. Emacs instantly freezes and stops responding to any input. The only way to recover is to force quit and restart Emacs.

My Environment

  • macOS Sonoma 14.2 (Apple Silicon)
  • Emacs 30.1 (latest stable)
  • Doom Emacs 3.0.0-pre
  • I don’t have an exotic config.el. It’s almost the default Doom configuration, so I’m fairly certain this isn’t caused by a custom setup.

Additional Context: How I Narrowed It Down

Originally, I was encountering a complete Emacs freeze immediately upon hitting any breakpoint, even without interacting with the UI.

After some investigation, I discovered that the freeze was caused by DAP mode’s automatic UI configuration. My initial setup used Doom Emacs's default DAP integration, which includes auto-loading UI components like dap-ui-locals, dap-ui-sessions, tooltips, and the REPL.

To mitigate the issue, I disabled all automatic UI features by explicitly adding the following to my config.el:

(after! dap-mode
  (setq dap-auto-configure-features '()) ; disable all UI auto features
  (dap-mode 1))

This prevented Emacs from freezing immediately at breakpoints.

However, if I manually invoke dap-ui-locals during a paused session and then call dap-continue, Emacs still freezes. Even closing the dap-ui-locals window before continuing does not help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions