Saturday, October 24, 2026 4,350 lists 78,096 records on file
List your app or device

  1. Home
  2. In-Memory Databases
  3. Erlang Debugger

Erlang Debugger

What it is

Erlang Debugger is a free, open-source graphical interface for debugging and testing Erlang programs on Linux, macOS, and Windows. It supports line, conditional, and function breakpoints, and lets you attach to a process to step, continue, finish, skip, or stop execution. The Attach Process window shows variable bindings and permits editing values when they can be represented in the running system. A Monitor window lists interpreted modules and process information. Debugger can record interpreted calls for stack navigation, although tail-call recording uses more memory and can slow programs with many tail-recursive calls. Modules need debug information, such as that produced with `erlc +debug_info`. Global mode can interpret code on known remote nodes and show their processes. Interpreted code runs slower than compiled code, each debugged process adds a meta process, and timer behavior can change during debugging. Code replacement does not apply to debugged processes.

For and against

For

  • Free and open-source
  • Supports Linux, macOS, and Windows
  • Line, conditional, and function breakpoints
  • Remote-node debugging through global mode
  • Process stepping and variable inspection

Against

  • Requires modules built with debug information
  • Interpreted code runs slower
  • Each debugged process adds a meta process
  • Timers may behave differently while debugging

The verdict

Erlang Debugger provides process controls, breakpoints, inspection, and remote-node support for Erlang programs. Its runtime overhead and debugging-specific behavior should be considered before using it on timing-sensitive or performance-sensitive work.

Who it suits

It suits Erlang developers familiar with the language who need local or remote process inspection on Linux, macOS, or Windows. It is also relevant when conditional breakpoints and editable variable bindings are useful.

On the record

Breakpoints
It supports line, conditional, and function breakpoints; when a process reaches a breakpoint, it pauses for commands such as step, skip, or continue.erlang.org · read 9 Oct 2026
Code loading
Reinterpreting a module does not change the code version used by processes already executing the previous interpreted version.erlang.org · read 9 Oct 2026
Code replacement limitation
Code replacement does not work for debugged processes because they use code stored when their modules were interpreted.erlang.org · read 8 Oct 2026
Distribution
The Erlang/OTP download page offers source builds, Windows installers, and package-manager instructions for macOS and several Linux distributions.erlang.org · read 8 Oct 2026
Inspect variables
The Attach Process window displays variable bindings and allows editing values, with some runtime values not editable unless representable in the running system.erlang.org · read 8 Oct 2026
Intended users
The introduction assumes readers are familiar with the Erlang programming language.erlang.org · read 8 Oct 2026
License
Erlang/OTP has been released under Apache License 2.0 since OTP 18.0.beta.erlang.org · read 9 Oct 2026
Maintainer
The Erlang/OTP unit at Ericsson is the main developer and maintainer of Erlang/OTP.beta.erlang.org · read 9 Oct 2026
Performance
Interpreted code runs slower than regularly compiled modules, and Debugger creates an additional meta process for each debugged process.erlang.org · read 8 Oct 2026
Performance limit
Interpreted code runs more slowly than regularly compiled code, and each debugged process adds a meta process.erlang.org · read 9 Oct 2026
Prerequisite
Modules to be debugged must be compiled with debug information enabled.erlang.org · read 9 Oct 2026
Process controls
When attached to a process, users can step, continue, finish, skip, or stop its execution.erlang.org · read 8 Oct 2026
Process inspection
Attaching to a process lets the user control execution, inspect variable values, and set breakpoints.erlang.org · read 9 Oct 2026
Process monitoring
The Monitor window displays interpreted modules and information about processes executing interpreted code.erlang.org · read 9 Oct 2026
Purpose
Erlang Debugger is a graphical interface for the Erlang interpreter used to debug and test Erlang programs.erlang.org · read 9 Oct 2026
Remote nodes
Global mode interprets code on all known Erlang nodes and displays eligible processes from other nodes for attachment.erlang.org · read 9 Oct 2026
Stack trace
Debugger can record interpreted function calls for stack navigation, and recording tail calls uses more memory and slows execution when there are many tail-recursive calls.erlang.org · read 8 Oct 2026
Supported interpreter dependencies
The interpreter depends on the Kernel, STDLIB, and WX applications, and modules in those applications or Debugger cannot be interpreted.erlang.org · read 9 Oct 2026

Alternatives to Erlang Debugger

Every alternative, ranked