2011-01-20 25 views
16

Tôi khá hài lòng về cách các công cụ GNU chạy trong Cygwin của tôi trên Windows Seven. Tôi nghĩ việc sử dụng GNU/Linux dễ dàng hơn, nhưng công ty của tôi ở đây có chính sách sử dụng Windows Seven cho môi trường lập trình Lập trình viên. Vì vậy, giải pháp là Cygwin. Và tôi sử dụng Emacs một cách mạnh mẽ cho mục đích lập trình của tôi.Tại sao Emacs của tôi trong Cygwin chạy trên Windows Seven, luôn tạo Crash Dump?

Tuy nhiên, có vẻ như Emacs đang chạy trong Cygwin tạo ra một bãi chứa sự cố (phrew) phù hợp được in trên bảng điều khiển. Tôi đã phải làm mới nó bằng cách sử dụng C-l, nhưng điều đó làm cho tôi tự hỏi: vấn đề là gì?

Có ai có cùng sự cố ở đây không? Và giải pháp là gì. Đây là ví dụ của tôi về chạy org-googlecl.

Process googlecl-list xong


* 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 

Và nó luôn luôn tạo emacs-X11.exe.stackdump. Nó luôn luôn xảy ra khi tôi chạy một quá trình khác từ bên trong emacs, đó là nếu tôi chạy một tập tin thực thi từ Emacs.

Cảm ơn bạn

Trả lời

2

Tôi đã có vấn đề này cùng chạy giao diện điều khiển emacs qua Cygwin trên Windows 7.

Giải pháp của tôi cho điều này là để cài đặt các bản GNU Emacs Windows client: http://ftp.gnu.org/gnu/emacs/windows/ và thiết lập bash.exe Cygwin như vỏ của tôi.

Bạn có thể thấy emacs.d tôi/init.el tại https://github.com/tildedave/init.el/blob/master/init.el: đây là phần có liên quan để đảm bảo rằng Windows 7 Emacs chơi tốt với 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))) 

Đối với trọng lượng nhẹ trong- chỉnh sửa giao diện điều khiển Tôi sử dụng nano, mà không lõi đổ.

+0

Vâng, tôi nghĩ sử dụng gnu eamcs windows native client là giải pháp tốt nhất. Tôi sẽ có nó một đi. Cảm ơn các dấu chấm của bạn. rất hữu ích! – swdev

+0

Phew .. cảm ơn bạn. Tôi chỉ hoàn thành việc thiết lập mọi thứ. Nó hoạt động tốt! Các bash shell bên trong emacs, khá tốt (tôi chỉ không thích chuyển động của con trỏ tự do). Bây giờ tôi chỉ muốn làm lại màu đen. :) Nhưng tôi nghĩ rằng có thể thay đổi ... – swdev

+0

Tôi chấp nhận câu trả lời này, vì nó là giải pháp cho câu hỏi của tôi, nhưng may mắn thay, hiện tại tôi không sử dụng Cygwin Ported Emacs. Tôi sử dụng emacs win32 bản địa, nhưng chạy nó như là một ứng dụng MS DOS Prompt – swdev

2

tôi không thể giúp đỡ với các vấn đề cụ thể, nhưng như một sự thay thế có thể bạn có thể nhìn vào chạy Emacs trong một VM Linux lưu trữ trên hộp Windows của bạn. Bạn có thể sử dụng máy chủ X.org của Cygwin làm màn hình, vì vậy kết quả cuối cùng cũng giống như sử dụng các Emacs của Cygwin.

Điều đó có nghĩa là nhảy qua một vài vòng nữa, nhưng I find it a good solution và hy vọng sẽ tránh được sự cố.

Tôi đang sử dụng VirtualBox để lưu trữ máy ảo của mình.

+0

điều này chắc chắn mới đối với tôi! Nhưng công ty của tôi sử dụng các cửa sổ, vì vậy đó là có nghĩa là tôi đã cài đặt Linux? cảm ơn. – swdev

+2

VirtualBox (và các ứng dụng tương tự khác) cho phép bạn chạy Máy ảo (VM) trong hệ điều hành chủ. Vì vậy, bạn có thể có một máy ảo Linux chạy trong Windows. Bạn thực sự sẽ phải cài đặt Linux, nhưng bạn sẽ cài đặt nó trên máy ảo, chứ không phải máy thật. Bằng cách cung cấp một máy chủ X cục bộ như một màn hình hiển thị cho các ứng dụng 'từ xa' đang chạy trên máy ảo của bạn, các ứng dụng của bạn có thể có các cửa sổ cục bộ (Windows). – phils

+0

Xin chào, tôi sắp sẵn sàng chuyển sang giải pháp này vì quá nhiều segfaults trên cygwin đã phần nào đặt tôi ra khỏi nó. Tôi đã cài đặt VM trước đây, nhưng tôi đã không sử dụng máy chủ X.org của cygwin để hiển thị mọi thứ, có bất kỳ hướng dẫn nào bạn thấy hữu ích khi thực hiện việc này mà bạn có thể chỉ cho tôi không? –

6

Win7 hủy bỏ các quy trình ghi đè lên các phần của ngăn xếp. Nếu bạn tin tưởng thực thi Cygwin, bạn có chọn lọc có thể loại trừ chúng như sau:

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

tôi loại trừ như sau:

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, tôi chỉ biết điều đó. Hãy để tôi thử nó! – swdev

+0

Tốt, cho đến nay nó hoạt động tốt. Cảm ơn người đàn ông! – swdev

+0

Cảm ơn bạn rất nhiều vì điều này! Tôi đã được Googling mãi mãi cố gắng để giải quyết vấn đề này và đây là điều duy nhất mà làm việc! – Steph

10

Gần đây tôi đã chạy vào vấn đề này khi nâng cấp phiên bản của tôi về Cygwin để 1.7.9- 1. pserice's solution trông đầy hứa hẹn nhưng không hiệu quả đối với tôi. Các giải pháp mà làm việc cho tôi là để chạy rebaseall:

  1. Đóng TẤT CẢ các quy trình Cygwin (Quy trình sử dụng Explorer để đảm bảo rằng không có gì đã cygwin1.dll nạp trong nó)
  2. Start> Run> Cmd.exe
  3. cd \cygwin\bin
  4. ash
  5. PATH=.
  6. rebaseall -v

Sau đó, emacs ngừng rơi mỗi khi nó cố gắng để chạy một tiến trình con.

+0

Tôi cũng có Cygwin 1.7.9-1 và sau khi nhận được bản cập nhật mới nhất của một vài tập tin (tôi chủ yếu muốn có được mintty) Tôi không thể tải bất kỳ tập tin trong emacs, như tôi nhận được nhiều tin nhắn STATUS_ACCESS_VIOLATION trong giao diện điều khiển và vfork tin nhắn trong emacs chính nó. rebaseall -v không giúp được gì. Không có đề xuất nào bên dưới về DEP, vì máy của tôi được thiết lập không sử dụng nó (Windows 7 x64). Có ai có gợi ý nào khác không? Tôi hoàn toàn mất mát. Cảm ơn! – Eric

+0

Ok, tôi nghĩ rằng tôi đã giải quyết nó, trong trường hợp bất cứ ai khác có vấn đề này. Tôi đã phải tắt McAfee Virus Scanning. Ngay sau khi tôi đã làm điều đó và khởi động lại môi trường Cygwin của tôi, tôi đã có thể chạy các emacs và một lần nữa tải các tập tin vào bộ đệm. – Eric

Các vấn đề liên quan