Very early prototype of a general purpose GUI debugger based on the DAP protocol and egui.
recording.mp4
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 protocol that I like to use.
- fast
- stable
- TBD
WIP
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
- high level controls like
server
crate:- abstraction over running DAP servers
pcaplog
crate:- print messages from pcap(ng) captures (prototype)
gui
crate:- main GUI implementation using
egui
/eframe
- main GUI implementation using
state
crate:- handles cross-session state persistence
launch_configuration
crate:- represents different launch configration options, e.g.
vscode
launch.json
files
- represents different launch configration options, e.g.
The diagram below represents the different state transitions used by the debugger::Debugger
type.
---
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 --> [*]