https://github.com/simonrw/dap-gui
https://github.com/simonrw/dap-gui
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/simonrw/dap-gui
- Owner: simonrw
- Created: 2023-07-05T16:20:14.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2026-02-07T22:29:09.000Z (5 months ago)
- Last Synced: 2026-02-08T05:01:01.949Z (5 months ago)
- Language: HTML
- Size: 6.92 MB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DAP GUI
[](https://github.com/simonrw/dap-gui/actions/workflows/test.yml)
Very early prototype of a general purpose GUI debugger based on the [DAP][dap] protocol and [egui]([url](https://github.com/emilk/egui)).
https://github.com/simonrw/dap-gui/assets/59756/a31d6a97-431f-48b7-a051-baac3ca9b167
## Motivation
This repository exists because I do not like any of the debuggers I (currently) use day to day. I have tried:
* pycharm
* vs code
* neovim dap
They do not feel right to me.
My hope with this project is to create a general purpose GUI on top of the [DAP][dap] protocol that I like to use.
## Features
* fast
* stable
* TBD
## Internals
WIP
### Code layout and architecture
* `transport` crate:
* serialisation and deserialisation of wire protocol
* send messages with and without responses
* publish received events
* `debugger` crate:
* high level controls like `continue`
* breakpoint management
* initialisation of debugger state
* `server` crate:
* abstraction over running DAP servers
* `pcaplog` crate:
* print messages from pcap(ng) captures (prototype)
* `gui` crate:
* main GUI implementation using `egui`/`eframe`
* `state` crate:
* handles cross-session state persistence
* `launch_configuration` crate:
* represents different launch configration options, e.g. `vscode` `launch.json` files
### States and transitions
The diagram below represents the different state transitions used by the [`debugger::Debugger`](./debugger/src/debugger.rs) type.
```mermaid
---
title: Debugger states
---
stateDiagram-v2
[*] --> Initialized: [1]
Initialized --> Running: [2]
Running --> Paused: [2]
Paused --> Running: [3]
Paused --> ScopeChange: [4]
ScopeChange --> Paused
Running --> Terminated: [5]
Terminated --> [*]
```
[dap]: https://microsoft.github.io/debug-adapter-protocol/