Câu hỏi Cygwin trong Windows 7 x64


Chuyển sang Windows 7 x64, tôi gặp sự cố khi chạy Cygwin trong môi trường này. Dường như tính năng ASLR của Windows 7 là nguyên nhân. Nó gây ra các DLL khác nhau để tải tại các địa chỉ khác nhau trong bộ nhớ ảo, và có vẻ như Cygwin hy vọng có cùng địa chỉ cơ sở cho cùng một DLL trong các tiến trình cha và con, khi một tiến trình con được sinh ra. Rõ ràng có một kiểm tra cụ thể cho điều đó và thông báo sau được hiển thị:

5816 [main] perl 4148 C:\Cygwin\bin\perl.exe: *** fatal error - unable to remap C:\Cygwin\lib\perl5\5.10\i686-Cygwin\auto\Data\Dumper\Dumper.dll to same address as parent(0x9A0000) != 0xB40000

Tôi đã thử tắt ASLR bằng cách thiết lập HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ MoveImages: DWORD đến 0, nhưng nó dường như không làm bất cứ điều gì: các DLL vẫn được tải vào những nơi ngẫu nhiên (xác minh bởi các bên trên và bằng cách nhìn vào không gian địa chỉ của cả hai tiến trình bằng Process Explorer)

Trong khi chờ đợi tôi đang lên kế hoạch sử dụng XP Mode để chạy Cygwin, nó có vẻ hơi nhân tạo và tạo ra một số hạn chế.

Có ai biết một cách để chạy Cygwin trực tiếp dưới Windows 7 x64?


6
2017-09-12 21:32


gốc


Bạn đã thử chạy Cygwin trong "chế độ tương thích" chưa? - Reuben
Vâng. Cũng như Quản trị viên (tức là ở chế độ nâng cao). Không ai trong số họ giúp: ( - Rom


Các câu trả lời:


có cùng sự cố trong Windows 7 64 bit, rebase giải quyết nó:


4
2017-09-19 08:13



làm điều đó, cảm ơn! - Rom


perlrebase (Tôi là người bảo trì và tác giả)

Chưa được xác minh:

  • Nếu bạn vẫn gặp lỗi ngã ba, hãy thử xóa cờ ASLR trong dll's.
    peflags -d0 trong tất cả các dll (ví dụ: rebase.lst)

Tôi đang cố gắng này ngay bây giờ, và nếu nó giúp tôi sẽ phát hành một phiên bản perl mới.


1
2017-12-01 07:06



Bạn có thể giải thích cách thực sự giúp OP không? - Canadian Luke


Đó là một trong số ít tình huống mà bạn sẽ cần Chế độ Windows XPvà không tương thích với XP. Hy vọng rằng bộ vi xử lý của bạn đáp ứng các yêu cầu; Bạn sẽ cần một bộ xử lý hỗ trợ ảo hóa phần cứng.

Để chắc chắn hãy chạy công cụ thích hợp bên dưới.

  • Tiện ích nhận dạng bộ vi xử lý Intel
  • Tiện ích tương thích hệ thống ảo hóa AMD

Lưu ý XP Mode vẫn đang trong chế độ ứng cử viên phát hành. Ít nhất là trên máy 32 bit của tôi, nó hoạt động rất tốt. Tôi tin rằng bạn sẽ có trải nghiệm tương tự trên x64 của mình.

EDIT: Tôi chỉ có thể đăng một siêu liên kết cho mỗi câu trả lời cho đến khi tôi không còn là người dùng mới nữa. Vì vậy, các liên kết đi vào nhận xét cho bài đăng này


0
2017-09-13 02:33



vì vậy, Intel: intel.com/support/processors/tools/piu  AMD: support.amd.com/us/Search/… - A Dwarf
Bạn đã nói rằng bạn đã lên kế hoạch cho nó, chưa chạy nó dưới chế độ XP Mode. Trong mọi trường hợp, những giới hạn nào có thể xảy ra? XP Mode là chế độ ảo hóa đầy đủ. Chương trình không có cách nào để biết nó nằm trong môi trường VM. - A Dwarf
điều này là không liên quan đến câu hỏi ban đầu, nhưng chỉ trong trường hợp nó có thể hữu ích cho ai đó, đây là những hạn chế chạy trong chế độ XP cho tôi: a) x64 chế độ không có sẵn trong Win7 XP Mode b) chỉ có một CPU có sẵn c) một công cụ cụ thể hoạt động với các đĩa cục bộ khác với các đĩa "mạng" được ánh xạ, và do đó tôi cần chạy nó trên máy chính. Tất cả những vấn đề này đều có cách giải quyết hoặc có thể được dung thứ, nhưng giải pháp thực được ưu tiên - Rom