GDB Emacs在运行任何二进制文件后挂起

GDB Emacs在运行任何二进制文件后挂起,emacs,gdb,Emacs,Gdb,我正在尝试设置Emacs和GDB,以便可以运行GDB多窗口选项。然而,m-x gdb在运行任何二进制文件后都会挂起,Emacs开始消耗100%的CPU并变得无响应 我正在运行: OSX10.10.1 Emacs 25.0.50(自制软件中的版本) GDB 7.8.1(自制软件中的版本) 我的Emacs设置在这里: 下面是发生的情况: 我使用m-xgdb运行一些二进制文件,然后使用“gdb--I=mi[name of binary]”。一切正常,窗口设置正确,一切正常。然后我将命令“run”给

我正在尝试设置Emacs和GDB,以便可以运行GDB多窗口选项。然而,m-x gdb在运行任何二进制文件后都会挂起,Emacs开始消耗100%的CPU并变得无响应

我正在运行:

  • OSX10.10.1
  • Emacs 25.0.50(自制软件中的版本)
  • GDB 7.8.1(自制软件中的版本)
  • 我的Emacs设置在这里:
下面是发生的情况:

我使用m-xgdb运行一些二进制文件,然后使用“gdb--I=mi[name of binary]”。一切正常,窗口设置正确,一切正常。然后我将命令“run”给GDB,它会正确地运行代码。但一旦代码完成,Emacs就会变得无响应,并开始消耗100%的CPU功率。即使使用一个简单的hello world程序,也会发生这种情况。我尝试过提供各种选项,如--annotate=3、-fullname等

如果我改为运行m-xGUDGDB,我可以很好地运行相同的二进制文件,gdb正常退出,我可以继续使用Emacs


任何帮助都将不胜感激。

我的mac电脑中已确认该漏洞。此外,具有相同配置(实际上根本没有配置)的emacs在我的Linux机器上运行良好。所以这是一个与MacOSX相关的bug

更新:
  • emacs中的一些模式/插件似乎与“gdb”冲突。当我运行它而不在.emacs中加载任何内容时,当gdb调试完成时,它停止挂起emacs。 我将尝试跟踪导致此类问题的模式,并在此处报告
  • 当gdb完成调试时,许多模式可能会导致emacs冻结,例如“helm”和任何使用helm的模式,“function args”(在源代码中启用helm的某些功能)
  • 在我的配置中,启用了几十种模式,
    helm
    是导致
    gdb
    在到达末尾时冻结emacs的关键模式
  • 这不是由于
    helm
    ,而是由于
    语义模式
    ,当您想使用
    helm-semantic或imenu
    时,可能会启用该模式
结论: 这是由
语义模式
造成的,该模式在Mac OS X中表现不佳,甚至其基本功能也存在缺陷。在Linux下,它没有任何明显的问题,这就是为什么
gdb
在Linux下工作的原因。搜索
.emacs
,确保禁用所有
语义模式
,然后它应该可以工作

请注意,即使在运行
gdb
之前禁用了
语义模式
,但如果最初启用了
语义模式
,它仍将冻结emacs<代码>语义模式最初已禁用

感谢thierryvolpiatto在调试过程中提供的帮助:

太好了,非常感谢您的回答!也许我会再次尝试这种编辑/调试模式:)