我试图从emacs v22.3.1转移到v23.1.1,一切顺利,直到我尝试使用gud在emacs中运行GDB。

当我做元X GDB并给出'gdb/my/reputable/tere'的命令时,窗口恰好出现,但是当我在键入返回键执行命令时在GDB提示下键入命令时,任何事情都不会发生,状态,状态Bar说“调试器:运行”,结果从未显示。我可以键入'ctrl-c ctrl-c'以杀死命令并再次获取“(gdb)”提示,但是另一个命令以相同的方式失败。

这是Linux Centos V4 32位上的GDB v6.8。

还有其他人面对这个问题吗?最好的方法是什么?

我从提示(而不是gud)附加到GDB上,并得到了此堆栈跟踪:

#0  0x00fd77a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1  0x0020108d in poll () from /lib/tls/libc.so.6
#2  0x08111a07 in gdb_do_one_event (data=0x0) at event-loop.c:759
#3  0x0810f05f in catch_errors (func=0x8111970 <gdb_do_one_event>, func_args=0x0, errstring=0x8236200 "", mask=6) at exceptions.c:513
#4  0x080c25e7 in tui_command_loop (data=0x0) at .././gdb/tui/tui-interp.c:153
#5  0x0810f2cf in current_interp_command_loop () at interps.c:276
#6  0x0807f0b3 in captured_command_loop (data=0x0) at .././gdb/main.c:99
#7  0x0810f05f in catch_errors (func=0x807f0a8 <captured_command_loop>, func_args=0x0, errstring=0x8236200 "", mask=6) at exceptions.c:513
#8  0x0807f7eb in captured_main (data=0xbff00a60) at .././gdb/main.c:882
#9  0x0810f05f in catch_errors (func=0x807f0e0 <captured_main>, func_args=0xbff00a60, errstring=0x8236200 "", mask=6) at exceptions.c:513
#10 0x08080027 in gdb_main (args=0x7fffffff) at .././gdb/main.c:891
#11 0x0807f0a1 in main (argc=-4, argv=0xfffffffc) at gdb.c:33
#12 0x00153df3 in __libc_start_main () from /lib/tls/libc.so.6
#13 0x0807efdd in _start ()
有帮助吗?

解决方案

这是一个疯狂的猜测:

EMACS的GUD模式要求GDB在打开注释后运行,以便可以正确解析输出。当重写MX GDB后,重写默认行Emacs吐出时,我一直对此感到厌烦。确保您的GDB命令行中包含“ -annotate = 3”,并查看是否有帮助。

其他提示

我在Emacs-23中使用了GDB ...或者至少,我比您走得更远...尝试时,堆栈窗口不会更新...我最终所做的是使用Emacs-23用于编辑(用于抗偏见的字体良好),但是使用Emacs-22进行调试...您都可以安装...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top