6

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

(调试器:运行[信号接收])

出现(gdb)提示,但所有其他窗口的内容保持不变(空)。在提示符下键入任何内容都不会执行任何操作 -gdb似乎挂起。使用完整且正确的回溯command line对预期输出结果运行相同的步骤。gdb

这是我第一次调试 和之间的-i=mi集成。我正在使用24.2 和7.5。emacsgdbemacsgdb

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

是否可以降低集成度?这可以让我确定是哪个区域导致了问题吗?

最后一点是,应用程序的初始加载大约需要 70 秒,而command line.

4

3 回答 3

8

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

于 2012-12-20T02:18:02.933 回答
8

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

于 2013-02-19T23:30:07.983 回答
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.

于 2012-12-20T09:29:45.920 回答