bet4it/udbserver

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

Rust

435

63 commits

updated Jul 27, 2026

See the code

README

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:

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

aarch64
arm
bindings
debugging
emulator
gdb
gdbserver
m68k
mips
powerpc
reverse-engineering
riscv
rust-ffi
x86

Significant stargazers

Zhaofeng Li

453 followers · starred Mar 2026

Eric Kilmer

66 followers · starred May 2022

Nguyen Anh Quynh

1,494 followers · starred Apr 2022

Riatre

387 followers · starred May 2022

bet4it/udbserver

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

Rust

435

63 commits

updated Jul 27, 2026

See the code

README

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:

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

aarch64
arm
bindings
debugging
emulator
gdb
gdbserver
m68k
mips
powerpc
reverse-engineering
riscv
rust-ffi
x86

Significant stargazers

Zhaofeng Li

453 followers · starred Mar 2026

Eric Kilmer

66 followers · starred May 2022

Nguyen Anh Quynh

1,494 followers · starred Apr 2022

Riatre

387 followers · starred May 2022

Languages

Rust

85.9%

Python

4.2%

Makefile

2.8%

Go

2.2%

Java

2.2%

C

1.8%