vim发出致命信号SEGV

时间:2011-08-31 00:33:16

标签: ruby-on-rails vim crash zsh

使用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

4 个答案:

答案 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。