2009-07-22 3 views
3

Linux 호스트에 Eclipse CDT, CodeSourcery G ++ 툴 체인을 설치했습니다. Code Sourcery Eclipse IDE를 사용하고 있습니다. 프리 스케일 사이트의 Linux Target Image Builder를 사용하여 MCF5485 보드에 Linux 커널을 설치했습니다.Eclipse CDT를 사용하여 MCF5485EVB 보드의 원격 디버깅에 관해

저는 Sourcery Eclipse IDE를 사용하여 제 리눅스 호스트에 "helloworld"프로젝트를 만들었습니다. Sourcery 폴더의 실행 파일 (gdbserver, catchsgev 등)을 루트 파일 시스템의 보드에 복사했습니다.

보드에서 gdbserver를 실행 한 다음 내 Linux 컴퓨터에서 TCP를 사용하여 디버깅합니다. Sourcery Eclipse IDE에서 보드의 루트 (/root/bin)에 gdbserver를 설치 했으므로 대상에 sysroot를 /으로 지정했습니다.

Eclipse의 디버그 구성에서 IP 주소를 지정했으며 나머지는 기본값입니다. 내가 보드 (gdbserver IP:port /pathname/to/executable)에 gdbsrver 시작하여 내가 리눅스 호스트 디버그 구성을 시작

디버그 구성에 공유 라이브러리 탭에서 옵션 "SYSROOT 경로 이름을 번역"을 선택했습니다. 중단 점 때문에 main()에서 멈 춥니 다. 이력서를 누르면 다음과 같은 오류 메시지가 나타납니다.

include <stdio.h> 

int main(void) 
{ 
    int i=0; 
    printf("Hello = %d",i); 
    return 0; 
} 

은 내가 SYSROOT을 설정해야 할 몇 가지 포럼 읽을 수 있지만 나 또한 내가 할 보드의 루트 파일 시스템에 SYSROOT를 설치 한 경우 읽었 다음과 같이

warning: .dynamic section for "C:\\Program Files\\CodeSourcery\\Sourcery G++\\m68k-linux-gnu\\libc/lib/libc.so.6" is not at the expected address (wrong library or version mismatch?) 
Stopped due to shared library event 
Stopped due to shared library event 
Stopped due to shared library event 

내 프로그램입니다 아무것도 할 필요가 없다.

답변

1

Code Sourcery 도구를 대상에 넣을 필요는 없지만 GDB 클라이언트 또는 Eclipse에서 대상 라이브러리를 찾을 수 없거나 대상 라이브러리가 Code Sourcery 도구가 사용하는 라이브러리와 일치하지 않는 것처럼 보입니다. .

나는이 라이브러리가 대상 리눅스 빌드의 일부로 빌드 될 것으로 기대한다. 그들은 타겟 프로세서를 위해 크로스 컴파일 될 필요가 있으며/lib 디렉토리 아래에있는 목표 파일 시스템에서 끝날 것입니다. 코드 소서리 (Code Sourcery)는 타겟에 미리 빌드 된 라이브러리를 제공 할 수 있으며, 그러면 타겟 라이브러리가 사용해야합니다. 그들은 타겟의 파일 시스템의 일부가 될 필요가 있습니다.

관련 문제