几天前,每次我在存储库中启动Git GUI时,它会显示这个可怕的错误消息,并在单击OK后退出:
prepare-commit-msg hook failed:
0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x0, BaseAddress 0x68560000, RegionSize 0x260000, State 0x10000
C:\Program Files (x86)\Git\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0
You must correct the above errors before committing.
Run Code Online (Sandbox Code Playgroud)
它只发生在Git GUI上,只有在存储库(旧的或新创建的)中才会发生.Git Bash中的常用命令包括提交工作正常.
使用较新的软件包卸载和重新安装(仅更改次要版本)并未解决此问题.它仍然发生在旧的存储库以及新创建的存储库中.
在干净的机器上这个问题不会重现,所以我想这是我的盒子上的东西,但我不记得安装任何有趣的东西.我记得在很长一段时间之后关掉我的盒子,所以也许有些Windows Update可能会触发这个 - 这也可以解释为什么其他机器不会受到影响 - 这是自上次Win更新后的2-3个月.
任何想法如何阐明这一点?(因为我只能在一台机器上看到它,在我知道它不是我/其他应用程序的错误之前我不想将它提交给官方跟踪器......)
第一条评论后更新:
如果删除或重命名钩子脚本,它是否有效?
有趣的是,但钩子脚本实际上根本不存在(没有钩子脚本存在 - .git\hooks中只有*.sample文件).甚至没有其他地方(git program dir等)
跟踪它,以便您知道它运行的命令 - 来自git-bash run
git gui --trace
遗憾的是,这不会向shell输出任何内容.行为是一样的.
也许在那里得到gdb.
我试过,但gdb没有输出任何有用的东西.但是,我对GDB没有任何经验,我可能做错了.我得到了一个MinGW的gdb,从命令提示符下以git.exe作为参数运行它,然后运行run gui
.gdb没有输出任何有趣的东西:
(gdb) run gui
Starting program: C:\Program Files (x86)\Git\bin\git.exe gu
[New Thread 8264.0x1ce4]
[New Thread 8264.0x394]
[Inferior 1 (process 8264) exited with code 01]
(gdb)
Run Code Online (Sandbox Code Playgroud)
但我几乎可以肯定我做错了,所以建议不仅欢迎:)
确保没有安装cygwin,或者至少没有安装在PATH中
我确实安装了cygwin(就像我一直有,在git崩溃之前).从Cygwin我只在路径中有一些*.bat启动器和一些*.dll文件,但是我已经用ProcMon检查它没有触及它们,即使我从路径中删除它们仍然会得到同样的崩溃.
Xan*_*ard 10
这对我有用.
http://www.trinitycore.org/f/topic/5194-msysgit-couldnt-reserve-space-for-cygwins-heap/
解:
更改msysgit.dll的基址
c:\msysgit\bin>rebase.exe -b 0x50000000 msys-1.0.dll
我也遇到过这个问题
我用它解决了
http://support.code-red-tech.com/CodeRedWiki/VirtualAllocPointerNull
显然这是由某些功能引起的,并且替换dll会为大多数人修复它
如果网站关闭 -
Virtual Alloc指针为空
很少,运行make可能会导致类似于此的错误:
0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x0, BaseAddress 0x71110000, RegionSize 0x350000, State 0x10000
\msys\bin\make.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0
Run Code Online (Sandbox Code Playgroud)
这是一个影响极少数客户的问题,并且取决于他们同时运行的其他应用程序.
这是由我们用于为产品提供构建环境的MSYS二进制文件中的一个功能引起的.
如果发生这种情况,您可以使用附加的zip文件中的文件替换文件\ msys\bin\msys-1.0.dll.msys-1.0.zip
请注意,这不能解决问题,而是移动DLL基地址.不幸的是,这个替换DLL也可能发生错误,同样取决于正在运行的其他应用程序.
再次进行 Windows 更新并重新启动操作系统后,问题消失了。
似乎其中一个更新引入了一个错误,该错误已在另一个更新中修复。或者它可能是一个“月相”错误。
我想我们永远不会知道...
归档时间: |
|
查看次数: |
8845 次 |
最近记录: |