2009-06-25 2 views
1

gdbserver 프로그램은 프로그램의 원격 디버깅을 허용합니다. 일반적으로 gdb의 로컬 복사본은 원격 gdbserver 인스턴스 및 해당 원격 gdbserver에서 실행되는 프로그램과 상호 작용하는 데 사용됩니다.gdbserver와의 프로그래밍 방식 상호 작용

내 질문은 : 클라이언트가 gdb remote serial protocol (RSP)을 구현하여 gdb 이외의 프로그램이 gdbserver 프로그램과 상호 작용할 수 있습니까?

이 문서는 RSP server의 구현에 대해 설명하지만 주로 관심이있는 클라이언트 측입니다.이 implementation은 클라이언트와 서버를 지원하지만 공통 lisp로 구현되었으며 아직 성숙한 라이브러리는 아닙니다.

답변

1

GDB 프로토콜의 클라이언트를 알지 못합니다.

왜 그 중 하나를 원하십니까?

간단한 작업 (시작, 중지, 메모리 주소 검사)을 위해 처음부터 매우 빠르게 작성할 수 있습니다.

복잡한 작업 (스택을 푸는 것, 변수를 검사하는 것 등)을 위해서는 GDB의 중요한 부분을 다시 구현해야합니다. 아주 좋은 이유없이 시도되지 않아야합니다.

또한 GDB/gdbserver 프로토콜은 계속 발전하고 있습니다. 새로운 GDB가 더 오래된 gdbserver를 다루도록하는 조항이 있지만 그 역도 사실인지 확실하지 않습니다.

+0

좋은 점; 로컬 GDB를 GDB 머신 인터페이스를 통해 제어하고 로컬 GDB가 원격 gdbserver와 상호 작용하도록 결정했습니다. – grrussel

5

원격 GDB 프로토콜은 완전히 당신은 작업 예제로 보는 GDB가 http://sourceware.org/gdb/current/onlinedocs/gdb_toc.html

에서 온라인으로 사용할 수있는 GDB 매뉴얼에 설명되어 있습니다 - 이것은 당신이 클라이언트를 작성할 수 있도록 충분히해야한다 직렬 프로토콜을 통해 gdbserver를 제어합니다. ;-)