#debugging #risc-v #architecture

bin+lib riscv_debugger

A powerful, open-source debugger tailored for RISC-V architectures

4 releases

new 0.1.3 Nov 21, 2024
0.1.2 Nov 10, 2024
0.1.1 Nov 6, 2024
0.1.0 Nov 6, 2024

#39 in #architecture

Download history 194/week @ 2024-11-02 127/week @ 2024-11-09 134/week @ 2024-11-16

456 downloads per month

MIT license

6KB

riscv_debugger

riscv_debugger is a powerful, open-source debugger tailored specifically for RISC-V architectures. It equips developers with essential debugging functionalities, facilitating the identification and resolution of issues in RISC-V applications.

Key Features

  • Breakpoints: Set and manage breakpoints to pause execution at specific points.
  • Step Execution: Step through code line-by-line or instruction-by-instruction.
  • Variable Inspection: Inspect and modify variables in real-time.
  • Memory Examination: View and edit memory contents.
  • Instruction Tracing: (Coming Soon) Trace the execution of instructions for detailed analysis.
  • Live Code Profiling: (Coming Soon) Profile code performance in real-time to identify bottlenecks.
  • Code-Coverage Analysis: (Coming Soon) Analyze code coverage to ensure thorough testing.

Benefits

  • Ease of Use: Intuitive interface that simplifies the debugging process.
  • Integration: Seamlessly integrates with existing RISC-V development environments.
  • Performance: Optimized for speed and efficiency, ensuring minimal impact on the target system.
  • Community-Driven: Open-source project with contributions from the RISC-V community.

Getting Started

  1. Installation: Follow the installation guide to set up riscv_debugger on your system.
  2. Basic Usage: Learn how to use the core features with our comprehensive tutorials.
  3. Advanced Features: Explore advanced functionalities and customization options.

Installation

To install riscv_debugger, add it to your Cargo.toml:

[dependencies]
riscv_debugger = "0.1.1"

Example Usage

use riscv_debugger::Debugger;

fn main() {
    let debugger = Debugger::new();

    // Set a breakpoint
    debugger.set_breakpoint("main.rs", 10);

    // Start debugging
    debugger.start();

    // Step over a line
    debugger.step_over();

    // Step into a function
    debugger.step_into();

    // Step out of a function
    debugger.step_out();

    // Inspect a variable
    debugger.inspect_variable("some_variable");

    // Examine memory
    debugger.examine_memory(0x1000, 64);
}

License

This project is licensed under the MIT License.

Author

bensatlantik

Dependencies

~235–690KB
~16K SLoC