Saya mendapatkan masalah ini ketika saya memulai Vim dengan -p
opsi. Misalkan, saya mulai dengan
vim -p first.txt second.txt
Kemudian setelah mengedit first.txt
saya pindah ke second.txt
menggunakan gt
. Saya menekan tombol gg
dan G
lagi. Ini menghasilkan kesalahan
Vim: Caught deadly signal SEGV
Dari titik ini, Vim tidak menanggapi sinyal apa pun termasuk Ctrl D. Saya bisa menutup sesi ini hanya dengan mematikan terminal.
Masalah ini muncul hanya ketika saya memanggil Vim dengan -p
opsi. Jika saya buka first.txt
dulu dan kemudian gunakan :tabe
untuk membuka second.txt
, masalah ini tidak muncul.
Adakah ide mengapa ini bisa terjadi?
Output dari vim --version
:
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 2 2014 19:40:46)
Included patches: 1-52
Modified by [email protected]
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
Output dari 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
Berdasarkan komentar oleh @Carpetsmoker, saya menemukan bahwa masalahnya adalah karena .vimrc
file saya . Jadi saya memeriksa menjalankan masalah yang menyebabkan perintah dengan beberapa bagian dari .vimrc
file berkomentar. Akhirnya saya mengetahui bahwa masalahnya ada pada garis
set columns=1000
Bagaimana perintah yang begitu polos dapat menyebabkan masalah ini? :help columns
tidak memberikan informasi yang berguna mengenai hal ini.
vim -u NONE -p first.txt second.txt
... Ini akan mencegah pemuatan file vimrc Anda..vimrc
file?Jawaban:
Sinyal SEGV, juga dikenal sebagai segfault, hampir selalu disebabkan oleh bug dalam program yang Anda jalankan — dalam hal ini, vim. (Penyebab lain adalah hal-hal seperti perangkat keras yang rusak, atau sekali dalam bulan biru, bug kernel).
Jadi, sungguh, Anda perlu melaporkan bug.
:help bug-reports
memberikan instruksi tentang cara melaporkan bug. Sepertinya Anda sudah memiliki serangkaian langkah minimal untuk mereproduksi masalah, sehingga sebagian besar pekerjaan di sana. Anda mungkin harus menguji versi Vim yang lebih baru terlebih dahulu, hanya untuk memastikan itu belum diperbaiki.sumber
Jika vim Anda mogok karena kesalahan segmentasi , itu menunjukkan pelanggaran akses memori yang disebabkan oleh bug perangkat lunak atau masalah perangkat keras.
Jika ini terjadi berulang kali, Anda harus melakukannya secara berurutan:
vim -u NONE
dan lihat apakah itu membantu.vim
bawah debugger, misalnya:gdb vim
dan periksa backtrace (setelah SEGV, dalamgdb
: ketikbt
ataubt full
).:help bugs
. Jika Anda memiliki versi vim yang berbeda (seperti gVim, MacVim, NeoVim), silakan laporkan ke pengelola yang tepat.sumber
-u NONE
. Tampaknya garisset columns=1000
masuk.vimrc
adalah pelakunya.Kesalahan segmentasi juga dapat dihubungkan ke server yang berinteraksi seperti netbeans dan
autocmd
yang membatalkan buffer (misalnyaBufNewFile
operasi) yang diharapkan oleh program lain (plugin, ...) (atau serupa) dalam.vim
konfigurasi, coba komentari baris-baris tersebut dalam mis.vimrc
.Pesan kesalahan umum adalah:
dimana
command
bisa miseditFile
sumber