6

При переходе на Windows 7 x64 у меня возникают проблемы с запуском Cygwin в этой среде. Похоже, что функция ASLR в Windows 7 является причиной. Это приводит к загрузке различных библиотек DLL по разным адресам в виртуальной памяти, и похоже, что Cygwin ожидает одинаковые базовые адреса для одних и тех же библиотек DLL в родительском и дочернем процессах, когда порождается дочерний процесс. Видимо, для этого есть специальная проверка, и отображается следующее сообщение:

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

Я попытался отключить ASLR, задав для HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\MoveImages: DWORD значение 0, но, похоже, ничего не происходит: библиотеки DLL по-прежнему загружаются в случайные места (проверено выше сообщение и, посмотрев на адресное пространство обоих процессов с помощью Process Explorer)

Хотя в то же время я планирую использовать XP Mode для запуска Cygwin, он кажется немного искусственным и создает некоторые ограничения.

Кто-нибудь знает способ запуска Cygwin напрямую под Windows 7 x64?

3 ответа3

4

была та же проблема под Windows 7 64-битной, rebase решает ее:

1

Perlrebase (я сопровождающий и автор)

Еще не подтверждено:

  • Если вы все еще получаете ошибки форка, попробуйте очистить флаг ASLR в DLL.
    peflags -d0 во всех dll (например, в вашем rebase.lst)

Я пытаюсь это сейчас, и если это поможет, я выпущу новую версию Perl.

0

Это одна из тех немногих ситуаций, в которой вам потребуется режим Windows XP, а не совместимость с XP. Надеюсь, ваш процессор соответствует требованиям; Вам понадобится процессор, поддерживающий аппаратную виртуализацию.

Чтобы быть уверенным, запустите соответствующий инструмент ниже.

  • Утилита идентификации процессоров Intel
  • Утилита совместимости систем виртуализации AMD

Примечание. Режим XP все еще находится в режиме кандидата на выпуск. По крайней мере, на моей 32-битной машине он ведет себя хорошо. Я уверен, что у вас будет похожий опыт на вашем x64.

РЕДАКТИРОВАТЬ: я могу опубликовать только одну гиперссылку на ответ, пока я больше не новый пользователь. Так что ссылки идут на комментарий к этому сообщению

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .