Je dispose d'un fichier de montage simple main.s
qui contient:Pourquoi "strip" ne supprime-t-il pas ces symboles de débogage?
mysymbol1=1234
J'assemblez dans un fichier objet en utilisant la commande suivante:
$ arm-none-eabi-as main.s -o main.o
Maintenant, je vérifie la table des symboles
$ arm-none-eabi-objdump -t main.o
main.o: file format elf32-littlearm
SYMBOL TABLE:
00000000 l d .text 00000000 .text
00000000 l d .data 00000000 .data
00000000 l d .bss 00000000 .bss
000004d2 l *ABS* 00000000 mysymbol1
00000000 l d .ARM.attributes 00000000 .ARM.attributes
Je note que le d
indique qu'il ya des symboles de débogage inclus je lance donc:
$ arm-none-eabi-strip --strip-debug main.o
objdump Re-course montre que les symboles de débogage n'ont pas été supprimés, mais ils ont été réorganisés:
$ arm-none-eabi-objdump -t main.o
main.o: file format elf32-littlearm
SYMBOL TABLE:
000004d2 l *ABS* 00000000 mysymbol1
00000000 l d .text 00000000 .text
00000000 l d .data 00000000 .data
00000000 l d .bss 00000000 .bss
00000000 l d .ARM.attributes 00000000 .ARM.attributes
Pourquoi aren les symboles de débogage sont-ils supprimés?
Ces symboles indiquent les noms des sections. C'est pourquoi 'strip' ne s'en débarrassera pas. Ils ne sont pas des symboles de débogage. – fuz
Merci. Une idée pourquoi le drapeau bit 'd' est réglé alors? – donturner
Je ne connais pas assez les binutils GNU pour répondre à cette question. – fuz