Windows 7 x64 下的 Cygwin

Rom*_*Rom 6 windows-7 cygwin

迁移到 Windows 7 x64,我在此环境中运行 Cygwin 时遇到问题。看起来原因是 Windows 7 的 ASLR 功能。它会导致各种 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
Run Code Online (Sandbox Code Playgroud)

我尝试通过将 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\MoveImages: DWORD 设置为 0 来关闭 ASLR,但它似乎没有做任何事情:DLL 仍然加载到随机位置(通过上述验证消息并使用 Process Explorer 查看两个进程的地址空间)

与此同时,我计划使用 XP Mode 来运行 Cygwin,这似乎有点人为并造成了一些限制。

有人知道在 Windows 7 x64 下直接运行 Cygwin 的方法吗?

aki*_*ira 4

在Windows 7 64位下有同样的问题,rebase解决了它: