2012-03-27 79 views
3

我很确定这个IDE是如何做到的,例如在windows上,eclipse使用MinGW(GNU工具链的窗口端口)中gdb的输出来映射源代码中的执行位置以及变量保存的值等。我使用gdb通过脚本准备了我们的应用程序chroot,并为调试目的做一些其他的引导程序。一旦脚本开始移动,输出全部是gdb。有没有什么办法可以配置emacs,这样它就可以使用gdb的输出并且允许一种图形调试器,可以与eclipse或者ms visual studio相媲美?我可以配置emacs来像图形调试器一样使用gdb吗?

+0

听说Emacs有一个奇妙的GDB接口。但我从来没有用过它。 – kindahero 2012-03-28 03:33:31

+1

emacs有一个gdb模式。我用过一次或两次。如果失败或者你不喜欢它可能会帮助http://users.snap.net.nz/~nickrob/ – 2012-03-28 03:36:42

回答

0

您可以通过M-x gdb直接从Emacs运行gdb。当你这样做时,你可以通过访问代码文件的缓冲区直接与它交互。例如,在代码文件缓冲区中,您可以点击C-Space来设置断点。

查看documentation以获取有关Emacs GDB图形界面的更多信息。

0

你如何运行脚本?如果你可以运行它作为gdb命令,那么emacs可能会消耗它的输出。

我很久没有从emacs使用gdb,但似乎M-x gdb要求执行外部命令。你能在那里给你的脚本名称吗?

如果您根本不知道gdb-mode,那么首先尝试一个更小的项目可能是一个好主意。

+0

我试着通过替换gdb命令来运行脚本。它开始,但似乎我的输入实际上从未被gdb接收过。例如,如果我输入break class :: method并按下回车键,那么我输入的文本会突出显示,但我从不会得到另一个输入提示,例如输入没有进入运行gdb的shell。 – 2012-03-28 13:42:05

4

M-x gdb命令期望GDB处于特定模式。在Emacs-21/22中,gdb必须以--fullname开头,在Emacs-23中,它需要--annotate=3,而在Emacs-24中它需要-i=mi,所以最可能的问题是您的脚本无法提供此参数。顺便说一句,在Emacs-23/24中,您仍然可以使用旧的--fullname模式,名称为M-x gud-gdb:它不那么花哨,但我觉得它更可靠。

+1

+ 1。你也可能想看看'gdb-many-windows'来获得你可能习惯的那种GUI。 – Francesco 2012-03-29 07:39:03

1

我不知道,但尝试M-X GDB,然后做这样M-X GDB-许多窗口,也许可以帮助你..

相关问题