使用vim与病原体和rails.vim时,它有时会崩溃vim。这是我崩溃的控制台日志文件。我怎样才能防止这种情况发生?
Process: vim [16620]
Path: /usr/bin/vim
Identifier: vim
Version: ??? (???)
Code Type: X86-64 (Native)
Parent Process: zsh [961]
Date/Time: 2011-08-31 08:20:25.727 +0800
OS Version: Mac OS X 10.6.7 (10J869)
Report Version: 6
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: 0x000000000000000d, 0x0000000000000000
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 libSystem.B.dylib 0x00007fff832af5d6 __kill + 10
1 vim 0x0000000100118943 0x100000000 + 1149251
2 libSystem.B.dylib 0x00007fff832c166a _sigtramp + 26
3 vim 0x00000001000249a2 0x100000000 + 149922
4 vim 0x00000001000249ef 0x100000000 + 149999
5 vim 0x00000001000249ef 0x100000000 + 149999
6 vim 0x0000000100024a1c 0x100000000 + 150044
7 vim 0x00000001000249ef 0x100000000 + 149999
8 vim 0x000000010002554c 0x100000000 + 152908
9 vim 0x0000000100118b75 0x100000000 + 1149813
10 vim 0x000000010010c138 0x100000000 + 1098040
11 vim 0x0000000100069900 0x100000000 + 432384
12 vim 0x000000010006cf45 0x100000000 + 446277
13 vim 0x000000010006d1a3 0x100000000 + 446883
14 vim 0x000000010006d5d6 0x100000000 + 447958
15 vim 0x00000001000a475c 0x100000000 + 673628
16 vim 0x0000000100075bb8 0x100000000 + 482232
17 vim 0x0000000100077e22 0x100000000 + 491042
18 vim 0x0000000100000978 0x100000000 + 2424
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x0000000000000002 rcx: 0x00000001001cdbc8 rdx: 0x0000000000000000
rdi: 0x00000000000040ec rsi: 0x000000000000000b rbp: 0x00000001001cdbe0 rsp: 0x00000001001cdbc8
r8: 0x0000000000000000 r9: 0x00007fff7073fbc0 r10: 0x00007fff832b1552 r11: 0x0000000000000206
r12: 0x0000000000000029 r13: 0x000000000000007c r14: 0x000000000000007c r15: 0x0000000000000044
rip: 0x00007fff832af5d6 rfl: 0x0000000000000206 cr2: 0x0000000101185000
Binary Images:
0x100000000 - 0x100155fef +vim ??? (???) <F8247F1F-4D43-963A-D218-3D0E8ECFF899> /usr/bin/vim
0x7fff5fc00000 - 0x7fff5fc3bdef dyld 132.1 (???) <B536F2F1-9DF1-3B6C-1C2C-9075EA219A06> /usr/lib/dyld
0x7fff83260000 - 0x7fff83421fff libSystem.B.dylib 125.2.10 (compatibility 1.0.0) <9BAEB2F2-B485-6349-E1AB-637FE12EE770> /usr/lib/libSystem.B.dylib
0x7fff85845000 - 0x7fff85849ff7 libmathCommon.A.dylib 315.0.0 (compatibility 1.0.0) <95718673-FEEE-B6ED-B127-BCDBDB60D4E5> /usr/lib/system/libmathCommon.A.dylib
0x7fff85dcb000 - 0x7fff85e0afef libncurses.5.4.dylib 5.4.0 (compatibility 5.4.0) <E1F34D53-3D62-78C0-CAD8-8AD22C110A9E> /usr/lib/libncurses.5.4.dylib
0x7fff87ca5000 - 0x7fff87d9dff7 libiconv.2.dylib 7.0.0 (compatibility 7.0.0) <E0683DF0-8180-58A2-BA49-511111D4F36E> /usr/lib/libiconv.2.dylib
0x7fffffe00000 - 0x7fffffe01fff libSystem.B.dylib ??? (???) <9BAEB2F2-B485-6349-E1AB-637FE12EE770> /usr/lib/libSystem.B.dylib
答案 0 :(得分:3)
请求brew编译设置了调试标志的macvim,然后在调试器下运行它,这样当它崩溃时你可以要求调试器打印堆栈跟踪,这样你就可以看到哪个源代码行试图访问解除分配的内存区域这会导致SIGSEGV异常。
如果你设法得到那么远,那么看看你是否可以修复错误并向vim-dev列表提交补丁并且感觉好一周:)祝你好运!
答案 1 :(得分:1)
Vim有时会崩溃。如果您的ruby代码格式不正确。
process(:hello => 'world', :foo => 'bar')
你不应该写为:
process(:hello => 'world',
:foo => 'bar')
答案 2 :(得分:0)
在我的情况下,vim在小牛安装后停止工作。我跟踪了rvm的问题,这也是我的系统。 'vim -u NONE'跑得很好。关于重新编译命令-T(一个vim插件)有很多建议,但这样做并没有解决我的问题。我最后使用' rvm implode '来完全删除rvm。然后' brew uninstall vim&amp;&amp; brew install vim '。这个固定的vim,还有固定的macvim,它没有打开从控制台用'mvim'启动的窗口。因此,与小牛和rvm存在一些不兼容性,这会导致vim出现问题。
答案 3 :(得分:0)
经过数小时的研究,研究了不同的线程之后,可能有很多原因导致vim崩溃并收到该错误消息(不足为奇!)。但是在我的特定情况下,在以详细模式运行它之后,我意识到〜/ .vimrc文件中有些东西会因为vim崩溃。因此,在删除〜/ .vimrc之后,很容易使一切恢复正常,而不再崩溃。只需确保保留备份,然后再删除,以防万一您自定义了Vim。