gpt4 book ai didi

gcc - 为什么没有将调试符号添加到我的输出文件中?

转载 作者:行者123 更新时间:2023-12-02 02:33:48 24 4
gpt4 key购买 nike

我正在尝试编译一个项目以在我拥有的 ARM 板上运行。要使用调试器,我必须将调试符号放入生成的 .elf 文件中。

我配置了所有内容并运行了我的 makefile,它产生了以下结果:

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

我已经放入了 -g 标志,但是当我尝试查找调试符号时,我只得到:

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

testFLASH.elf: file format elf32-little

当我尝试在我的调试器中打开 .elf 文件时,我得到了关于该文件没有调试符号的错误消息,这得到了进一步证实。

谁能指出我的 arm-elf-gcc 调用中的错误或我缺少的标志?

最佳答案

在文档中仔细查看后,-Wl,-s 是问题所在。

它从生成的可执行文件中去除所有符号,包括调试信息。

关于gcc - 为什么没有将调试符号添加到我的输出文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2654961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com