我正在查看我们的某个应用中的段错误。启动应用后不久,主gdb
状态栏将变为:
(调试器:运行[signal-received])
出现(gdb)
提示符,但所有其他窗口的内容保持不变(空)。在提示符下键入任何内容都不会做任何事情 - gdb
似乎挂起了。在command line
上执行相同的步骤会产生gdb
的预期输出,并带有完整且正确的回溯。
这是我第一次使用-i=mi
和emacs
之间的gdb
集成进行调试。我正在使用emacs
24.2和gdb
7.5。
关于如何进一步调试,有什么建议吗?
是否有可能降低整合水平?这会让我确定导致问题的区域吗?
最后一点是,应用程序的初始加载时间约为70秒,而command line
约为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.gz
和gdb-ui.elc
来自备份)~/emacs-modes
)然后将以下内容添加到.emacs:
(add-to-list 'load-path "~/emacs-modes")
(require 'gdb-ui)
正在运行gdb
现在将使用旧的--annotate=3
模式而不是-i=mi
。