Ike Devolder wrote: >> i attach a minimum configuration + testfile where i have consistent >> segfaults on. >> >> within the archive you can find index.php, it has a syntax error, the >> following steps lead to segfault: >> >> vim index.php >> - :w (with the syntax error, syntastic kicks in) >> - goto end of phpinfo() and add ; :w (error is gone) >> - undo u >> - :w -> segfault >> >> uname -a: >> Linux 3.6.7 #1 SMP PREEMPT Sun Nov 18 09:53:58 CET 2012 x86_64 GNU/Linux >> distribution Arch Linux >> >> configure: >> ./configure --prefix=/usr --localstatedir=/var/lib/vim \ >> --mandir=/usr/share/man --with-compiledby=BlackEagle \ >> --with-features=huge --enable-gpm --enable-acl --with-x=no \ >> --disable-gui --enable-multibyte --enable-cscope \ >> --disable-netbeans --enable-perlinterp=dynamic \ >> --enable-pythoninterp=dynamic --enable-python3interp=dynamic \ >> --enable-rubyinterp=dynamic --enable-luainterp=dynamic >> >> now tested with version 7.3.725, first noticed with 7.3.718 and then >> detected that the problem went away when going back to 7.3.714 >> >> to be able to build ruby dynamic on my machine i also needed the patch >> of Ken Takata in the 7.3.721 thread: >> https://groups.google.com/forum/?fromgroups=#!topic/vim_dev/-pxkvVyWZdo >> >> thx for looking into this > > ok i forgot on pre-requisite: you must have php installed so the syntastic > plugin can run php -l to get the syntax error showing. > > --Ike
Hi Ike I can reproduce the crash using your description with Vim-7.3.725 on Linux x86_64. Valgrind gives the following error: ==6815== Invalid read of size 4 ==6815== at 0x58ED64: ex_make (quickfix.c:2869) ==6815== by 0x4888F1: do_cmdline (ex_docmd.c:2677) ==6815== by 0x4468BF: call_func (eval.c:22540) ==6815== by 0x449722: get_func_tv (eval.c:8322) ==6815== by 0x46A24E: eval7 (eval.c:5158) ==6815== by 0x468F27: eval6 (eval.c:4810) ==6815== by 0x468A77: eval5 (eval.c:4626) ==6815== by 0x4682D0: eval4 (eval.c:4319) ==6815== by 0x468166: eval3 (eval.c:4231) ==6815== by 0x444AD4: eval1 (eval.c:4160) ==6815== by 0x4445D8: eval0 (eval.c:4042) ==6815== by 0x44769D: ex_let (eval.c:1897) ==6815== by 0x4888F1: do_cmdline (ex_docmd.c:2677) ==6815== by 0x4468BF: call_func (eval.c:22540) ==6815== by 0x449722: get_func_tv (eval.c:8322) ==6815== by 0x46A24E: eval7 (eval.c:5158) ==6815== by 0x468F27: eval6 (eval.c:4810) ==6815== by 0x468A77: eval5 (eval.c:4626) ==6815== by 0x4682D0: eval4 (eval.c:4319) ==6815== by 0x468166: eval3 (eval.c:4231) ==6815== by 0x444AD4: eval1 (eval.c:4160) ==6815== by 0x4445D8: eval0 (eval.c:4042) ==6815== by 0x44769D: ex_let (eval.c:1897) ==6815== by 0x4888F1: do_cmdline (ex_docmd.c:2677) ==6815== by 0x4468BF: call_func (eval.c:22540) ==6815== by 0x449722: get_func_tv (eval.c:8322) ==6815== by 0x448AFD: ex_call (eval.c:3465) ==6815== by 0x4888F1: do_cmdline (ex_docmd.c:2677) ==6815== by 0x4468BF: call_func (eval.c:22540) ==6815== by 0x449722: get_func_tv (eval.c:8322) ==6815== by 0x448AFD: ex_call (eval.c:3465) ==6815== by 0x4888F1: do_cmdline (ex_docmd.c:2677) ==6815== by 0x4BFFE4: apply_autocmds_group (fileio.c:9435) ==6815== by 0x4BAF27: buf_write (fileio.c:9049) ==6815== by 0x47355D: do_write (ex_cmds.c:2692) ==6815== by 0x4888F1: do_cmdline (ex_docmd.c:2677) ==6815== by 0x54D9DA: nv_colon (normal.c:5417) ==6815== by 0x543C95: normal_cmd (normal.c:1198) ==6815== by 0x685ADE: main_loop (main.c:1294) ==6815== by 0x6854EA: main (main.c:998) ==6815== Address 0x8 is not stack'd, malloc'd or (recently) free'd quickfix.c: 2861 if (wp != NULL) 2862 qi = GET_LOC_LIST(wp); 2863 #ifdef FEAT_AUTOCMD 2864 if (au_name != NULL) 2865 { 2866 apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, 2867 curbuf->b_fname, TRUE, curbuf); 2868 if (qi->qf_curlist < qi->qf_listcount) 2869 res = qi->qf_lists[qi->qf_curlist].qf_count; 2870 else 2871 res = 0; 2872 } Printing a few pointers just before line quickfix.c:2868, I get this: *** wp=0xb4bf10 qi=0xdd76d0 wp->w_llist=0xdd76d0 wp->w_llist_ref=(nil) *** wp=0xb4bf10 qi=0xdd76d0 wp->w_llist=0xdd76d0 wp->w_llist_ref=(nil) *** wp=0xb4bf10 qi=0xdd76d0 wp->w_llist=0xdd76d0 wp->w_llist_ref=(nil) *** wp=0xb4bf10 qi=0xdd76d0 wp->w_llist=0xdd76d0 wp->w_llist_ref=(nil) *** wp=0xb4bf10 qi=(nil) wp->w_llist=(nil) wp->w_llist_ref=(nil) Vim: Caught deadly signal SEGV Vim: Finished. Segmentation fault (core dumped) I don't know yet why some pointers are NULL but perhaps someone can make sense of it. I don't need to do 'undo' to reproduce the crash. This also crashes: - vim index.php - :w (with the syntax error, syntastic kicks in) - goto end of phpinfo() and add ; :w (error is gone) - remove previously added ; (by pressing x on ; character in command mode) - :w to save again -> crash Regards -- Dominique -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php