操作系统:Windows 10 Pro
Cygwin设置:2.889(64位)
vim:8.0.1567-1
终端:薄荷2.8.4
cygwin:2.10.0-1
我在2018/03/09更新了cygwin软件包,需要重启操作系统才能完成更新。但是有些服务正在运行,所以我当时没有重启。第二天,我重新启动了Windows,但发现vi / vim命令没有响应。即使我试图输入vi,vim或vi -V,vim -v,vim text.txt终端只响应没有。
$ vi
$
我检查了vi,vim仍然存在。
$ ls -l `which vi vim`
-rwxr-xr-x 1 bobchang None 1014803 三月 5 13:30 /usr/bin/vi
-rwxr-xr-x 1 bobchang None 2645011 三月 5 13:30 /usr/bin/vim
我检查了setup.log vim已被删除并安装。
2018/03/09 13:31:12 0 erase gvim 8.0.1567-1
2018/03/09 13:31:12 1 install gvim 8.0.1567-1
2018/03/09 13:31:12 2 erase vim 8.0.1567-1
2018/03/09 13:31:12 3 install vim 8.0.1567-1
2018/03/09 13:31:12 4 erase vim-common 8.0.1567-1
2018/03/09 13:31:12 5 install vim-common 8.0.1567-1
2018/03/09 13:31:12 6 erase vim-doc 8.0.1567-1
2018/03/09 13:31:12 7 install vim-doc 8.0.1567-1
2018/03/09 13:31:12 8 erase vim-minimal 8.0.1567-1
2018/03/09 13:31:12 9 install vim-minimal 8.0.1567-1
2018/03/09 13:31:17 running: C:\cygwin64\bin\bash.exe --norc --noprofile "/etc/preremove/vim.sh"
2018/03/09 13:31:17 Uninstalling gvim
2018/03/09 13:31:17 Uninstalling vim
2018/03/09 13:31:17 Uninstalling vim-common
2018/03/09 13:31:18 Uninstalling vim-doc
2018/03/09 13:31:19 Uninstalling vim-minimal
我手动删除并安装了带有相关软件包的vim但无助。
有谁知道如何解决此问题或如何调试以找到解决方案?
Upldate
cygcheck vim
的结果是
Found: C:\cygwin64\bin\vim.exe
Found: C:\Program Files (x86)\Vim\vim74\vim.exe
Found: C:\cygwin64\bin\vim.exe
C:\cygwin64\bin\vim.exe
C:\cygwin64\bin\cygwin1.dll
C:\WINDOWS\system32\KERNEL32.dll
C:\WINDOWS\system32\ntdll.dll
C:\WINDOWS\system32\KERNELBASE.dll
C:\WINDOWS\system32\api-ms-win-eventing-provider-l1-1-0.dll
C:\WINDOWS\system32\api-ms-win-core-processthreads-l1-1-1.dll
C:\WINDOWS\system32\api-ms-win-core-synch-l1-2-0.dll
C:\WINDOWS\system32\api-ms-win-core-file-l1-2-0.dll
C:\WINDOWS\system32\api-ms-win-core-timezone-l1-1-0.dll
C:\WINDOWS\system32\api-ms-win-core-localization-l1-2-0.dll
C:\WINDOWS\system32\api-ms-win-core-file-l2-1-0.dll
C:\WINDOWS\system32\api-ms-win-core-xstate-l2-1-0.dll
C:\cygwin64\bin\cygiconv-2.dll
C:\cygwin64\bin\cygintl-8.dll
C:\cygwin64\bin\cygncursesw-10.dll
C:\WINDOWS\system32\USER32.dll
C:\WINDOWS\system32\win32u.dll
C:\WINDOWS\system32\GDI32.dll
strace /usr/bin/vim
的结果是The procedure entry point __memcpy_chk could not be located in the dynamic link library C:\cygwin64\bin\vim.exe.
$ strace /usr/bin/vim
--- Process 5056 created
--- Process 5056 loaded C:\Windows\System32\ntdll.dll at 00007ffed9350000
--- Process 5056 loaded C:\Windows\System32\kernel32.dll at 00007ffed8e10000
--- Process 5056 loaded C:\Windows\System32\KernelBase.dll at 00007ffed6510000
--- Process 5056 thread 10048 created
--- Process 5056 thread 2488 created
--- Process 5056 thread 212 created
--- Process 5056 loaded C:\Windows\System32\user32.dll at 00007ffed8bc0000
--- Process 5056 loaded C:\cygwin64\bin\cygiconv-2.dll at 00000003f4050000
--- Process 5056 loaded C:\cygwin64\bin\cygwin1.dll at 0000000180040000
--- Process 5056 loaded C:\Windows\System32\win32u.dll at 00007ffed59e0000
--- Process 5056 loaded C:\Windows\System32\gdi32.dll at 00007ffed8390000
--- Process 5056 loaded C:\cygwin64\bin\cygncursesw-10.dll at 00000003f3430000
--- Process 5056 loaded C:\cygwin64\bin\cygintl-8.dll at 00000003f3fa0000
--- Process 5056 loaded C:\Windows\System32\gdi32full.dll at 00007ffed5a50000
--- Process 5056 loaded C:\Windows\System32\msvcp_win.dll at 00007ffed6780000
--- Process 5056 loaded C:\Windows\System32\ucrtbase.dll at 00007ffed57d0000
--- Process 5056 thread 212 exited with status 0x0
--- Process 5056 thread 10048 exited with status 0x0
--- Process 5056 thread 2488 exited with status 0x0
--- Process 5056, exception c0000139 at 00007ffed9352b10
--- Process 5056 exited with status 0xc0000139
答案 0 :(得分:2)
__memcpy_chk
属于cygwin1.dll
它被添加到最后一个版本上 https://www.cygwin.com/ml/cygwin-announce/2018-02/msg00002.html
重新安装cygwin
软件包,因为它似乎未正确升级。