Skip to content
Open
Show file tree
Hide file tree
Changes from 74 commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
f064cca
feat: get pid for application
CAmi307 Mar 3, 2025
1368c4e
get process info for app
CAmi307 Mar 5, 2025
fc35b15
change hashmaps to lists and fix data update bug
CAmi307 Mar 5, 2025
b98533b
wip
CAmi307 Apr 7, 2025
c88fe64
rebase
cristian-paris Apr 7, 2025
10ea659
Replace the UUID references to a friendlier app name format
U-alb Jul 1, 2025
fdbd4e2
Replace the UUID references to a friendlier app name format
U-alb Jul 2, 2025
02cca8e
bug fixes
U-alb Jul 3, 2025
20215ad
get PID for windows
claulau001 Jul 3, 2025
c132c74
added disable functionality and improved start time format
U-alb Jul 3, 2025
6748239
fixed linux conditional compiling bug + added seconds in the start ti…
U-alb Jul 3, 2025
a999dd4
add feedback-ui for applications
claulau001 Jul 3, 2025
d782fe0
Use conn-status from backend Application struct
claulau001 Jul 3, 2025
0e2f20c
[WIP] Keep a list of stopped tasks
U-alb Jul 3, 2025
2f6dbf3
[WIP] Show dropped tasks as stopped
U-alb Jul 4, 2025
8ac42af
fixed key format for tasks_guard
claulau001 Jul 4, 2025
90121d3
fixed key format for tasks_guard
claulau001 Jul 4, 2025
bb7cd2f
frontend accomodations for the future feature of showing more task ti…
U-alb Jul 4, 2025
4f29ff6
removed unused imports
U-alb Jul 4, 2025
7a5667b
removed unused imports
U-alb Jul 4, 2025
4a3d7a1
get more tasks info on handle_task_update
claulau001 Jul 4, 2025
191936b
Merge branch 'feat/additional-info-apps' of http://github.com/Wyliodr…
claulau001 Jul 4, 2025
19d0fb4
sanitised state output
U-alb Jul 4, 2025
c54da30
Improve display of subsecond time units (ms, μs, ns)
claulau001 Jul 4, 2025
9271c70
Merge branch 'feat/additional-info-apps' of http://github.com/Wyliodr…
claulau001 Jul 4, 2025
d40b29a
fix negative idle time + pause feat for tasks
claulau001 Jul 7, 2025
9ab7115
error handling + error feedback for UI
claulau001 Jul 8, 2025
0256b64
friendlier format for task creation timestamp
U-alb Jul 8, 2025
d39bd85
filter tasks by the app who spawned them
U-alb Jul 8, 2025
a017873
modified task created_at field
claulau001 Jul 8, 2025
2568fed
recovered sorting mechanism and footer
U-alb Jul 8, 2025
2396d49
[WIP] Better cpu usage refresh logic
U-alb Jul 9, 2025
eb2f6e4
Resources page
claulau001 Jul 9, 2025
ecf7bb4
Merge branch 'feat/additional-info-apps' of http://github.com/Wyliodr…
claulau001 Jul 9, 2025
98b2769
Update PID on client restart and persist pause state across pages
claulau001 Jul 10, 2025
29c0243
Polling overview page
claulau001 Jul 11, 2025
0c2d144
channel overview page
U-alb Jul 11, 2025
d9c286c
backend CPU Overview
claulau001 Jul 15, 2025
f3a22e0
CPU Overview page
U-alb Jul 15, 2025
f678517
remove machine generated code
U-alb Jul 15, 2025
8c5f62b
better cpu overview page usability - manual timestamp input allowed
U-alb Jul 15, 2025
ac9dc59
instead of id show actual names + UI/UX improvments
claulau001 Jul 15, 2025
0cc9b68
Merge branch 'feat/additional-info-apps' of http://github.com/Wyliodr…
claulau001 Jul 15, 2025
e532375
added dependencies
U-alb Jul 15, 2025
d02eda9
when available, use task name in the CPU operations chart
U-alb Jul 16, 2025
6616ae6
slider labels in the cpu page take milliseconds too now
U-alb Jul 16, 2025
5790b4c
improved date format
claulau001 Jul 16, 2025
b4d53a2
Merge branch 'feat/additional-info-apps' of http://github.com/Wyliodr…
claulau001 Jul 16, 2025
4b9a7f3
fixed multiple async ops on CPU Overview page
claulau001 Jul 16, 2025
8acae27
documentation
U-alb Jul 18, 2025
5132b16
fixed resume application tracking
claulau001 Jul 18, 2025
5e14f5c
fixed resume application tracking
claulau001 Jul 18, 2025
f0c6b22
[WIP] Channels work
U-alb Jul 23, 2025
9448dc0
Edit name and Url for application feature
claulau001 Jul 24, 2025
ee030ee
simple macro for channel debugging
U-alb Jul 24, 2025
9647b17
removed channels feature
U-alb Aug 6, 2025
4d07d7e
Updated README and added some example apps
U-alb Aug 7, 2025
aefc892
Fix pause on space, v-data-table duplication on sort; improve duratio…
claulau001 Aug 7, 2025
b1a0914
Partial fix for PID updating on linux
U-alb Aug 7, 2025
033cfba
Fix for PID not updating in the frontend
U-alb Aug 8, 2025
4986b56
dropping resources + tasks when client application is closing
claulau001 Aug 8, 2025
757316b
Added tests
U-alb Aug 12, 2025
6c59089
detect warnings (SelfWakePercent, LostWaker, NeverYielded)
claulau001 Aug 26, 2025
9cf500c
Merge branch 'feat/additional-info-apps' of http://github.com/Wyliodr…
claulau001 Aug 26, 2025
d463633
Add more warnings(AutoBoxedFuture, LargeFuture)
claulau001 Aug 27, 2025
0c72fe2
Added task starvation detection
U-alb Aug 28, 2025
b11ebf6
customizable warnings
claulau001 Aug 28, 2025
599e2fd
Merge branch 'feat/additional-info-apps' of http://github.com/Wyliodr…
claulau001 Aug 28, 2025
082051b
fix to persist warning settings
claulau001 Aug 28, 2025
dfa82a3
fmt
U-alb Aug 29, 2025
595910e
Switched to local timestamps
U-alb Sep 4, 2025
a654903
Added import/export of app instances
U-alb Sep 3, 2025
cdec4af
Updated documentation on the export instance function
U-alb Sep 15, 2025
e1fcebc
CPU Overview: added gap compression, user preferences and better hove…
U-alb Sep 16, 2025
e3e8cda
Solved some of the PR comments
U-alb Sep 18, 2025
8b0cdeb
removed .lock file
U-alb Sep 18, 2025
6b840b7
Merge branch 'main' into feat/additional-info-apps
U-alb Sep 18, 2025
a9f5f7e
Added architecture page
U-alb Sep 19, 2025
1e8d601
Moved duration formatting logic to the frontend
U-alb Sep 22, 2025
3420f18
Added screenshots in the README
U-alb Sep 22, 2025
76ccb66
Added how-to GIF in the README
U-alb Sep 22, 2025
99000a1
Migrated chart logic to the updated timestamp structs
U-alb Sep 26, 2025
4ec6a47
Migrated chart logic to the updated timestamp structs
U-alb Sep 26, 2025
7ccbd64
Chore/front end rework (#7)
DTeodor-Alexaandru Oct 1, 2025
dea0244
architecture rework (#8)
DTeodor-Alexaandru Oct 2, 2025
4cdb0ec
Refactor features (#9)
cristianaprecup Oct 6, 2025
1e7e326
Add error handling (#10)
DTeodor-Alexaandru Oct 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[build]
rustflags = ["--cfg", "tokio_unstable"]
Comment thread
U-alb marked this conversation as resolved.
Outdated
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,11 @@ dist-ssr
# Generated by Tauri
# will have schema files for capabilities auto-completion
src-tauri/gen/schemas

package-lock.json


# Added by cargo

/target
/Cargo.lock
8 changes: 8 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[package]
name = "async-debugger"
version = "0.1.0"
edition = "2024"

[dependencies]
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time", "tracing", "net" ] }
console-subscriber = "0.4.1"
Comment thread
U-alb marked this conversation as resolved.
81 changes: 77 additions & 4 deletions README.md

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In fisierul asta as mai vrea sa mai vad urmatoarele sectiuni si modificari:

  • Requirements - care sa specifice pe ce sisteme de operare functioneaza, daca trebuie sa ai ceva anume instalat si ce anume
  • In momentul in care vom avea release-uri pe repo-ul asta, vom avea direct applicatiile generate iar utilizatorii vor putea direct descarca si instala release-urile respective. Putem face un release cu un tag 0.1.0 sau ceva de genul asta pe branch-ul asta si sa scriem aici in readme cum se instaleaza/foloseste

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

De asemenea, as vrea sa mai vad niste screenshot-uri reprezentative cu aplicatia ca sa fie ceva mai de impact pentru utilizator

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

De asemenea, vreau sa mai avem un mic fisier gen Architecture.md care sa descrie componentele aplicatiei si cum comunica intre ele, dar si ierarhia repository-ului la modul:

--- src-tauri
|------ commands -> comenzile apelabile de catre componenta de front-end. + descriere sumara de care sunt ele

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add in prerequisites section all the prerequisites:)))
Eg deno, webkit2gtk-4.1, libsoup-3.0 etc... for the final version i would start with a fresh os and note all the dependencies

Original file line number Diff line number Diff line change
@@ -1,6 +1,79 @@
# AsyncDebugger
## AsyncDebugger

This repository hosts the `AsyncDebugger`, a tool desktop tool that provides
meaningful insights into asynchronous Rust software.
AsyncDebugger is a desktop tool that provides **meaningful insights** into asynchronous Rust applications by leveraging
the `console-api` developed for `tokio-console`. It offers a clean, intuitive user interface to inspect tasks,
resources, and execution timelines in real time.

It is based upon the `console-api` developed for `tokio-console`.
<hr>

## Features

- **Real-time task visualization**: See active, pending, and completed async tasks
Comment thread
U-alb marked this conversation as resolved.
Outdated
- **Resource usage inspection**: Monitor resources and CPU consumption and scheduling
- **Polling overview**: Tap into polls and get insights
- **Custom filtering**: Filter tasks by name, state, or metadata tags
Comment thread
U-alb marked this conversation as resolved.
Outdated

<hr>

## Installation

1. Clone the repository
```bash
git clone https://github.com/Wyliodrin/async-debugger.git
cd AsyncDebugger
```
2. Install front-end dependencies
```bash
npm install
```
3. Build and launch in development mode
```bash
npm run tauri dev
```

<hr>

## Usage

1. Launch AsyncDebugger via `npm run tauri dev`.
2. Attach to one of our examples or your own Rust async application by using the Application Overview page in the UI
- For your application, enable the console API by adding `console-subscriber` to your Cargo.toml and instrumenting
your code:

```toml
[dependencies]
console-api = "0.4.1"
```

```rust
#[tokio::main]
async fn main() {
console_subscriber::init();
// Your application here...
}
```

3. Observe tasks, timelines, and resource metrics
4. Apply filters and inspect stack traces to pinpoint performance bottlenecks or logical errors.

<hr>

## Examples

Example applications live in the `examples/` directory. To run an example:

```bash
cargo run --example <example_name>
```

- `0s1s` spawns three asynchronous tasks:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bullet point listing is a bit unclear, I would enumerate

1. A producer that sends 1024-byte zero-filled chunks every 500 ms.
2. A producer that sends 1024-byte one-filled chunks every 700 ms.
3. A consumer that concurrently reads from both channels and logs incoming data.

It can be tracked at `localhost:6669`

- `tasks` waits for user input to start, then spawns three tasks that simulate work, wait on a common barrier, and then
proceed together.

It can be tracked at `localhost:7777`
Loading