📜 async-crashdump-debugging Charter

The goal of this initiative is to provide tools that simplify debugging crashdumps of async Rust programs.

Proposal

In particular the initiative strives to provide:

  • Debugger plugins for GDB and WinDbg/CDB that help with
    • finding executors from various runtimes (future-rs, Tokio, smol)
    • listing tasks currently being owned by a given executor
    • mapping a task object to the source definition it represents
    • creating logical stack traces that shows dependencies between tasks and resources
  • A test framework for debugger plugins
  • A guide for writing plugins for other debuggers
  • A guide for forking and extending debugging plugins in order to support custom, proprietary executor runtimes
  • Integration with tokio-console (?)

Debugging a crashdump of an async Rust program requires both intimiate knowledge of executor runtime internals and a certain level of expertise in using debuggers. It is the goal of this initiative to provide a toolbox that makes this task less daunting. A good portion of the more difficult debugger interactions can be automated via plugins.

Membership

RoleGithubZulip
Ownermichaelwoeristermw
Liaisonpnkfelixpnkfelix