Skip to content

vexide/v5gdb

v5gdb: VEX V5 debugger

"One day we will have all the features of ROBOTC on the V5 brain" - Charles, 2114V

v5gdb is a debugger backend for the VEX V5 platform that is compatible with GDB. It uses a combination of hardware and software breakpoints to implement features like line-by-line stepping and user-defined breakpoints. Users are also given the ability to read program state such as the arguments passed to the active function or global variables.

Getting Started

Please read the user manual!

Features

Here are the features of v5gdb that you can use today:

  • Debug server usable by the gdb command line tool
  • Supports multiple methods of communication with a debugger client running on the user's PC
  • Compatibility with vexide and PROS frameworks
  • Supports remote management of dynamically-placed software/hardware breakpoints
  • Single-step through instructions and lines of code
  • Easy to configure and enable via Rust and C++ APIs

Future Goals

Here are the features of v5gdb that aren't done yet or are planned for the future:

  • Easy to add to existing projects via a Rust crate and PROS template (for now, see the install instructions in the user manual)
  • Step through inactive PROS tasks (right now you can only step through the task that caused the most recent breakpoint)
  • Compatibility with VEXcode framework (right now it crashes)

Design

This project implements a debug server that can communicate with a GDB-compatible client over various transport methods. For more information, see the project's internals wiki page.

License

Licensed under either of

at your option.

Contribution

For guidelines for contributors, see CONTRIBUTING.md.

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.

Packages

 
 
 

Contributors

Languages