arm-none-eabi-gdb读取小型ELF文件符号耗时过长的排查求助
arm-none-eabi-gdb读取小型ELF符号耗时极长(仅单台Windows电脑出现)
问题详情
- 核心现象:使用
arm-none-eabi-gdb加载一个约680kB的ELF文件时,符号读取环节耗时约40秒,但其他测试电脑仅需数秒即可完成。该问题仅出现在我的Windows 11 Pro电脑上,其他环境无此异常。 - ELF文件生成方式:通过STM32CubeMX创建项目,选择基础MCU(STM32F072),未启用任何外设,生成CMake项目后在VSCode中完成构建。
- 已做排查:
- 更换ARM GNU工具链版本:测试过13.3、13.2、12.2三个版本,耗时情况基本一致;
- 切换测试环境:在cmd原生环境和Cygwin中分别测试,问题均存在;
- GDB调试日志分析:开启多项GDB调试选项后发现,最小符号读取几乎不耗时,耗时的核心区间位于两次
qf->has_symbols调用之间,时长约40秒。
求助问题
- 是否有开发者遇到过类似的单环境符号读取耗时异常问题?
- 由于问题仅局限于我的本地环境,可能涉及哪些具体的环境因素?
- GDB是否有更多调试选项可以开启,以便定位到具体的耗时操作环节?
内容的提问来源于stack exchange,提问作者Andreas Pettersson




