c++ - GDB 错误 "cp_search_static_and_baseclasses"

标签 c++ eclipse gdb

我正在使用 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/

相关文章:

c++ - 将错误代码与 C++20 协程一起使用,即与 Boost ASIO 一起使用可等待项

java - 如何加载jar :file: uri in swt browser?

java - 在Eclipse中调试时,在返回之前可以查出返回值吗?

c++ - boost::make_shared() 与模板化类?

c++ - NS2,Otcl : using a variable of an owned instance within a class

c++ - 指针数组作为函数中的参数

java - 将 Eclipse M2E Web 应用程序依赖项移至项目文件系统中

gdb - 在 GDB 中的第一条机器代码指令处停止

linux - 当另一个库具有相同的符号时,gdb 不显示来自共享库的符号

gdb 在相对于基地址的地址处打印符号