在emacs中使用gdb -i = mi集成24

时间:2012-12-19 19:31:27

标签: emacs gdb

我正在查看我们的某个应用中的段错误。启动应用后不久,主gdb状态栏将变为:

  

(调试器:运行[signal-received])

出现(gdb)提示符,但所有其他窗口的内容保持不变(空)。在提示符下键入任何内容都不会做任何事情 - gdb似乎挂起了。在command line上执行相同的步骤会产生gdb的预期输出,并带有完整且正确的回溯。

这是我第一次使用-i=miemacs之间的gdb集成进行调试。我正在使用emacs 24.2和gdb 7.5。

关于如何进一步调试,有什么建议吗?

是否有可能降低整合水平?这会让我确定导致问题的区域吗?

最后一点是,应用程序的初始加载时间约为70秒,而command line约为3秒。

3 个答案:

答案 0 :(得分:8)

您可以使用M-x gud-gdb来使用旧的gud模式(即没有mi互动)。不那么花哨但更可靠。

答案 1 :(得分:8)

通过将gdb-create-source-file-list设置为nil(使用自定义),可以减少加载时间。请参阅文档,了解它的作用以及在某些情况下它会大大增加加载时间的原因。

答案 2 :(得分:4)

来自emacs 23的gdb-ui似乎仍可在emacs 24中使用

  • 查找gdb-ui的副本(在我的案例中gdb-ui.el.gzgdb-ui.elc来自备份)
  • 将这些放入目录(我添加了~/emacs-modes

然后将以下内容添加到.emacs:

(add-to-list 'load-path "~/emacs-modes")
(require 'gdb-ui)

正在运行gdb现在将使用旧的--annotate=3模式而不是-i=mi