Come posso correggere l'errore "errore fatale - rilevata la mancata corrispondenza della base cygheap" quando utilizzo git su Windows 10?


2

Quando si utilizza git su Windows 10 (1803), alcuni comandi danno il seguente errore:

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.

Come posso risolvere questo problema?

Risposte:


2

Esistono diversi motivi per questo errore.

Ad esempio, potresti effettivamente avere una versione in conflitto della DLL.

Tuttavia, le versioni recenti di Windows 10 hanno un set di funzionalità di protezione aggiuntive che originariamente facevano parte di Microsoft EMET.

In particolare, la funzionalità di sicurezza ASLR ( Address Space Layout Randomization ) non è compatibile con gli eseguibili di tipo UNIX inclusi con l'installazione di Git per Windows.

Per risolvere questo problema, apri le impostazioni di Protezione exploit, passa alla scheda Impostazioni del programma e aggiungi i nomi degli eseguibili elencati negli errori (potresti avere un bel numero).

Nell'esempio fornito, puoi inserire solo basename.exeo l'intero percorso se sei un po 'più paranoico.

Per ogni eseguibile, disattivare la protezione ASLR.

Per ulteriori riferimenti, consultare il seguente problema GitHub:

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


1
Questo è bellissimo! Chiaro e brillante. Grazie per una spiegazione così dettagliata. Ho imparato molto oggi!
menssana,

Ho lo stesso problema qui: stackoverflow.com/questions/56201929/… . Non sai come si chiamano i programmi che devo aggiungere?
user3486308

1
Notare la seconda riga di output nella domanda originale? Ti mostra l'ex che devi aggiungere.
Julian Knight,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.