我非常满意GNU工具如何在Windows 7上的Cygwin中运行。我认为使用GNU / Linux更容易,但我公司的政策是将Windows 7用于程序员编程环境。所以,解决方案是Cygwin。我为了编程目的而密集使用Emacs。
但是,似乎在Cygwin中运行的Emacs会创建一个打印在控制台上的一致(phrew)故障转储。我不得不用C-l刷新它,但这让我想知道:无论如何问题是什么?
这里有没有人有同样的问题?什么是解决方案。 这是我运行org-googlecl的例子。
处理googlecl-list完成
* 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运行批处理文件。
谢谢
答案 0 :(得分:10)
我最近在将我的Cygwin版本升级到1.7.9-1时遇到了这个问题。 pserice's solution看起来很有前途,但对我不起作用。对我有用的解决方案是运行rebaseall:
cd \cygwin\bin
ash
PATH=.
rebaseall -v
之后,emacs每次尝试运行子进程时都会停止崩溃。
答案 1 :(得分:6)
Win7中止覆盖部分堆栈的进程。如果您信任cygwin可执行文件,则可以按如下方式选择性地排除它们:
Computer -> Properties
-> Advanced System Settings
-> Performance
-> Settings...
-> Data Execution Prevention
我排除了以下内容:
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
答案 2 :(得分:2)
我无法解决具体问题,但作为一种可能的替代方案,您可以查看在Windows机器上托管的Linux VM中运行Emacs。您可以使用Cygwin的X.org服务器作为显示,因此最终结果与使用Cygwin的Emacs大致相同。
这意味着跳过更多的箍,但是I find it a good solution,它有望避免崩溃。
我正在使用VirtualBox托管我的虚拟机。
答案 3 :(得分:2)
在Windows 7上通过cygwin运行控制台emacs时遇到了同样的问题。
我的解决方案是安装原生GNU Emacs Windows客户端:http://ftp.gnu.org/gnu/emacs/windows/并将cygwin的bash.exe设置为我的shell。
您可以在https://github.com/tildedave/init.el/blob/master/init.el看到我的emacs.d / init.el:这是与确保Windows 7 Emacs在cygwin中运行良好相关的部分 -
(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,它不会核心转储。