여기 상황은 다음과 같습니다.원격 Linux 바이너리를 디버깅하는 방법은 무엇입니까?
충돌하는 Linux 바이너리가 있습니다. 로그 파일, 추적 파일 등이 없습니다. 디버거를 연결할 수 있어야합니다 (로컬로 소스가 있음). 오류를 추적 할 수 있어야합니다.
이 문제를 해결하는 가장 쉬운 방법은 무엇입니까?
여기 상황은 다음과 같습니다.원격 Linux 바이너리를 디버깅하는 방법은 무엇입니까?
충돌하는 Linux 바이너리가 있습니다. 로그 파일, 추적 파일 등이 없습니다. 디버거를 연결할 수 있어야합니다 (로컬로 소스가 있음). 오류를 추적 할 수 있어야합니다.
이 문제를 해결하는 가장 쉬운 방법은 무엇입니까?
원격 디버깅은 오히려 간단하다 :
gdbserver HOST:PORT PROG [ARGS ...]
개발 워크 스테이션에서 십자가를 시작, : 들어오는 TCP 연결을 청취 호스트와 포트를 지정하면서 대상 플랫폼에, GDBserver와 응용 프로그램을 실행 - 대상 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는 gdb 서버에 (TCP 또는 직렬로) 연결합니다.