Emacs tramp 导致堆栈溢出
Emacs tramp causes stack overflow
我使用的是 emacs 24.4.2 版。出于某种原因,我根本无法使用流浪汉。任何这样做的尝试,即尝试键入 /sudo::
都会导致应用程序小幅挂起,然后在消息缓冲区中出现以下错误:
expand-file-name: Lisp nesting exceeds `max-lisp-eval-depth'
我该怎么做才能修复该错误或正确诊断它?
更新:调试显示问题的根源是ido
。目前设置如下:
(setq ido-everywhere t)
(ido-mode t)
(setq ido-enable-flex-matching t)
将 debug-on-error
设置为非 nil
。查看调用 expand-file-name
的函数产生了错误。然后尝试 M-x debug-on-entry F
,其中 F
是该函数,并使用 d
单步执行调试器以查看会发生什么。在另一个 window 中查看定义该函数的代码,同时使用调试器。
您也可以首先尝试查看在没有初始化文件的情况下启动 Emacs 时是否会出现相同的错误行为:emacs -Q
。如果不是,则递归地平分您的 init 文件以找出它的哪一部分引入了问题。
我的 crystal 球在对我窃窃私语,你以这样一种方式建议一个函数,它最终会直接或间接地调用自己。
我使用的是 emacs 24.4.2 版。出于某种原因,我根本无法使用流浪汉。任何这样做的尝试,即尝试键入 /sudo::
都会导致应用程序小幅挂起,然后在消息缓冲区中出现以下错误:
expand-file-name: Lisp nesting exceeds `max-lisp-eval-depth'
我该怎么做才能修复该错误或正确诊断它?
更新:调试显示问题的根源是ido
。目前设置如下:
(setq ido-everywhere t)
(ido-mode t)
(setq ido-enable-flex-matching t)
将 debug-on-error
设置为非 nil
。查看调用 expand-file-name
的函数产生了错误。然后尝试 M-x debug-on-entry F
,其中 F
是该函数,并使用 d
单步执行调试器以查看会发生什么。在另一个 window 中查看定义该函数的代码,同时使用调试器。
您也可以首先尝试查看在没有初始化文件的情况下启动 Emacs 时是否会出现相同的错误行为:emacs -Q
。如果不是,则递归地平分您的 init 文件以找出它的哪一部分引入了问题。
我的 crystal 球在对我窃窃私语,你以这样一种方式建议一个函数,它最终会直接或间接地调用自己。