Skip to content

Unicorn Emulator Debug Server - Written in Rust, with bindings for C, Go, Java and Python

License

Notifications You must be signed in to change notification settings

bet4it/udbserver

Repository files navigation

udbserver - Unicorn Emulator Debug Server

udbserver is a debugging plugin for Unicorn Engine that implements the GDB Remote Serial Protocol.

It enables GDB-compatible debugging capabilities for Unicorn-based emulation projects, allowing you to inspect and control the emulation state through a GDB client.

Features

  • Registers
  • Memory
  • Single Step
  • Breakpoint
  • Watchpoint
  • Ctrl-C interrupt

Architectures Support

  • i386
  • x86_64
  • ARM
  • AArch64
  • M68K
  • MIPS
  • PowerPC
  • RISC-V

Installation & Usage

Python

The easiest way to get started is via pip:

pip install udbserver

Check out the Python binding for examples and documentation.

Rust

As a native Rust project, you can use udbserver directly as a crate. Check out the example:

cargo run --example server

Other Languages

udbserver provides bindings for several languages:

  • C (also provides C-compatible API for developing new bindings)
  • Go
  • Java

Please check the corresponding directories for language-specific installation and usage instructions.