Gdb ddd在启动时挂起

Gdb ddd在启动时挂起,gdb,ddd-debugger,Gdb,Ddd Debugger,以前有人问过这个问题,我看到ddd新闻组的bug报告,但建议的解决方案都不适合我 它会出现,但当您尝试打开一个文件时,它会挂起消息“等待GDB准备就绪” 另一些人也报道了一个至关重要的事实,那就是它对某些用户来说效果很好,而对其他用户来说则不然。我比较了环境,没有发现任何显著的差异。任何建议都将不胜感激。删除~/.ddd接缝以解决此问题。我认为删除.ddd中的init文件也将解决此问题。无需删除整个.ddd文件夹。我试过了,成功了 此外,如果广泛修改ddd默认选项(如按钮和图形显示),则可以将i

以前有人问过这个问题,我看到ddd新闻组的bug报告,但建议的解决方案都不适合我

它会出现,但当您尝试打开一个文件时,它会挂起消息“等待GDB准备就绪”


另一些人也报道了一个至关重要的事实,那就是它对某些用户来说效果很好,而对其他用户来说则不然。我比较了环境,没有发现任何显著的差异。任何建议都将不胜感激。

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

我认为删除.ddd中的init文件也将解决此问题。无需删除整个.ddd文件夹。我试过了,成功了

此外,如果广泛修改ddd默认选项(如按钮和图形显示),则可以将init文件移到此文件夹之外,然后将某些选项复制回默认情况下由ddd创建的init文件


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

Decipher提出的简单删除init文件的建议也适用于我


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

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

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

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

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

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

在一步一步地缩小那些额外的线之后,我发现了“令人不快的线”。 该问题是由“扩展提示”的设置引起的。打开GDB设置对话框后,这一行的内容如下

set extended-prompt not set\n\
此“未设置”是gdb将在“显示扩展提示”中报告的内容。“不幸”设置扩展提示 在gdb中有点bug,所以如果我在一个没有ddd参与的shell中运行的gdb中输入“set extended prompt not set”,gdb也会被锁定

设置扩展提示的唯一安全方法似乎是当它包含字符串“(gdb)”时。因此我修改了init文件中有问题的行,现在它的内容如下:

set extended-prompt (gdb) \n\

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

按住Ctrl+D键,然后选择“重新启动DDD”似乎对我有效。

打开
GDB设置…
窗口时,即使不触摸任何设置,问题也会出现

因为如果您自定义了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设置…
面板,请记住在
edit
菜单中禁用选项
Save Options
,并将其保留为禁用状态,直到下一次重新启动DDDt


为了完整性(如@hmogal所述)

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



使用DDD 3.2.12测试的所有内容。

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

发布您尝试过的内容,即使它不起作用,或者甚至可能链接到相关的错误报告,这可能不是一个坏主意要点。我尝试了:删除.gdbinit。通过.gdbinit将提示更改为“(gdb)”(尾随空格应该是重要的)。我删除了initrc。没有一个起作用。下面是到错误报告和建议修复的链接(对我来说不起作用):干净和简单。这必须传播到全世界,我几乎放弃了ddd,才看到这也解决了我的问题。一次。然后问题再次出现。然后它又解决了它。等等。总之,我每次调用ddd时都必须删除~/.ddd。这也解决了我的问题,而不必破坏我的设置。我发现此解决方案也是,但保留值字段为空。设置值在启动时仍然挂起。这是一个很好的解决方案!谢谢您!多年来,我尝试了上面的其他两个解决方案,取得了一些成功,但结果证明这是最简单和最可靠的。我曾经删除.ddd,并保留了一个“干净”的tar文件“.ddd与我的首选设置一起使用afte
CTRL+d