Почему мой Emacs в Cygwin, работающий на Windows Seven, всегда создает Crash Dump? - PullRequest
16 голосов
/ 20 января 2011

Я вполне удовлетворен тем, как инструменты GNU работают в моем Cygwin на Windows Seven.Я думаю, что проще просто использовать GNU / Linux, но моя компания здесь придерживается политики использования Windows Seven для среды программирования.Итак, решение - Cygwin.И я интенсивно использую Emacs для своих целей программирования.

Но, похоже, Emacs, работающий в Cygwin, создает согласованный (phrew) аварийный дамп, который печатается на консоли.Мне пришлось обновить его с помощью Cl, но это заставляет меня задуматься: а в чем проблема?

У кого-нибудь здесь есть такая же проблема?И каково решение.Это мой пример запуска 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.

Спасибо

Ответы [ 4 ]

10 голосов
/ 26 апреля 2011

Я недавно столкнулся с этой проблемой при обновлении моей версии Cygwin до 1.7.9-1. Решение pserice выглядело многообещающе, но у меня не получалось. Решение, которое работало для меня, состояло в том, чтобы запустить rebaseall :

  1. Закрыть ВСЕ процессы Cygwin (используйте Process Explorer, чтобы убедиться, что в нем ничего не загружено cygwin1.dll)
  2. Пуск> Выполнить> Cmd.exe
  3. cd \cygwin\bin
  4. ash
  5. PATH=.
  6. rebaseall -v

После этого emacs прекращал аварийно завершать работу при каждой попытке запустить подпроцесс.

6 голосов
/ 06 февраля 2011

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 голосов
/ 20 января 2011

У меня была такая же проблема при запуске консольного emacs через cygwin в Windows 7.

Мое решение для этого было установить нативный клиент Windows GNU Emacs: http://ftp.gnu.org/gnu/emacs/windows/ и установить bash.exe в cygwin в качестве моей оболочки.

Вы можете увидеть мой emacs.d / init.el по адресу https://github.com/tildedave/init.el/blob/master/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, который не создает дамп ядра.

2 голосов
/ 20 января 2011

Я не могу помочь с конкретной проблемой, но в качестве возможной альтернативы вы могли бы рассмотреть запуск Emacs на виртуальной машине Linux, размещенной на вашем компьютере с Windows.Вы можете использовать сервер Cygwin X.org в качестве дисплея, поэтому конечный результат во многом такой же, как при использовании Emacs Cygwin.

Это означает, что нужно прыгнуть еще через несколько обручей, но Я считаю это хорошим решением, и мы надеемся избежать сбоев.

Я использую VirtualBox для размещения своей виртуальной машины.

...