Android (Java/C/C++)에서 혼합 된 코드를 디버깅하려고합니다. 내 대상 장치는 Vizio 1008입니다. 코드는 에뮬레이터에서 실행되며 GDB를 사용하여 Eclipse에서 디버깅 할 수 있습니다. 그러나 실제 장치에서는이 작업을 수행 할 수 없습니다. GDBSERVER은 (성공적으로) 장치에 시작되면GDBSERVER가 시작시 종료됩니다.
, 즉시 메시지와 함께 종료 : "알 수없는 레지스터 D0 요청"
이 고민의 일 후에 나는 문제를 지역화. 따라서 디버깅 세션이 가능하지 않습니다. 또한 ARM에서 DS-5 디버거를 사용해 보았습니다. GDBSERVER는 연결 상태를 유지하지만 원격 디버거에서 연결 시도를 종료합니다. GDBSERVER 디버그 출력을 시도했지만 유용한 정보를 제공하지 않습니다.더 이상하게도 나는 얻을 수있는 GDBSERVER의 모든 버전을 사용해 보았습니다. 모든 버전이 이와 같이 작동합니다. 그러나 Google NDK의 이전 버전 (3 또는 4 버전)에서 GDBSERVER를 발견했습니다. 그리고이 버전이 작동합니다 !!! 하지만 디버거 (호스트)가 곧 (세그먼테이션 오류) 죽으면, 심지어 그 프로그램이 괜찮다는 것을 알게됩니다.
GDBSERVER 소스 코드를 살펴본 결과,이 오류는 GDBSERVER가 하드웨어를 검사 할 때의 시작 시퀀스와 관련이 있습니다. 아마도, 그것은 부동 소수점 코 프로세서에 관한 것이지만,이 오류 메시지는 꽤 일반적인 것이므로 잘 모르겠습니다.
중요한 점은 Google NDK를 사용하여 Windows에서 devloping하는 것입니다. 이 코드는 자바 셸과 Java로 구현 된 몇 가지 기능 (스레드 된 HTTP 호출)을 사용하는 99 % C/C++입니다. 다시, 응용 프로그램은 장치에서 작동하며 에뮬레이터에서 (Java 및 C/C++ 모두) 디버깅 할 수 있습니다. 또한 장치에서 Java 부분을 디버그 할 수 있습니다.
어떤 사람이 무엇인지 알 수 있습니까? 그리고 그것을 고치는 방법? 비지오인가요?
미리 감사드립니다.