Vim -p: Ölümcül sinyal SEGV yakalandı mı?


12

Vim -pseçeneği ile başlattığımda bu sorunu alıyorum . Varsayalım ki,

vim -p first.txt second.txt

Sonra düzenledikten sonra first.txtben gitmek second.txtkullanarak gt. Tuşlara basın ggve Gtekrar. Bu hata üretir

Vim: Caught deadly signal SEGV

Bu noktada, Vim dahil olmak üzere herhangi bir sinyale yanıt vermez Ctrl D. Bu oturumu sadece terminali öldürerek kapatabilirim.

Bu sorun yalnızca Vim -pseçeneği ile çağırdığınızda ortaya çıkar . first.txtÖnce açıp sonra :tabeaçmak için kullanırsam second.txt, bu sorun ortaya çıkmaz.

Bunun neden olabileceği hakkında bir fikrin var mı?


Çıktı vim --version:

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan  2 2014 19:40:46)
Included patches: 1-52
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by buildd@
Huge version with GTK2-GNOME GUI.  Features included (+) or not (-):
+acl             +farsi           +mouse_netterm   +syntax
+arabic          +file_in_path    +mouse_sgr       +tag_binary
+autocmd         +find_in_path    -mouse_sysmouse  +tag_old_static
+balloon_eval    +float           +mouse_urxvt     -tag_any_white
+browse          +folding         +mouse_xterm     +tcl
++builtin_terms  -footer          +multi_byte      +terminfo
+byte_offset     +fork()          +multi_lang      +termresponse
+cindent         +gettext         -mzscheme        +textobjects
+clientserver    -hangul_input    +netbeans_intg   +title
+clipboard       +iconv           +path_extra      +toolbar
+cmdline_compl   +insert_expand   +perl            +user_commands
+cmdline_hist    +jumplist        +persistent_undo +vertsplit
+cmdline_info    +keymap          +postscript      +virtualedit
+comments        +langmap         +printer         +visual
+conceal         +libcall         +profile         +visualextra
+cryptv          +linebreak       +python          +viminfo
+cscope          +lispindent      -python3         +vreplace
+cursorbind      +listcmds        +quickfix        +wildignore
+cursorshape     +localmap        +reltime         +wildmenu
+dialog_con_gui  +lua             +rightleft       +windows
+diff            +menu            +ruby            +writebackup
+digraphs        +mksession       +scrollbind      +X11
+dnd             +modify_fname    +signs           -xfontset
-ebcdic          +mouse           +smartindent     +xim
+emacs_tags      +mouseshape      -sniff           +xsmp_interact
+eval            +mouse_dec       +startuptime     +xterm_clipboard
+ex_extra        +mouse_gpm       +statusline      -xterm_save
+extra_search    -mouse_jsbterm   -sun_workshop    +xpm
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/harfbuzz   -pthread -DORBIT2=1 -D_REENTRANT -I/usr/include/libgnomeui-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/gnome-keyring-1 -I/usr/include/libgnome-2.0 -I/usr/include/libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/i386-linux-gnu/gnome-vfs-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/libxml2 -I/usr/include/pango-1.0 -I/usr/include/gail-1.0 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/cairo -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/libpng12     -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1     -I/usr/include/tcl8.6  -D_REENTRANT=1  -D_THREAD_SAFE=1  -D_LARGEFILE64_SOURCE=1  
Linking: gcc   -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -o vim   -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 -lfreetype     -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lgnomevfs-2 -lgnomecanvas-2 -lgnome-2 -lpopt -lbonobo-2 -lbonobo-activation -lORBit-2 -lart_lgpl_2 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lfreetype -lgconf-2 -lgthread-2.0 -lgmodule-2.0 -lgobject-2.0 -lglib-2.0   -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector -L/usr/local/lib  -L/usr/lib/perl/5.18/CORE -lperl -ldl -lm -lpthread -lcrypt -L/usr/lib/python2.7/config-i386-linux-gnu -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions  -L/usr/lib/i386-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-1.9.1 -lpthread -lrt -ldl -lcrypt -lm  -L/usr/lib   

Çıktı uname -a:

Linux nitish 3.13.0-45-generic #74-Ubuntu SMP Tue Jan 13 19:37:48 UTC 2015 i686 i686 i686 GNU/Linux

@Carpetsmoker'ın yorumlarına dayanarak, sorunun dosyamdan kaynaklandığını öğrendim .vimrc. Bu yüzden .vimrcdosyanın bazı bölümleri ile komut yorumladı sorun neden kontrol etti . Sonunda sorunun çizgide olduğunu öğrendim

set columns=1000

Bu kadar masum komut bu soruna nasıl neden olabilir? :help columnsbu konuda yararlı bir bilgi vermedi.


2
hangi vim (ve yama seviyesini) kullanıyorsunuz? (vim --version çıkışı gibi) ve hangi işletim sistemi? Ne olursa olsun, vim'i güncellemek iyi bir fikir olacaktır. Eğer Mac kullanıyorsanız ve (komut T gibi) yakut eklentileri kullanırsanız, bunları yeniden ve / veya emin vim sistemi yakut ve (bazı insanlar için sıkıntı neden olmuş görünüyor) değil rvm yakut kullanıyor hale getirebileceğini
davidlowryduda

1
Vim'i şu şekilde başlatabilirsiniz vim -u NONE -p first.txt second.txt... Bu, vimrc dosyanızın yüklenmesini önleyecektir.
Martin Tournoij

@hatter Vim kuruldu mu, derlendi mi? 7.4 sürümüne yükseltebilir ve bunun işe yarayıp yaramadığını görebilirsiniz.
kenorb

@kenorb Vim kuruldu.
nitishch

@Carpetsmoker Çalıştı !! Bu kesinlikle .vimrcdosyada bir sorun olduğunu gösteriyor mu?
nitishch

Yanıtlar:


6

Segfault olarak da bilinen SEGV sinyali, neredeyse her zaman çalıştırdığınız programdaki bir hatadan kaynaklanır - bu durumda vim. (Diğer nedenler, arızalı donanım veya mavi ayda bir kez, çekirdek hatalarıdır).

Yani, gerçekten, bir hata bildirmeniz gerekiyor. :help bug-reportsbir hatayı nasıl bildireceğiniz konusunda talimatlar sağlar. Sorunu yeniden oluşturmak için zaten çok az adımınız olduğu anlaşılıyor, bu yüzden buradaki işin çoğu. Muhtemelen henüz düzeltilmediğinden emin olmak için ilk önce Vim'in daha yeni bir sürümünü test etmelisiniz.


Vim 7.4 kullanıyorum. Resmi web sitesi bunun en son sürüm olduğunu söylüyor.
nitishch

@hatter mevcut olandan daha az yama uygular.
derobert

Debian'ı yönetiyor, bu açıklıyor :-)
Martin Tournoij

@Carpetsmoker Debian kullanıyorum ve yama 488'den geçtim ... OP'nin neden daha eski olduğundan emin değilim. Wheezy (güncel sürüm) 7.3'e sahip, bu nedenle OP bunu kullanmıyor. Kararsız, Jessie ve Wheezy-backports tüm 7.4 yamasını 488. sahip (göz önüne alındığında, 640 böylece, o halen en biraz eski akımıdır.)
derobert

3

Vim'iniz segmentasyon hatası nedeniyle çökerse , bu, yazılım hatası veya donanım sorunlarından kaynaklanan bellek erişim ihlali anlamına gelir.

Bu tekrar tekrar gerçekleşirse, sırayla yapmanız gerekir:

  1. Eklentileri çalıştırarak devre dışı bırakın: vim -u NONEve bunun işe yarayıp yaramadığını görün.
  2. Vim'inizi en son kararlı sürüme yükseltin.
  3. Vim'inizi en son geliştirme sürümüne yükseltin.
  4. İsteğe bağlı olarak farklı makinede aynı vim sürümünü iki kez kontrol edin (belki donanım sorunlarından kaynaklanır).
  5. vimHata ayıklayıcı altında çalıştırmayı deneyin , örneğin: gdb vimve geri izlemeyi kontrol edin (SEGV'den sonra gdb: in btveya type bt full).
  6. Geri izlemenin sembolleri yoksa, bunları eklemek için vim'inizi yeniden derlemeniz gerekir.
  7. Geri izlemeyi tamamladıysanız, lütfen benzer sorunları kontrol edin veya vim'in hata izleyicisinde (düz vim için) yeni bir hata bildirin veya kontrol edin :help bugs. Vim'in farklı bir sürümüne sahipseniz (gVim, MacVim, NeoVim gibi) lütfen doğru bakıcılara bildirin.

2
Bu sadece sistemimde olur. Olmaz -u NONE. Çizgi görünüyor set columns=1000içinde .vimrcsuçlu.
nitishch

0

Segmentasyon hataları, netbeans gibi etkileşimli sunuculara ve başka bir programın (eklenti, ...) yapılandırmada beklediği (veya benzeri) autocmdbir tamponu geçersiz kılan sunuculara da bağlanabilir , örneğin bu satırları yorumlamayı deneyin .BufNewFile.vim.vimrc

Tipik hata mesajı:

missing ! or / in <number>:<command>

nerede commandolabilir örneğineditFile

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.