WhatsApp/edb
51.2
Adequate · 2 October 2026
11.3k
lines of production code
Erlang
primary language
2
measurements over time
What this system is
This system is an Erlang debugger (EDB) that provides core debugging capabilities such as line and function breakpoints, step execution, and stack frame inspection. It extends these features with a Debug Adapter Protocol (DAP) implementation, allowing external IDEs to connect and debug Erlang nodes, including support for multi-node clusters. The project is structured as a rebar3 umbrella application and includes comprehensive test suites to verify its attachment, evaluation, and breakpoint functionalities.
Features
Introduce DAP adapter for debugging Erlang applications
Adds a new Debug Adapter Protocol (DAP) implementation to the Erlang debugger, enabling IDEs and editors to connect to and debug Erlang nodes. This includes modules for encoding/decoding DAP messages, handling standard requests (launch, attach, continue, disconnect, evaluate, breakpoints, etc.), managing session events (initialized, stopped, output, terminated), and parsing request arguments. It also introduces a configurable language module system with a default Erlang implementation to map source files to modules for breakpoint resolution.
apps/edb/src · high confidence
New rebar3 plugin to copy edb binary to test data directories
A new rebar3 plugin, \prepare\_edb\_tests\, has been added to automate test setup for the edb application. When invoked via \rebar3 prepare\_edb\_tests\, it locates the compiled \edb\ binary and copies it into the \\_data\ subdirectories of all discovered test suites within the \test\ directory, ensuring the binary is available for test execution.
_rebar3\_plugins/prepare\_edb\tests · high confidence
Removals
Removal of the Erlang debugger (edb) and DAP adapter
The \src\ directory's Erlang debugger (\edb\) and its Debug Adapter Protocol (DAP) implementation (\edb\_dap\) have been completely removed. This eliminates the ability to attach to Erlang nodes, set breakpoints, step through code, and inspect stack frames via the DAP interface.
src · high confidence
Behavioural changes
Add rebar3 plugin to handle edb test dependencies
The edb application now includes a rebar.config file that registers pre-build hooks for Common Test (ct). Specifically, it configures the system to escriptize tests and run a custom prepare\_edb\_tests step before test execution, ensuring that test dependencies are correctly handled during the build process.
apps/edb · high confidence
Restructure into umbrella apps and remove OTP submodule
The project is restructured into an umbrella layout with separate \edb\ and \edb\core\ applications, updating the \rebar.config\ to reflect the new \apps/\\ directory structure for formatting and dependencies. The custom Erlang/OTP fork, previously managed as a git submodule, is removed, and the minimum required OTP version is raised to 27. Additionally, the \warn\_export\_vars\ compiler warning is disabled, the \assert\ testing library is added to the test profile, and documentation generation is switched to \ex\_doc\ with the DAP guide included as an extra.
(repo-wide) · high confidence
edb\_core: adds function breakpoints, multi-node support, and restructures project layout
The edb debugger now supports function-level breakpoints in addition to existing line breakpoints, allowing users to pause execution when specific module/function/arity combinations are called. The debugger also supports multi-node debugging, enabling reverse attachments to child nodes and managing breakpoints across a cluster. Internally, the project has been restructured into a standard rebar3 umbrella layout (files moved to apps/edb\_core/src), and the bootstrap process now allows injecting custom code into child nodes via ERL\_AFLAGS.
_apps/edb\core/src · high confidence
Test coverage
Added comprehensive Common Test suites for the EDB DAP adapter; Added comprehensive test suite for EDB debugger core; Removal of legacy EDB and DAP test suites.
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 51 → 51 (+0.3)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 93 → 93 (+0.0)
- Architecture 100 → 96 (-4.1)
- Maturity 59 → 59 (+0.1)
- Readiness 64 → 60 (-4.6)
- Security 60 → 70 (+10.0)
- Event-Driven 35 → 35 (+0.0)
Resolved (3)
- Coverage not measured — no coverage collector is wired up
- Hotspot: apps/edb_core/src/edb_server.erl (apps/edb_core/src/edb_server.erl)
- Hotspot: apps/edb_core/src/edb_server_break.erl (apps/edb_core/src/edb_server_break.erl)
New (3)
- Dependency hygiene PARTLY measured — rebar3 pinning read, dependency currency not (no rebar.lock-pinned Hex declaration to grade)
- No ADRs found
- Off the main sequence: edb_core
Changes since last survey
- 1 commits — 1 feature/other, 0 fixes
By area
- (root) — 1 commit
Notable commits
- change: Pin assert ~> 2.0 in the open-source test profile (#24)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
WhatsApp/edb was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 5eaf653de8fa453cbbde8311154fb7eae5d7198c — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.