我正在使用 STM32 Workbench(基于 Eclipse 的 IDE),我有一个工作区,其中包含几个 C++ 静态库和 2 个 C++ 应用程序,所有这些都是使用 STM32F4 MCU C++ 应用程序或静态库模板制作的。
我的第一个申请很顺利,我开始了第二个申请。该项目模板添加了一个带有无限循环的 main.c,与语言无关。如果我尝试调试 main.c 一切正常,但如果我将文件名更改为 main.cpp(我需要它以在内部使用 C++ 类)GDB 在调试前停止并出现错误:
/home/build/work/GCC-5-0-build/src/gdb/gdb/cp-namespace.c:343: internal-error: cp_search_static_and_baseclasses: Assertion `name[prefix_len + 1] == ':'' failed.
在此之前,对于我的第一个应用程序只需要的文件,即使是第一个应用程序的 main.cpp,我也有很多“没有命名的源文件”错误。
我在 Eclipse Mars 4.5.2 和 GDB 7.10.1 中使用 Stm32 Workbench 1.9
编辑
我假设“没有命名的源文件”错误表明 GDB 可能正在加载错误的文件,所以我尝试创建一个新的工作区,其中只包含该应用程序所需的项目,并且一切正常。尽管如此,将所有项目都放在同一个工作区中会很好,我不确定在 2 个工作区中打开 lib 项目是否有害。
最佳答案
我在 Eclipse 中遇到了类似的问题,GDB 崩溃了。我在 eclipse 工作区中有一些旧断点处于事件状态。从其他项目中删除这些断点后,问题得到解决。
关于c++ - GDB 错误 "cp_search_static_and_baseclasses",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37856931/