【问题标题】:Why do my eclipse cdt breakpoints get deleted immediately after they are added?为什么我的 eclipse cdt 断点在添加后立即被删除?
【发布时间】:2016-01-15 22:56:48
【问题描述】:

这已经运行了一段时间了,并且有很多 eclipse 断点错误,但是这个和其他的不一样。

我可以添加一个断点,它会显示在断点列表中,但是一旦我下断点,带有检查点的小蓝点就会出现,然后检查点就会消失。

这是 gdb 跟踪...

355,448 50-break-insert -f xxx
355,448 50^done,bkpt={number="9",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000435f1e"\
,func="xxx(void const*, unsigned long)",file="xxx.cpp",fullname="xxx.cpp",line="223",thread-groups=["i1"]\
,times="0",original-location="xxx.cpp:223"}
355,448 (gdb) 

...然后发生这种情况....

355,601 51-break-delete 9
355,601 51^done
355,601 (gdb) 

我确定这是某个配置的一些状态错误,我真的不在乎为什么。我已删除所有断点并重新启动, 调试器相关的缓存内容存储在哪里,以便我可以尝试删除它?

我宁愿不必重建我的工作区。

编辑: 我的 gdb 版本是 GNU gdb (Ubuntu 7.10-1ubuntu2) 7.10

eclipse 版本...

面向 C/C++ 开发人员的 Eclipse IDE 版本:Luna Service Release 2 (4.4.2) 内部版本号:20150219-0600

cdt...

Eclipse C/C++ 开发工具 版本:8.6.0.201502131403 构建 ID:@build@

我从一台机器上复制了这个 Eclipse 设置 使用这个版本的 gdb,它工作正常。 GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1

【问题讨论】:

  • 请告诉我们您使用的 CDT/Eclipse、GDB 和平台的版本,以便我们尝试追踪。
  • 我刚刚注意到。程序启动之前存在的断点可以正常工作(保持活动状态)。只有在程序以调试模式启动后添加的断点才会在添加后立即被删除。

标签: eclipse-cdt breakpoints


【解决方案1】:

(之前的回答中包含一些此类信息,现在已删除?)

在 CDT 8.6 中,known bug 现在已修复。要点是在 CDT 8.7 (Eclipse Mars) 中有一个竞争条件,现在有 been resolved

对于 OP 提出的持续性问题 bug 19503 against GDB。部分基于那里的信息,似乎关闭调试分叉进程可能会缓解 Eclipse 中的情况。在启动配置中,取消选中“自动调试分叉进程”,即下面标记的最后一个选项:

【讨论】:

  • 嗯,它有点帮助。一个项目工作正常,但在另一个项目中设置断点时出现错误...断点安装失败:给定上下文:(gdb[3].proc[23931].threadGroup[i2],gdb[3].proc[23931 ].OS​​thread[0]).thread[0],已经挂起。 ,无法执行 MI 命令: -exec-interrupt 来自调试器后端的错误消息: Invalid thread id: 11 ,无法执行 MI 命令: -exec-interrupt 来自调试器后端的错误消息: Invalid thread id: 9
  • 我现在真的很想哭。所以我新建了一个工作区,开始迁移项目,导入启动配置,运行它,我仍然得到断点错误。
  • 我很同情,但很遗憾我无法解决您的问题。我知道你的痛苦,因为我也去过那里。我只能建议您使用新的错误消息在 SO 上提出一个新问题,和/或前往 cdt 论坛,看看是否有其他 cdt 人在那里闲逛并可以提供帮助。 eclipse.org/forums/eclipse.tools.cdt
  • 既然你需要了解一些关于 cdt 的知识,也许你可以在这里帮助我:我有一个可行的项目和一个不可行的项目。断点的损坏跟随项目到我的新火星安装。所以导致这个问题的设置在项目设置的某个地方。您知道我可以在 .project 或 .cproject 文件的哪个位置查找问题,以便将其删除吗?
  • 我想我缩小了一点。我发现它在哪里死了,我以为是在启动时,但不是,当我调用 popen 时,我得到了这个:/build/gdb-HnfxP_/gdb-7.10/gdb/linux-nat.c:1773: internal -错误:linux_nat_resume:断言“lp!= NULL”失败。检测到 GDB 内部存在问题,
猜你喜欢
  • 2020-10-24
  • 2015-07-21
  • 2015-09-29
  • 1970-01-01
  • 2021-04-22
  • 2011-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多