首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么在Windows 7上运行的Cygwin中的Emacs总是创建崩溃转储?

为什么在Windows 7上运行的Cygwin中的Emacs总是创建崩溃转储?
EN

Stack Overflow用户
提问于 2011-01-20 18:51:59
回答 3查看 6.6K关注 0票数 16

我对GNU工具在我的Windows 7上的Cygwin中的运行方式相当满意。我认为只使用GNU/Linux更容易,但我的公司在这里的政策是使用Windows Seven作为程序员编程环境。因此,解决方案是Cygwin。我在编程时大量使用Emacs。

但是,在Cygwin中运行的Emacs似乎会创建一个一致的(phrew)崩溃转储,并在控制台上打印出来。我不得不使用C-l刷新它,但这让我想知道:到底是什么问题?

这里有没有人有同样的问题?解决方案是什么?这是我运行org-googlecl的示例。

进程googlecl-列表已完成

代码语言:javascript
复制
*  List of blogs with  in the *  List of blogs with  in the title                       :gblog:

12719501 [main] emacs-X11 1168 exception::handle: Exception: STATUS_ACCESS_VIOLATION
                                                                                    12720164 [main] emacs-X11 1168 open_stackdumpfile: Dumping stack trace to emacs-X11.exe.stackdump
                      12889237 [main] emacs-X11 764 exception::handle: Exception: STATUS_ACCESS_VIOLATION
                                                                                                         12889852 [main] emacs-X11 764 open_stackdumpfile: Dumping stack trace to emacs-X11.exe.stackdump

并且它总是创建emacs-X11.exe.stackdump。当我从emacs中运行另一个进程时,也就是说,如果我从Emacs中运行批处理文件,总是会发生这种情况。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-20 23:13:12

我在Windows7上通过cygwin运行控制台emacs时也遇到过同样的问题。

我的解决方案是安装原生GNU Emacs Windows客户端:http://ftp.gnu.org/gnu/emacs/windows/,并将cygwin的bash.exe设置为我的外壳。

你可以在https://github.com/tildedave/init.el/blob/master/init.el上看到我的emacs.d/init.el :这是确保Windows7Emacs与cygwin兼容的相关部分--

代码语言:javascript
复制
(if is-windows 
    (progn 
      (add-hook 'comint-output-filter-functions
                'shell-strip-ctrl-m nil t)
      (add-hook 'comint-output-filter-functions
                'comint-watch-for-password-prompt nil t)
      (setq explicit-shell-file-name "bash.exe")
      (setq shell-file-name explicit-shell-file-name)))

对于轻量级的控制台内编辑,我使用nano,它不会核心转储。

票数 2
EN

Stack Overflow用户

发布于 2011-02-07 01:33:19

Win7中止覆盖部分堆栈的进程。如果您信任cygwin可执行文件,则可以有选择地将其排除,如下所示:

代码语言:javascript
复制
Computer -> Properties
         -> Advanced System Settings
         -> Performance
         -> Settings...
         -> Data Execution Prevention

我排除了以下内容:

代码语言:javascript
复制
C:\cygwin\bin\bash.exe
C:\cygwin\bin\emacs.exe
C:\cygwin\bin\emacs-nox.exe
C:\cygwin\bin\emacs-X11.exe
C:\cygwin\bin\startxwin.exe
票数 6
EN

Stack Overflow用户

发布于 2011-01-20 19:57:08

具体问题我无能为力,但作为一种可能的替代方案,您可以考虑在Windows机器上托管的Linux VM中运行Emacs。您可以使用Cygwin的X.org服务器作为显示,因此最终结果与使用Cygwin的Emacs基本相同。

这意味着要跳过更多的障碍,但I find it a good solution,它将有望避免崩溃。

我正在使用VirtualBox托管我的VM。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4746187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档