Emacs gdb无法运行。

4

我使用 M-x gdb 命令在 Emacs 中进入 gdb。然后,当我执行 b main 命令时,会得到以下输出:

b main                                                                             
Breakpoint 1 at 0x100000d61: file hanoi.c, line 27.                                
                        (gdb)                                                        
MI_HOOK_RESULT={HOOK_TYPE="breakpoint_create",bkpt={number="1",type="breakpoint",d\
  isp="keep",enabled="y",addr="0x0000000100000d61",func="main",file="hanoi.c",line="\
  27",shlib="/Users/rdp/Desktop/Hanoi-Moves_testcases/play",times="0"}},time={wallcl\
  ock="0.00104",user="0.00049",system="0.00027",start="1347691065.681152",end="13476\
  91065.682197"}       

当我尝试运行程序时,我得到了这个输出结果:
r                                                                    |21  } 14Starting program: /Users/rdp/Desktop/Hanoi-Moves_testcases/play                   
                                            (gdb)                                    |24} 16time={wallclock="0.00009",user="0.00005",system="0.00004",start="1347691082.360725\|25 ",end="1347691082.360816"}                                                       (gdb)  n

The program is not being run.                           

为什么我得到了冗长的输出,而且为什么无法逐步执行代码?

在发布了我的答案(见下文)后,我意识到 gud-gdb 对我来说运行得相当不错,而 gdb 则出现了问题。你用的是哪一个? - TaylanKammer
gud-gdb 目前更好,但仍然存在微妙的问题。但这不是问题所在。问题在于 Emacs gdb 出了问题。我的担忧大约有三个方面... 我担心 (1) Emacs 用户会放任不管 (2) 一些标准会被引用来声称它没有问题,而不是修复它 (3) 很快 gud-gdb 也将毫无疑问地出现问题(我承认 #3 是偏执狂,但这是有根据的偏执狂)。 - David Elson
2
抱歉,我对此感到非常强烈。我曾尝试过...并放弃了...几个建议的论坛补丁与dedicated windows有关的defuns/progns(当然我很欣赏人们的努力)。我已经使用Emacs超过20年了,并且我已经习惯了Emacs的“自己动手做”仅限于定制。基本功能(例如gdb)应该开箱即用。 - David Elson
2个回答

5

Emacs 24似乎破坏了GUD(与gdb和其他调试器的接口)。在IRC频道上有一些争吵,有一个人实际上声称它对他有效,但我也遇到了非常奇怪的行为。通过谷歌搜索还发现了以下问题(以及其他一些):gud-gdb emacs 24 not working

我会尝试制作一个最小的失败测试案例并提交错误报告。

编辑:您可能想尝试使用gud-gdb代替gdb。我不知道有什么区别,但它似乎对我有用。(没有全面测试。)


在 OSX 中运行 Emacs 24.2.1。可以确认 gdb 的行为与 OP 描述的一样,并且 gud-gdb 运行正常。 - Chap
我不得不转用gud-gdb,因为在emacs 24中gdb完全失效了。但是,gud-gdb没有漂亮的红色圆形图标来表示断点,这真是太遗憾了。 - bph

0

供日后参考,我正在运行10.7和emacs 24.3。随xcode 4一起提供的gdb版本(该平台的最新版本)太旧,无法与gdb模式配合使用。如果您从源代码获取最新版本并构建它,使用macports获取其依赖项(当时macports版本的gdb无法正常工作),则gdb模式可以正常工作,包括gdb-many-windows,我强烈推荐使用。

编辑:此外,gud-gdb显然是一个旧模式,因此它可能有效,但您“真正”想要的是gdb模式和gdb-many-windows......


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接