书签+列表书签使Emacs崩溃

书签+列表书签使Emacs崩溃,emacs,bookmarks,Emacs,Bookmarks,我使用的是Ubuntu 12.04和GNU Emacs 23.3.1 我刚刚尝试了书签+库,我从该站点下载了文件,例如bookmarks+.el 我把文件放在我的~/emacs目录中,然后 setq加载路径 附加列表nil~/emacs 加载路径 “需要”书签+ 在我的~/.emacs启动文件中。为了调试,我删除了~/.emacs中的所有其他内容 为了简单起见,假设我现在启动Emacs,如下所示: bash$ emacs ~/.emacs & 然后我使用C-xpm添加一个书签,然后输入

我使用的是Ubuntu 12.04和GNU Emacs 23.3.1

我刚刚尝试了书签+库,我从该站点下载了文件,例如bookmarks+.el

我把文件放在我的~/emacs目录中,然后

setq加载路径 附加列表nil~/emacs 加载路径 “需要”书签+ 在我的~/.emacs启动文件中。为了调试,我删除了~/.emacs中的所有其他内容

为了简单起见,假设我现在启动Emacs,如下所示:

bash$ emacs ~/.emacs &
然后我使用C-xpm添加一个书签,然后输入 C-x r l调出书签缓冲区,我得到以下屏幕截图:

现在有几种方法可以使Emacs崩溃:

我可以等几秒钟 我可以尝试用C-x b来改变缓冲区 我可以选择书签,然后返回.emacs缓冲区,然后再次按C-x b。。 当它崩溃时,帧变灰,什么也没有发生,而在Gnome终端中,我得到了错误消息

*** glibc detected *** emacs: realloc(): invalid next size: 0x000000000228e1a0 ***

如果您在尝试不同的Emacs构建顺序后遇到相同的问题,则不太重要,并且项目不一定相关,即,尝试以下一种或多种方法:

从更新加载路径的sexp中删除nil。并删除~/.emacs,除非它是目录。加载路径应该是目录名列表。它应该包括书签+文件所在的目录。通常,您需要添加到列表“load path/some/directory”以将目录添加到加载路径

对于您的测试,除非您已经这样做,否则请删除书签文件。从零开始,就像你清空你的.emacs一样。从没有书签开始

如果您在不加载Bookmark+的情况下执行相同的操作(例如,C-x r l后跟C-x b),即使用普通的Emacs书签代码,会发生什么情况

删除任何字节编译的Bookmark+文件,因此使用*.el文件,而不是*.elc。然后将debug on error设置为t。但是如果Emacs崩溃了,那么您可能不会得到Lisp回溯

尝试在条目上使用M-x debug开关切换到buffer或任何您认为可能发生崩溃的其他函数,然后使用d逐步完成调试器,或者使用c跳过您不关心的部分。为了获得最清晰的详细信息,请加载Lisp源文件,该文件定义了在输入时传递给调试的函数。例如,如果是切换到缓冲区,那么在最近的Emacs构建中,文件将是window.el。C-HF切换到缓冲区或任何函数来查看要加载的文件。使用带有显式.el后缀的Load file或Load library(不需要)加载文件,因此加载*.el

每个Emacs崩溃都表明Emacs错误Emacs永远不会崩溃。如果崩溃在当前目录中创建了一个文件emacs_backtrace.txt,则使用M-x report emacs bug并将该文件包含在bug报告中

如果调试有助于缩小崩溃的原因,那么考虑使用MX报告Emacs Bug来报告缩小的配方以重现崩溃。


这在24.3中可以复制吗?我无法在我的机器上安装Emacs版本24.3,我没有超级用户访问权限。。也许其他人可以测试这个?如果安装了gcc,您仍然可以从源代码构建Emacs。不需要超级用户。好的,我来看看。你应该说./configure-prefix=~/emacs。Prefix设置安装的基本目录。默认情况下,它是/usr/local,但您可以将其更改为所需的任何目录。之后,只需将此目录添加到~/.bashrc中的路径,以便您可以从那里启动可执行文件。问题似乎是我安装的书签文件与Gnu Emacs版本23.3.1不兼容。您是否可以尝试缩小该书签文件中哪些书签有问题?注释掉其中的1/2,然后是3/4,然后是7/8,等等,直到找到问题所在。书签文件可能已损坏。或者可能还有其他问题。你可以邮寄给我的书签文件最好缩小,你可以改变任何地点的名称等,如果你想。我来看看。我怀疑文件已损坏,可能是由于不正确地保留了一些文本属性。联系信息请参见bookmark+.el文件头。对不起,我不是指~/.emacs.bmk文件,而是指我从中复制的文件。我删除了文件~/.emacs.bmk,然后添加了一个书签,但问题仍然存在。如果是这样,请通过邮件与我联系。AFAIK与Emacs 23.3.1和其他23个次要版本以及Emacs 22和24兼容。再次尝试下载文件,然后尝试从emacs-Q no init file开始。把你能想到的最简单的食谱寄给我。但是,同样,如果Emacs本身崩溃,那么我们需要缩小范围,并将崩溃的最小配方作为Emacs bug报告给Emacs开发人员。将Bookmark+文件放在加载路径中,然后确实需要“Bookmark+”。您可以使用M-:或将该sexp放入*scratch*并在sexp之后使用C-x C-e和point来执行后一种操作。使用M-:添加到列表/路径/到/Bookm ark+/files/”加载路径以添加到加载路径或在*scratch*中评估该sexp。