2011-01-20 7 views
16

Jestem całkiem zadowolony z tego, jak działają narzędzia GNU w moim Cygwin na Windows Seven. Myślę, że łatwiej jest używać GNU/Linuksa, ale moja firma ma zasady używania Windows Seven dla środowiska programowania programisty. Tak więc rozwiązaniem jest Cygwin. Używam intensywnie Emacsa do celów programistycznych.Dlaczego moje Emacs w Cygwin działa na Windows Seven, zawsze tworzyć Crash Dump?

Wygląda jednak na to, że Emacs działający w Cygwin tworzy spójny zrzut pamięci, wydrukowany na konsoli. Musiałem odświeżyć go za pomocą C-l, ale to mnie zastanawia: w czym problem?

Czy ktoś ma ten sam problem tutaj? I jakie jest rozwiązanie. To jest mój przykład działania org-googlecl.

Process googlecl-lista zakończeniu


* 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 

I zawsze tworzyć emacs-X11.exe.stackdump. Zdarza się to zawsze, gdy uruchamiam inny proces z poziomu emacs, czyli gdy uruchamiam plik wsadowy z Emacs.

Dziękuję

Odpowiedz

2

Miałem ten sam problem w prowadzeniu emacsowi konsoli poprzez Cygwin na Windows 7.

Moje rozwiązanie było zainstalować klienta natywnego GNU Emacs Windows: http://ftp.gnu.org/gnu/emacs/windows/ i ustawić bash.exe Cygwin jako swojej skorupy.

Można zobaczyć moją emacs.d/init.el na https://github.com/tildedave/init.el/blob/master/init.el: tutaj jest częścią istotne dla upewniając się, że Windows 7 Emacs gra dobrze z 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))) 

Dla lekkich in- edycja konsolowa Używam nano, która nie wykonuje zrzutu pamięci.

+0

Tak, myślę, że używanie rodzimego klienta windows gnu eamcs jest najlepszym rozwiązaniem. Zrobię to. Dzięki za twoją dot-emacs. bardzo pomocne! – swdev

+0

Uff ... dziękuję. Właśnie kończę konfigurowanie rzeczy. To dobrze działa! Powłoka bash wewnątrz emacsa, całkiem dobra (po prostu nie podoba mi się swobodny ruch kursora). Teraz chcę znów zrobić to czarne. :) Ale myślę, że to może ulec zmianie ... – swdev

+0

Akceptuję tę odpowiedź, ponieważ jest to rozwiązanie mojego pytania, ale na szczęście obecnie nie używam Cygwin Ported Emacs. Używam natywnych emacs Win32, ale uruchamiam go jako aplikację MS DOS Prompt – swdev

2

nie mogę pomóc w konkretnej kwestii, ale jako możliwą alternatywę można spojrzeć na prowadzenie Emacs w Linux VM gospodarzem na swoim polu Windows. Możesz użyć serwera X.org Cygwin jako wyświetlacza, więc wynik końcowy jest w dużej mierze taki sam jak w przypadku Emacsa Cygwin.

Oznacza to przeskok przez kilka kolejnych obręczy, ale I find it a good solution, i miejmy nadzieję, że uniknie awarii.

Używam VirtualBox do hostowania mojej maszyny wirtualnej.

+0

to na pewno nowe dla mnie! Ale moja firma używa Windowsa, więc to znaczy, że muszę zainstalować Linuksa? dzięki. – swdev

+2

VirtualBox (i inne podobne aplikacje) umożliwiają uruchamianie maszyn wirtualnych (VM) w systemie hosta. Więc możesz mieć maszynę wirtualną Linux działającą w systemie Windows. Naprawdę musiałbyś zainstalować system Linux, ale zainstalowałbyś go na maszynie wirtualnej, a nie na prawdziwym komputerze. Następnie udostępniając lokalny serwer X jako wyświetlacz dla "zdalnych" aplikacji uruchomionych na maszynie wirtualnej, aplikacje mogą mieć okna lokalne (Windows). – phils

+0

Witam, jestem gotowy, aby przejść do tego rozwiązania, ponieważ zbyt wiele segfaultów na Cygwin nieco mnie zniechęciło. Zainstalowałem już maszyny wirtualne, ale nie użyłem serwera X.org cygwin do wyświetlania rzeczy, czy są jakieś instrukcje, które uznałeś za przydatne do robienia tego, co możesz wskazać mi? –

6

Win7 przerywa procesy, które nadpisują części stosu. Jeśli ufasz cygwin wykonywalne można selektywnie wyłączyć je w następujący sposób:

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

I wyłączone następujące:

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, po prostu to wiem. Pozwól mi spróbować! – swdev

+0

Miło, jak na razie działa dobrze. Dzięki! – swdev

+0

Dziękuję bardzo za to! Byłem Googlingiem zawsze próbującym rozwiązać ten problem i to była jedyna rzecz, która działała! – Steph

10

Niedawno wpadłem na ten problem podczas aktualizacji moją wersję Cygwin do 1.7.9- 1. pserice's solution wyglądał obiecująco, ale nie dla mnie. Rozwiązanie że pracował dla mnie było, aby uruchomić rebaseall:

  1. zamknąć wszystkie procesy Cygwin (użycie Process Explorer, aby upewnić się, że nic nie cygwin1.dll załadowana w nim)
  2. Start> Uruchom> CMD.exe
  3. cd \cygwin\bin
  4. ash
  5. PATH=.
  6. rebaseall -v

Po tym, Emacs zatrzymał upaść za każdym razem próbował uruchomić podproces.

+0

Ja też mam cygwin 1.7.9-1 i po otrzymaniu najnowszej aktualizacji kilku plików (głównie chciałem dostać miętowego) Nie mogę załadować żadnego pliku w emacs, ponieważ otrzymuję wiele komunikatów STATUS_ACCESS_VIOLATION w konsoli i vfork wiadomość w samym emacs. rebaseall -v nie pomaga. Podobnie jak poniżej sugestia o DEP, ponieważ moja maszyna jest skonfigurowana, aby jej nie używać (Windows 7 x64). Czy ktoś ma jakieś inne sugestie? Jestem kompletnie zagubiony. Dzięki! – Eric

+0

Ok, myślę, że to rozwiązałem, na wypadek, gdyby ktoś inny miał ten problem. Musiałem wyłączyć McAfee Virus Scanning. Gdy tylko to zrobiłem i ponownie uruchomiłem środowisko Cygwin, mogłem uruchomić emacs i ponownie załadować pliki do buforów. – Eric

Powiązane problemy