开发者

Why my Emacs in Cygwin running on Windows Seven, always create Crash Dump?

I quite satisfied of how GNU tools run in my Cygwin on Windows Seven. I think it's easier just to use GNU/Linux, but my company here has the policy of using Windows Seven for the Programmer programming environment. So, the soluti开发者_运维百科on is Cygwin. And I use Emacs intensively for my programming purpose.

But, it seems that Emacs running in Cygwin create a consistent (phrew) crash dump that printed on the console. I had to refresh it using C-l, but that makes me wonder : what is the problem anyway?

Does anyone has the same problem here? And what is the solution. This is my example of running org-googlecl.

Process googlecl-list finished


*  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

And it always create emacs-X11.exe.stackdump. It always happen when I run another process from within emacs, that is if I run a batch file from Emacs.

Thank you


I recently ran into this issue when upgrading my version of Cygwin to 1.7.9-1. pserice's solution looked promising but did not work for me. The solution that worked for me was to run rebaseall:

  1. Close ALL Cygwin processes (use Process Explorer to make sure that nothing has cygwin1.dll loaded in it)
  2. Start > Run > Cmd.exe
  3. cd \cygwin\bin
  4. ash
  5. PATH=.
  6. rebaseall -v

After that, emacs stopped crashing every time it tried to run a subprocess.


Win7 aborts processes that overwrite parts of the stack. If you trust cygwin executables, you can selectively exclude them as follows:

Computer -> Properties
         -> Advanced System Settings
         -> Performance
         -> Settings...
         -> Data Execution Prevention

I excluded the following:

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


I have had this same problem in running console emacs through cygwin on Windows 7.

My solution to this was to install the native GNU Emacs Windows client: http://ftp.gnu.org/gnu/emacs/windows/ and set cygwin's bash.exe as my shell.

You can see my emacs.d/init.el at https://github.com/tildedave/init.el/blob/master/init.el: here is the part relevant to making sure that the Windows 7 Emacs plays well with 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)))

For light-weight in-console editing I use nano, which does not core dump.


I can't help with the specific issue, but as a possible alternative you could look at running Emacs in a Linux VM hosted on your Windows box. You can use Cygwin's X.org server as the display, so the end result is largely the same as using Cygwin's Emacs.

It means jumping through a few more hoops, but I find it a good solution, and it will hopefully avoid the crashes.

I'm using VirtualBox to host my VM.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜