我正在使用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:断言`name [prefix_len + 1] ==':''失败.
在此之前,对于我的第一个应用程序所需的文件,即使对于第一个应用程序的main.cpp,我也有很多"无源文件命名"错误.
我在Eclipse Mars 4.5.2中使用Stm32 Workbench 1.9和GDB 7.10.1
编辑
我假设"没有源文件命名"错误表明可能GDB正在加载错误的文件,因此我尝试创建一个新的工作区,只包含此应用程序所需的项目,一切正常.尽管如此,将所有项目放在同一个工作区中会很好,我不确定在2个工作区中打开lib项目是否有害.
小智 0
我有信息可以提供,但不是完整的答案。我想添加评论,但我没有代表。点尚未这样做。
我能够运行到 main,但是当我设置断点时,我看到与 OP 相同的行为。我的gdb版本是7.11
我注意到,如果我从主机 ssh 到目标并启动 gdb,我不会观察到该行为——我可以设置断点,没问题。如果我通过 Eclipse 执行此操作,我只会看到不良行为。我看到的两种场景之间的一个区别是,当 gdb 通过 Eclipse(通过 ssh)启动时,它使用该--interpreter mi2
选项。
也许这会引发一个解决方法的想法......
归档时间: |
|
查看次数: |
864 次 |
最近记录: |