2011-01-20 17 views
16

Estoy bastante satisfecho de cómo se ejecutan las herramientas GNU en mi Cygwin en Windows Seven. Creo que es más fácil usar GNU/Linux, pero mi compañía aquí tiene la política de usar Windows Seven para el entorno de programación del Programador. Entonces, la solución es Cygwin. Y uso Emacs intensivamente para mi propósito de programación.¿Por qué mi Emacs en Cygwin corriendo en Windows Seven, siempre crea Crash Dump?

Pero, parece que Emacs que se ejecuta en Cygwin crea un volcado de colapso coherente (imprevisto) que se imprime en la consola. Tuve que actualizarlo usando C-l, pero eso me hace preguntarme: ¿cuál es el problema de todos modos?

¿Alguien tiene el mismo problema aquí? Y cual es la solución. Este es mi ejemplo de ejecutar org-googlecl.

Proceso GoogleCL lista terminó


* 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 

Y siempre crear emacs-X11.exe.stackdump. Siempre sucede cuando ejecuto otro proceso desde dentro de emacs, es decir, si ejecuto un archivo por lotes desde Emacs.

Gracias

Respuesta

2

He tenido este mismo problema en el funcionamiento de la consola a través de emacs cygwin en Windows 7.

Mi solución a esto fue a instalar el cliente nativo de GNU Emacs de Windows: http://ftp.gnu.org/gnu/emacs/windows/ y establecer bash.exe de cygwin como mi concha.

Se puede ver mi emacs.d/init.el en https://github.com/tildedave/init.el/blob/master/init.el: aquí es la parte relevante para asegurarse de que el 7 de Windows Emacs juega bien con 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))) 

Para ligero in- Edición de consola utilizo nano, que no incluye volcado.

+0

Sí, creo que usar el cliente nativo de windows gnu eamcs es la mejor solución. Lo intentaré. Gracias por tu punto emacs. ¡muy útil! – swdev

+0

Phew .. gracias. Acabo de terminar de configurar las cosas. ¡Funciona bien! El shell bash dentro de emacs, bastante bueno (simplemente no me gusta el movimiento libre del cursor). Ahora solo quiero volver a hacerlo negro. :) Pero creo que eso está sujeto a cambios ... – swdev

+0

Acepto esta respuesta, ya que es la solución a mi pregunta, pero afortunadamente, actualmente no estoy usando Cygwin Ported Emacs. Uso emacs win32 nativos, pero ejecutándolo como una solicitud de MS DOS – swdev

2

no puedo ayudar con el tema específico, sino como una posible alternativa que podría mirar a correr Emacs en una máquina virtual Linux alojados en su caja de Windows. Puede usar el servidor X.org de Cygwin como pantalla, por lo que el resultado final es prácticamente el mismo que usar Cygwin's Emacs.

Significa pasar por algunos aros más, pero I find it a good solution, y con suerte evitará los bloqueos.

Estoy usando VirtualBox para alojar mi VM.

+0

esto seguramente nuevo para mí! Pero mi empresa usa Windows, ¿eso significa que tengo que instalar Linux? Gracias. – swdev

+2

VirtualBox (y otras aplicaciones similares) le permiten ejecutar máquinas virtuales (VM) dentro del sistema operativo host. Entonces puede tener una VM Linux ejecutándose dentro de Windows. De hecho, tendrías que instalar Linux, pero lo instalarías en la máquina virtual, no en la máquina real. Para entonces, al proporcionar un servidor X local como pantalla para aplicaciones 'remotas' que se ejecutan en su VM, sus aplicaciones pueden tener ventanas locales (Windows). – phils

+0

Hola, estoy a punto de pasar a esta solución, ya que demasiados archivos confidenciales en cygwin me han desanimado un poco. He instalado máquinas virtuales anteriormente, pero no he usado el servidor X.org de cygwin para mostrar cosas, ¿hay alguna instrucción que encuentre útil para hacer esto que pueda indicarme? –

6

Win7 anula los procesos que sobrescriben partes de la pila. Si confía en ejecutables cygwin, puede excluir de forma selectiva de la siguiente manera:

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

que excluyen los siguientes:

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 
+0

Wow, lo sé. ¡Déjame intentarlo! – swdev

+0

Bueno, hasta ahora funciona bien. ¡Gracias hombre! – swdev

+0

¡Muchas gracias por esto! He estado buscando en Google siempre tratando de resolver este problema y esto fue lo único que funcionó! – Steph

10

Recientemente me encontré con este problema al actualizar mi versión de Cygwin a 1.7.9- 1. pserice's solution parecía prometedor, pero no funcionó para mí. La solución que funcionó para mí fue correr rebaseall:

  1. cerrar todos los procesos de Cygwin (use el Explorador de proceso para asegurarse de que nada ha cargado cygwin1.dll en ella)
  2. Inicio> Ejecutar> cmd.exe
  3. cd \cygwin\bin
  4. ash
  5. PATH=.
  6. rebaseall -v

Después de eso, emacs detuvo estrellarse cada vez que trató de ejecutar un subproceso.

+0

Yo también tengo cygwin 1.7.9-1 y después de obtener la última actualización de un par de archivos (principalmente quería obtener mintty) no puedo cargar ningún archivo en emacs, ya que recibo muchos mensajes STATUS_ACCESS_VIOLATION en la consola y el vfork mensaje en emacs sí mismo. rebaseall -v no ayuda. Tampoco lo hace la sugerencia a continuación sobre DEP, ya que mi máquina está configurada para no usarla (Windows 7 x64). Alguien tiene alguna otra sugerencia? Estoy completamente perdido. ¡Gracias! – Eric

+0

Ok, creo que lo resolví, en caso de que alguien más tenga este problema. Tuve que desactivar McAfee Virus Scanning. Tan pronto como lo hice y reinicié mi entorno cygwin, pude ejecutar emacs y volver a cargar archivos en buffers. – Eric

Cuestiones relacionadas