"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.
Please read the user manual!
Here are the features of v5gdb that you can use today:
- Connect to your VEX V5 robot using GDB Remote Debugging
- Easily customize how v5gdb communicates with your PC
- Fully compatible with vexide and PROS frameworks
- Remotely view what's stored in variables and manage dynamically-placed software/hardware breakpoints
- Single-step through instructions and lines of code
- Pause your program in arbitrary locations by pressing Ctrl-C
- Simple to configure and enable via Rust and C++ APIs
- Basic support for thread-aware debugging (requires FreeRTOS)
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 on Crates.io and PROS template depot (for now, manually build v5gdb using the instructions in the user manual)
- Compatibility with VEXcode framework (right now it crashes)
- TBD on whether thread-aware debugging is possible for VEXcode
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.
Licensed under either of
-
Apache License, Version 2.0
(LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
-
MIT license
at your option.
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.