Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

emacs

cygwin

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 solution 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

like image 759
swdev Avatar asked Jan 20 '11 10:01

swdev


4 Answers

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.

like image 192
Adam Rosenfield Avatar answered Oct 18 '22 07:10

Adam Rosenfield


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
like image 42
pserice Avatar answered Oct 18 '22 06:10

pserice


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.

like image 2
tildedave Avatar answered Oct 18 '22 06:10

tildedave


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.

like image 2
phils Avatar answered Oct 18 '22 06:10

phils