2010-04-16 2 views
3

Je suis en train de compiler un projet pour fonctionner sur une carte ARM que j'ai. Pour utiliser le débogueur, je dois mettre des symboles de débogage dans le fichier .elf résultant.Pourquoi ne sont pas des symboles de débogage ajoutés à mon fichier de sortie?

configuré à tout et a couru mon makefile, qui a produit les résultats suivants:

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 

J'ai mis dans les -g, mais lorsque je tente de trouver des symboles de débogage, je reçois seulement:

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

testFLASH.elf:  file format elf32-little 

Ceci est confirmé lorsque je tente d'ouvrir le fichier .elf dans mon débogueur, je reçois une erreur sur le fichier ne pas avoir des symboles de débogage. Est-ce que quelqu'un peut pointer vers une erreur dans mes appels arm-elf-gcc ou un drapeau qui me manque?

Répondre

2

Après avoir piqué un peu plus dans la documentation, le problème est dû à -Wl, -s.

Il supprime tous les symboles de l'exécutable résultant, y compris les informations de débogage.

Questions connexes