23

之前有人问过问题,我看到关于 ddd 新闻组的错误报告,但没有一个建议的解决方案对我有用。

它出现了,但是当您尝试执行诸如打开文件之类的操作时,它会挂起消息“等待 GDB 准备好”。

其他人也报告了一个关键事实,即它对某些用户有效,而对其他用户无效。我已经比较了环境,找不到任何显着差异。任何建议将不胜感激。

4

8 回答 8

37

也遇到了这个问题。上面发布的简单解决方案是删除 ~/.ddd/ 目录中的 init 文件。

但这意味着您的所有自定义设置都将消失。所以我开始寻找真正的原因。我观察到只有在使用“GDB 设置”对话框后才会出现问题。一旦你打开这个对话框,上面提到的 init 文件将会增长,因为很多 gdb 设置将被存储在那里。

在逐步缩小这些额外的行之后,我发现了“违规行”。问题是由扩展提示的设置引起的。打开 GDB 设置对话框后,该行将显示为

set extended-prompt not set\n\

这个“未设置”是 gdb 将在“显示扩展提示”上报告的内容。不幸的是,“设置扩展提示符在 gdb 中有点问题,所以如果我在从没有涉及 ddd 的 shell 运行的 gdb 中输入“设置扩展提示符未设置”,gdb 也会锁定。

看起来设置扩展提示的唯一安全方法是当它包含字符串“(gdb)”时。所以我修改了 init 文件中的违规行,现在它看起来像这样:

set extended-prompt (gdb) \n\

使用此设置,我不再遇到问题。希望对您的情况也有帮助。

于 2014-07-10T12:45:08.330 回答
28

删除 ~/.ddd 接缝以解决问题。

于 2012-07-21T20:44:16.510 回答
11

执行 Ctrl+D,然后选择“重新启动 DDD”似乎对我有用。

于 2015-07-24T00:29:31.563 回答
4

打开窗口时会出现问题GDB Settings...,即使没有触摸任何设置。

~/.ddd/因为如果您自定义了 DDD 环境,则每次都删除整个配置目录并不是一种可行的方法,因此我找到了一个修复~/.ddd/init文件的解决方案,该解决方案也可以帮助您,而无需删除整个配置。

关闭 DDD 并使用文本编辑器打开文件

~/.ddd/init

搜索线

set extended-prompt not set\n\

并将其删除替换

set extended-prompt \n\

保存并运行 DDD。它将按应有的方式开始。

因为每次重复这个任务可能很乏味,特别是如果你像我一样经常更改 gdb 设置,我建议你像这样在你的 shell 环境中创建一个别名。

alias fix-ddd="sed '/not set/d' -i $HOME/.ddd/init"

最后一种方法的优点是它适用于 init 文件中的任何错误设置,而无需您的特定干预。


如果您不想使用 cli 修复 init 文件,另一种方法是按照之前的建议编辑 init 文件,如果您出于任何原因碰巧打开GDB Settings...面板,请记住在Edit菜单中禁用该选项Save Options并离开它禁用,直到下一次 DDD 重新启动。


为了完整起见(如@hmogal所述)点击

CTRL+d

在 GDB 挂起期间会杀死 GDB 并重新启动它以允许使用 DDD。不幸的是,这种方法不是一个好的解决方案,因为它会删除 init 文件中的整个 GDB 配置,甚至是您专门调整的设置。所以要注意。


一切都用 DDD 3.2.12测试过。

于 2016-05-11T21:48:49.177 回答
2

我认为删除 .ddd 中的初始化文件也可以解决这个问题。无需删除整个 .ddd 文件夹。我试过了,它奏效了!

此外,如果您大量修改 ddd 默认选项(例如 Buttons 和 Graph Displays),您可以将 init 文件移动到此文件夹之外,然后将一些选项复制回 ddd 默认创建的 init 文件。

注意:删除init文件后重新启动ddd时,它将创建默认的init文件。

于 2013-04-25T11:01:40.413 回答
1

如果问题仍然存在,以下解决方法可能会有所帮助:

  • 像往常一样打开 ddd(例如ddd --debugger bashdb script.sh
  • exit在 ddd 的下窗格中输入

这似乎杀死了一个 bashdb 实例,然后另一个 bashdb 实例似乎在运行。bashdb 的第二个实例似乎工作正常,bash-script 源代码最终出现在顶部窗格中,并允许您单步执行和调试。

于 2014-07-01T06:14:29.023 回答
1

使用 Ctrl+D 会弹出一个对话框,要求重新启动 GDB 以解决此问题。在我的情况下,删除此特定文件夹中的 ~/.ddd 或 init 文件没有帮助。

于 2016-06-14T18:16:29.190 回答
0

解密的简单删除初始化文件的建议也对我有用。

对于那些不知道的人,~/.ddd.ddd您主目录中的文件夹。

于 2013-07-11T18:10:26.743 回答