2010-04-16 4 views
3

내가 가지고있는 ARM 보드에서 실행할 프로젝트를 컴파일하려고합니다. 디버거를 사용하려면 디버깅 기호를 결과 .elf 파일에 넣어야합니다.디버깅 기호가 출력 파일에 추가되지 않는 이유는 무엇입니까?

나는 모든 것을 구성하고 다음과 같은 결과를 만들어 내 메이크 파일, 실행 : 나는 -g 플래그에 넣어 가지고

arm-elf-gcc -x assembler-with-cpp -c -mcpu=arm7tdmi-s -g -gdwarf-2 -Wa,-amhls=src/crt.lst src/crt.S -o src/crt.o 
arm-elf-gcc -c -mcpu=arm7tdmi-s -O0 -g -gdwarf-2 -mthumb-interwork -fomit-frame-pointer -Wall -Wstrict-prototypes -fverbose-asm -Wa,-ahlms=src/main.lst -MD -MP -MF  .dep/main.o.d -I . -I./inc src/main.c -o src/main.o 
arm-elf-gcc -c -mcpu=arm7tdmi-s -O0 -g -gdwarf-2 -mthumb-interwork -fomit-frame-pointer -Wall -Wstrict-prototypes -fverbose-asm -Wa,-ahlms=library/md5.lst -MD -MP -MF .dep/md5.o.d -I . -I./inc library/md5.c -o library/md5.o 
arm-elf-gcc -c -mcpu=arm7tdmi-s -O0 -g -gdwarf-2 -mthumb-interwork -fomit-frame-pointer -Wall -Wstrict-prototypes -fverbose-asm -Wa,-ahlms=library/bignum.lst -MD -MP -MF .dep/bignum.o.d -I . -I./inc library/bignum.c -o library/bignum.o 

arm-elf-gcc ./src/crt.o ./src/main.o ./library/md5.o ./library/bignum.o -mcpu=arm7tdmi-s -g -nostartfiles -T./prj/LPC2138_flash.ld -Wl,-Map=testFLASH.map,--cref,--no-warn-mismatch -nostdlib -L. -Wl,-static -ffunction-sections -Wl,--gc-sections -Wl,-s -fdata-sections -lc -lg -lnosys -o testFLASH.elf 

을,하지만 난 디버깅 심볼 찾을 때, 난 단지 얻을 :

C:\Users\stkerr\Code\EclipseWorkspace\LibraryWork>objdump -g testFLASH.elf 

testFLASH.elf:  file format elf32-little 

디버거에서 .elf 파일을 열려고 시도 할 때 확인됩니다. 디버깅 기호가없는 파일에 대한 오류가 발생합니다.

누구든지 내 arm-elf-gcc 호출 또는 누락 된 플래그에서 오류를 가리킬 수 있습니까?

답변

2

문서에서 좀 더 자세히 살펴본 후 -Wl, -s가 문제가됩니다.

디버깅 정보를 포함하여 결과 실행 파일의 모든 기호를 제거합니다.

관련 문제