유니콘 엔진으로 에뮬레이션 할 때 모든 단계에서 내부 상태를 검사 하시겠습니까?
udbserver 는 Unicorn 용 플러그인이며 GDB 원격 직렬 프로토콜을 구현하는 디버그 서버를 제공합니다. GDB 클라이언트가 연결하고 실제 프로그램에서 수행하는 작업으로 디버깅을 할 수 있습니다.
udbserver Rust 프로그램에 의한 상자로 사용할 수 있지만 다른 언어에 대한 C 라이브러리 및 바인딩도 제공합니다. 대부분의 유니콘 기반 프로젝트에서 사용할 수 있습니다!
udbserver 하나의 API 만 제공합니다.
void udbserver ( void * handle , uint16_t port , uint64_t start_addr ); handle 유니콘 인스턴스의 원시 핸들이어야합니다. port 들을 포트입니다. start_addr 디버그 서버에서 유니콘이 실행될 때 주소입니다. start_addr 0 제공되면 디버그 서버가 즉시 시작됩니다.
이 API를 유니콘 후크 내부에서 호출 할 수 있으므로 다른 유니콘 기반 프로젝트 내에 udbserver 통합 할 수 있습니다.
udbserver Rust 에서 상자로 사용할 수 있습니다.
사용 방법에 대한 예제를 확인할 수 있습니다.
그리고 당신은 그것을 시도 할 수 있습니다 :
$ cargo run --example server 그런 다음 gdb-multiarch 와 연결할 수 있습니다.
udbserver C 호환 라이브러리, 헤더 및 PKG-Config 파일 세트를 제공하여 다른 언어와 함께 사용하는 데 도움이됩니다.
그것을 구축하고 설치하려면 Cargo-C를 사용해야합니다.
$ cargo install cargo-c
$ mkdir build
$ cargo cinstall --release --prefix=/usr --destdir build
$ sudo cp -dr build/ * / udbserver 라이브러리를 설치 한 후 다른 언어로 udbserver 사용할 수 있습니다.
다른 언어로 udbserver 사용하는 방법에 대한 예제를 확인할 수 있습니다.