2017-12-22 40 views
0

gdbserver를 사용하여 크로스 컴파일 된 응용 프로그램을 디버깅하려고합니다. 불행하게도 나는 나의 호스트에서 다음과 같은 오류가 발생합니다 :
여기 Reply contains invalid hex digit 59
내가 무슨 짓을했는지 :gdbserver -> 응답에 유효하지 않은 문자가 포함되었습니다.

  • 컴파일 된 GCC와 (그냥 테스트 프로그램) 내 응용 프로그램 "라인 발전기"-ggdb3 -std = gnu89 플래그 (-ggdb3 대신 -g를 사용하여 차이가 없음)
  • 내 임베디드 시스템에 실행 파일을 복사하십시오. GDB 라인 generator.gdb
  • (GDB) 원격 192.168.10.102 타겟팅 :
  • 호스트에 임베디드 시스템
  • 에 gdbserver 192.168.10.20:54320 선 발생기 시작
  • Exec은 I는 GDB 시작이 실행될 수있다 : 54,320
  • 호스트에이 응답을 얻었다 : 호스트 192.168.10.20에서
    원격 디버깅 : 192.168.10.102:54320
    회신을 사용
    원격 디버깅이있어 내가 서버에서 유효하지 않은 16 진수 59
  • 을 포함 0 readchar : EOF가 부여되었습니다.
    원격 측면 연결이 종료되었습니다. GDB 서버가 연결을 다시 엽니 다. 포트 54320 내가 그렇게 모든 응답 도움이 될 초보자의 문제로 GDB 원격 그래서 어쩌면 내가 실행하고 사용한 적이

에 듣기
.

편집 : gdbserver는 (는) 내장 하드웨어 제조업체에서 제공했습니다.

+0

관련 항목 : https://stackoverflow.com/questions/23934552/cant-remote-debug-with-gdb –

답변

0

크로스 컴파일 된 실행 파일을 원격 디버깅하려면 호스트 컴퓨터에서 gdb를 컴파일해야합니다. 내 경우에는 내가이 명령

대신 다행히 올바른 파일이 포함 된 보드 제조업체에서 제공 한

gdb line-generator.gdb 간단한

/opt/microblaze-uclinux-tools/bin/microblaze-uclinux-gdb line-g 
enerator.gdb 

을 사용할 필요가 있음을 의미합니다! 정직하게 말하면 나는 문맥을 완전히 이해하지 못한다. 누군가 이것에 대한 설명을 가지고 있다면 나는 이것을 듣게되어 기쁩니다!
건배, Stefan