web-dev-qa-db-ja.com

Windows 10でgitを使用しているときに「致命的なエラー-cygheapベースの不一致が検出されました」というエラーを修正するにはどうすればよいですか?

Windows 10(1803)でgitを使用すると、一部のコマンドで次のエラーが発生します。

git submodule add https://github.com/..../......git ......
      3 [main] basename (13656) C:\.....\basename.exe: *** fatal error - cygheap base mismatch detected - 0x64313400/0x11E3400.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.

この問題を解決するにはどうすればよいですか?

4
Julian Knight

このエラーにはいくつかの理由が考えられます。

たとえば、DLLのバージョンが競合している可能性があります。

ただし、Windows 10の最近のバージョンには、もともとMicrosoft EMETの一部であった追加の保護機能が組み込まれています。

特に、ASLR( Address Space Layout Randomization )のセキュリティ機能は、Git for Windowsのインストールに含まれているUNIXのような実行可能ファイルと互換性がありません。

この問題を修正するには、エクスプロイト保護設定を開き、[プログラム設定]タブに切り替えて、エラーにリストされている実行可能ファイル名を追加します(かなりの数になる可能性があります)。

上記の例では、basename.exeまたは少し偏執的である場合は絶対パス。

実行可能ファイルごとに、ASLR保護をオフにします。

詳細については、次のGitHubの問題をご覧ください。

https://github.com/desktop/desktop/issues/3096

3
Julian Knight