Ketika Anda melakukan emulasi dengan mesin unicorn, apakah Anda ingin memeriksa keadaan batin selama setiap langkah?
udbserver adalah plugin untuk Unicorn, menyediakan server debug yang mengimplementasikan protokol serial jarak jauh GDB. Anda dapat menghubungkannya dengan klien GDB dan melakukan debugging sebagai apa yang Anda lakukan pada program nyata.
udbserver dapat digunakan sebagai program peti oleh karat, tetapi juga menyediakan perpustakaan C dan binding untuk bahasa lain. Anda dapat menggunakannya di dalam sebagian besar proyek berbasis unicorn!
udbserver hanya menyediakan satu API:
void udbserver ( void * handle , uint16_t port , uint64_t start_addr ); handle harus menjadi pegangan mentah dari instance unicorn, port adalah port yang akan didengarkan, start_addr adalah alamat yang ketika unicorn berjalan di server debug akan dimulai dan menunggu untuk terhubung. Jika start_addr disediakan dengan 0 , server debug akan mulai secara instan.
Anda dapat menyebut API ini di dalam kait unicorn, sehingga Anda dapat mengintegrasikan udbserver di dalam proyek berbasis unicorn lainnya dengan mudah.
Anda dapat menggunakan udbserver sebagai peti di Rust .
Anda dapat memeriksa contoh tentang cara menggunakannya.
Dan Anda dapat mencobanya dengan:
$ cargo run --example server Kemudian Anda dapat menghubungkannya dengan gdb-multiarch .
udbserver menyediakan serangkaian perpustakaan, header, dan pkg-konfigasi yang kompatibel dengan C, yang membantu Anda menggunakannya dengan bahasa lain.
Untuk membangun dan menginstalnya, Anda perlu menggunakan kargo-C:
$ cargo install cargo-c
$ mkdir build
$ cargo cinstall --release --prefix=/usr --destdir build
$ sudo cp -dr build/ * / Setelah menginstal pustaka udbserver , Anda dapat menggunakan udbserver dalam bahasa lain.
Anda dapat memeriksa contoh tentang cara menggunakan udbserver dengan berbagai bahasa: