Möchten Sie den inneren Zustand in jedem Schritt inspizieren, wenn Sie mit Unicorn -Motor nachdenken?
udbserver ist ein Plugin für Unicorn und bietet einen Debug -Server, der das serielle GDB -Remote -Protokoll implementiert. Sie können es von einem GDB -Kunden verbinden und als das, was Sie im realen Programm tun, debuggen.
udbserver kann als Kiste von Rost -Programm verwendet werden, bietet aber auch eine C -Bibliothek und Bindungen für andere Sprachen. Sie können es in den meisten Einhornprojekten verwenden!
udbserver liefert nur eine API:
void udbserver ( void * handle , uint16_t port , uint64_t start_addr ); Der handle sollte das Rohhandle einer Unicorn -Instanz sein. port ist der zugehörige Port, start_addr ist die Adresse, die bei der Ausführung von Unicorn am Debug -Server beginnt und wartet, um verbunden zu werden. Wenn start_addr mit 0 geliefert wird, startet der Debug -Server sofort.
Sie können diese API in einem Einhornhaken nennen, damit Sie udbserver in ein anderes Einhornbasis problemlos integrieren können.
Sie können udbserver als Kiste in Rust verwenden.
Sie können das Beispiel darüber überprüfen, wie Sie es verwenden.
Und Sie können es versuchen, bis:
$ cargo run --example server Dann können Sie es mit gdb-multiarch verbinden.
udbserver bietet einen C-kompatiblen Satz aus Bibliotheks-, Header- und PKG-Konfigurationsdateien, mit denen Sie sie mit anderen Sprachen verwenden können.
Um es zu bauen und zu installieren, müssen Sie Cargo-C verwenden:
$ cargo install cargo-c
$ mkdir build
$ cargo cinstall --release --prefix=/usr --destdir build
$ sudo cp -dr build/ * / Nach der Installation der udbserver -Bibliothek können Sie udbserver in anderen Sprachen verwenden.
Sie können die Beispiele zur Verwendung von udbserver durch verschiedene Sprachen überprüfen: