원격 리눅스 바이너리를 디버깅하는 방법?
-
22-07-2019 - |
문제
상황은 다음과 같습니다.
충돌하는 Linux 이진이 있습니다. 로그 파일, 추적 파일 등이 없습니다. 디버거를 첨부 할 수 있어야합니다 (소스에 로컬로 소스가 있습니다). 오류를 추적해야합니다.
이 문제에 접근하는 가장 쉬운 가장 좋은 방법은 무엇입니까?
해결책
원격 디버깅은 다소 간단합니다. 대상 플랫폼에서 GDBServer로 응용 프로그램을 시작하면서 들어오는 TCP 연결을들을 수있는 호스트 및 포트를 지정합니다.
gdbserver HOST:PORT PROG [ARGS ...]
개발 워크 스테이션에서 크로스 타겟 GDB를 시작하십시오.
powerpc-7450-linux-gnu-gdb PROG
스트립되지 않은 실행 파일을 지정하십시오. GDB 콘솔에서 다음을 입력하십시오.
target remote HOST:PORT
break main
continue
다른 팁
GDB가 원격 디버깅을 지원하는 것처럼 보입니다.
나는 그것을 사용한 적이 없지만 http://davis.lbl.gov/manuals/gdb/gdb_17.html 시작처럼 보입니다.
기본적으로 대상 기계에서 GDBSERVER 아래 프로그램을 실행하고 GDB는 (TCP 또는 Serial을 통해) GDBSERVER에 연결합니다.
제휴하지 않습니다 StackOverflow