Skip to content

A modern Rust debugging library 🦀

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

hunger/headcrab

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Headcrab

project chat Build Status Build Status

Contributing | Documentation | Chat

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.

You can learn more about the goals and reasoning behind the project in the following blog posts:

Roadmap

List of phase 1 goals for the project:

  • Modular API and extensibility.
  • Read & modify memory of other processes and control their execution (cross-platform: x86_64 for Linux & macOS).
  • Basic symbolication for Rust (read DWARF debug information and translate symbols into addresses).
  • Get information about process threads.
  • Read & write variables in the thread-local storage.
  • Setting breakpoints at given locations.

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).

Contributing

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.

License

Licensed under either of

at your option.

About

A modern Rust debugging library 🦀

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.7%
  • Makefile 0.3%