v0.4.2 · cargo registry

Отлаживай Rust
как пыль
оседает.

dustdu — динамический отладчик для раст-программ. Подключайся к уже запущенному процессу, инспектируй состояние и проигрывай трейсы как замедленную съёмку. Всё в одном терминале.

1.2k stars MIT license rustc 1.74+
~/projects/app · dustdu tui
[14:02:11] attaching to pid 4471
[14:02:11] loaded 128 symbols
[14:02:12]  main::parse_config
[14:02:12]  config::load
[14:02:13]  db::connect
[14:02:13]  handler::route
        0x7f3a | rax=0x0 rbx=0x1f
        0x7f4b | rcx=conn_pool
[14:02:14] · 4 hot-reloads detected
[14:02:14] · press g to replay, q to quit

// features

Отладчик, который
движется вместе с кодом.

Dynamic attach

Подключайся к уже запущенному процессу без перезапуска. dustdu читает символы, регистры и стек в реальном времени — никакой перекомпиляции, никакого downtime.

$ dustdu attach --pid 4471
→ resolved 128 symbols in 24ms

Trace replay

Проигрывай трейсы вперёд и назад как киноплёнку.

Memory view

Смотри сырую память и локальные переменные в любой точке останова.

Hot-reload safe

Точки останова переживают пересборку — ловушки не слетают.

Zero-config

Никаких хуков в твоём коде — только внешний наблюдатель.

// how

Три шага до
полного трейса.

dustdu использует системный отладчик и DWARF-таблицы, чтобы снять снэпшот состояния в каждой точке останова. Никаких хуков в твоём коде — только внешний наблюдатель.

01

Запусти или подключись

Передай бинарь или PID уже работающего процесса. dustdu сам найдёт символы и точки входа.

02

Поставь ловушки

Точки останова по функции, адресу или условию. Срабатывают даже после hot-reload.

03

Проигрывай и инспектируй

Степ вперёд, назад, по веткам. Открывай регистры, память, локальные переменные в любой момент.

// install

Поставь за
десять секунд.

bash
$ cargo install dustdu
  Compiling dustdu v0.4.2
  Finished release [optimized] in 8.4s
$ dustdu --version
dustdu 0.4.2 (rev a3f1c9)
linux · x86_64 macos · aarch64 no runtime deps

// terminal

TUI, который
дышит.

Полноценный интерфейс в терминале: панели, курсор, поиск по символам, vim-бинды. Никаких X-серверов, никаких Electron — только пыль и неон.

  • vintage keybindings (vim, emacs)
  • split panes, resizable
  • live watch expressions
  • session save & resume
~/projects/app · dustdu tui

stack

 handler::route
  db::connect
  config::load
  main::parse_config

registers

rax 0x0000
rbx 0x001f
rcx conn_pool
rdx 0x0a40

watch · conn_pool

{ host: "127.0.0.1",
  port: 5432,
  conns: 12 active }

Возвращайся
к коду.

dustdu бесплатный, открытый и написан на раст. Поставь, запусти, отладь. Если что-то пыльно — открой issue.