/headcrab

A modern Rust debugging library 🦀

Primary LanguageRustApache License 2.0Apache-2.0

Headcrab

project chat Build Status Build Status windows Financial Contributors on Open Collective

Contributing | Documentation | Chat | Website

A modern Rust debugging library.

Goals

This project's goal is to provide a modern debugger library for Rust so that you could build custom debuggers specific for your application. It will be developed with modern operating systems and platforms in mind.

Using Headcrab

Currently, Headcrab supports Linux x86_64 as the primary target. It's intended to be used as a library, but at this time it's not production-ready and the API stability is not guaranteed.

You can try some example applications. E.g., a command line interface to some of the exposed functions:

cargo run --example repl

asciicast

Contributing

This project exists thanks to all the people who contribute.

Please refer to the "Contributing to Headcrab" document for more information about how you can help the project. You can also join the community chat at https://headcrab.zulipchat.com

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Code contributors

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Sponsors

Support this project with your organization. Your logo will show up here with a link to your website. [Become a sponsor]

Long-term goals

  • Rust expression parser (reusing MIR and other components from the Rust compiler).
  • Read complex data structures.
  • Make symbolication reusable for eBPF and dynamic tracing.
  • JSON-RPC and support for Debug Adapter Protocol.
  • Command-line interface.
  • Integrate with rr for reverse debugging.
  • Collaborative debugging.
  • Use the LLVM DExTer to improve user experience.
  • Support more platforms and operating systems (Illumos, FreeBSD, OpenBSD, Windows).

License

Licensed under either of

at your option.