虽然从Finder启动Emacs(24.3.93.1)可以正常运行,但是如果启动了终端版本,则:
/Applications/Emacs.app/Contents/MacOS/Emacs -nw
Emacs崩溃:
Fatal error 11: Segmentation fault[1] 51512 abort /Applications/Emacs.app/Contents/MacOS/Emacs -nw
。
看来问题是由init.el中的一行引起的,
(set-face-attribute 'default nil :font "Menlo-16")
如果将该行注释掉,则Emacs的终端版本也将正常启动。
为了查明崩溃原因,我花了几个小时(将init.el减少一半)。
我知道,无论如何,Emacs都将继承终端应用程序中指定的任何字体和字体大小(基本上,该行在cli中没有意义。)
- 一般来说,是否有更好的方法来调试崩溃的Emacs?也许使用某种cli调试器可以打印出更具描述性的消息?
- 为什么该行通过cli导致Emacs崩溃,但如果不是从Finder启动则不会崩溃?
它真的是从cli启动的吗?或启动导致问题的终端版本?尝试在set-face-attribute周围捕获一些错误?(条件情况错误(set-face-attribute ...)(错误(消息“
—
Whoops
提交错误报告。Emacs永远不会由于Lisp代码而崩溃。但这可能与您使用的特定版本有关,这是正式版本吗?
—
马拉巴巴2014年
@ nic-ferrier:我现在在init.el中只有一行,但
—
gsl 2014年
(condition-case err (set-face-attribute 'default nil :font "Menlo-16") (error (message "Whoops!")))
仍然有相同的崩溃和相同的错误消息。没有其他以省略号开头的消息。
@ malabarba:我已经尝试
—
gsl 2014年
GNU Emacs 24.3.1 (x86_64-apple-darwin, NS apple-appkit-1038.36) of 2013-03-13 on bob.porkrind.org
从emacsformacosx.com使用,并且Emacs不会崩溃。因此,它必须是更高版本中的错误。我将提交错误报告。
正如@Malabarba指出的:(立即)提交错误报告:
—
提请2014年
M-x report-emacs-bug
。然后,Emacs开发人员将引导您完成如何帮助调试问题的步骤。