vim is fine (syn on)
Confirmed, terminal Vim is responsive immediately and doesn't crash when scrolling through the file. This makes sense because it looks like the dynamic XPM highlighting isn't applied in terminal Vim.
gvim is fine (syn off)
Confirmed, although graphical Vim does still take a minute before it becomes responsive. I guess the XPM is still parsed by Vim script code to define the dynamic syntax highlighting; the highlighting just won't be shown (at least this would explain the slowdown).
An additional observation: I just compiled Vim with debugging symbols and now it crashes directly after the minute of unresponsiveness, i.e. I don't need to scroll around to reproduce the crash. I'm attaching a backtrace.
- Peter Odding -- 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
peter@laptop> gdb --args /usr/local/bin/gvim -f 100x100.xpm GNU gdb (GDB) 7.1-ubuntu Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i486-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/local/bin/gvim...done. (gdb) r Starting program: /usr/local/bin/gvim -f 100x100.xpm [Thread debugging using libthread_db enabled] Program received signal SIGSEGV, Segmentation fault. 0x081caeda in in_id_list (cur_si=0x0, list=0x61a8, ssp=0xb746ffd8, contained=1) at syntax.c:6068 6068 item = *list; (gdb) bt #0 0x081caeda in in_id_list (cur_si=0x0, list=0x61a8, ssp=0xb746ffd8, contained=1) at syntax.c:6068 #1 0x081cb01b in in_id_list (cur_si=0x0, list=0x8961312, ssp=0xb746ffd8, contained=1) at syntax.c:6110 #2 0x081cb01b in in_id_list (cur_si=0x851ec60, list=0x8584148, ssp=0xb746ffd8, contained=1) at syntax.c:6110 #3 0x081c3caa in syn_current_attr (syncing=0, displaying=1, can_spell=0xbfffef28, keep_state=0) at syntax.c:2040 #4 0x081c374d in get_syntax_attr (col=0, can_spell=0xbfffef28, keep_state=0) at syntax.c:1817 #5 0x0818c0bc in win_line (wp=0x8266550, lnum=10099, startrow=0, endrow=32, nochange=1) at screen.c:4073 #6 0x08187c7e in win_update (wp=0x8266550) at screen.c:1850 #7 0x08185c0e in update_screen (type=40) at screen.c:531 #8 0x0810818c in main_loop (cmdwin=0, noexmode=0) at main.c:1161 #9 0x08107dc9 in main (argc=3, argv=0xbffff574) at main.c:961 (gdb) bt full #0 0x081caeda in in_id_list (cur_si=0x0, list=0x61a8, ssp=0xb746ffd8, contained=1) at syntax.c:6068 retval = -1217440600 scl_list = 0xbfffec7c item = 0 id = 86 depth = 2 r = 139586720 #1 0x081cb01b in in_id_list (cur_si=0x0, list=0x8961312, ssp=0xb746ffd8, contained=1) at syntax.c:6110 retval = 1 scl_list = 0x61a8 item = 25010 id = 86 depth = 2 r = 302 #2 0x081cb01b in in_id_list (cur_si=0x851ec60, list=0x8584148, ssp=0xb746ffd8, contained=1) at syntax.c:6110 retval = 1 scl_list = 0x895d230 item = 25000 id = 86 depth = 2 r = 136738104 #3 0x081c3caa in syn_current_attr (syncing=0, displaying=1, can_spell=0xbfffef28, keep_state=0) at syntax.c:2040 syn_id = 0 endpos = {lnum = 10099, col = 1} hl_startpos = {lnum = 10099, col = 0} hl_endpos = {lnum = 10099, col = 1} eos_pos = {lnum = 10099, col = 1} eoe_pos = {lnum = 0, col = 0} end_idx = 0 idx = 30007 spp = 0xb746ffcc cur_si = 0x851ec60 ---Type <return> to continue, or q <return> to quit--- sip = 0x0 startcol = 0 endcol = -58 flags = 0 cchar = 136683432 next_list = 0x8c found_match = 0 try_next_column = 0 do_keywords = 1 regmatch = {regprog = 0x8583ad0, startpos = {{lnum = 10099, col = 0}, {lnum = -1, col = -1}, {lnum = -1, col = -1}, { lnum = -1, col = -1}, {lnum = -1, col = -1}, {lnum = -1, col = -1}, {lnum = -1, col = -1}, {lnum = -1, col = -1}, {lnum = -1, col = -1}, {lnum = -1, col = -1}}, endpos = {{lnum = 10099, col = 1}, {lnum = -1, col = -1}, {lnum = -1, col = -1}, {lnum = -1, col = -1}, {lnum = -1, col = -1}, {lnum = -1, col = -1}, { lnum = -1, col = -1}, {lnum = -1, col = -1}, {lnum = -1, col = -1}, {lnum = -1, col = -1}}, rmm_ic = 0, rmm_maxcol = 3000} pos = {lnum = 10099, col = 0} lc_col = 0 cur_extmatch = 0x0 line = 0x8580098 "\":;.<;.[;.};.|;.1;.2;.3;.4;.5;.6;.7;.8;.9;.0;.a;.b;.c;.d;.e;.f;.g;.h;.i;.j;.k;.l;.m;.n;.o;.p;.q;.r;.s;.t;.u;.v;.w;.x;.y;.z;.A;.B;.C;.D;.E;.F;.G;.H;.I;.J;.K;.L;.M;.N;.O;.P;.Q;.R;.S;.T;.U;.V;.W;.X;.Y;.Z"... keep_next_list = 0 zero_width_next_list = 0 zero_width_next_ga = {ga_len = 0, ga_maxlen = 0, ga_itemsize = 4, ga_growsize = 10, ga_data = 0x0} #4 0x081c374d in get_syntax_attr (col=0, can_spell=0xbfffef28, keep_state=0) at syntax.c:1817 attr = 0 #5 0x0818c0bc in win_line (wp=0x8266550, lnum=10099, startrow=0, endrow=32, nochange=1) at screen.c:4073 can_spell = 1 col = 0 off = 4191 c = 34 vcol = 0 vcol_prev = -1 ---Type <return> to continue, or q <return> to quit--- line = 0x8580098 "\":;.<;.[;.};.|;.1;.2;.3;.4;.5;.6;.7;.8;.9;.0;.a;.b;.c;.d;.e;.f;.g;.h;.i;.j;.k;.l;.m;.n;.o;.p;.q;.r;.s;.t;.u;.v;.w;.x;.y;.z;.A;.B;.C;.D;.E;.F;.G;.H;.I;.J;.K;.L;.M;.N;.O;.P;.Q;.R;.S;.T;.U;.V;.W;.X;.Y;.Z"... ptr = 0x8580099 ":;.<;.[;.};.|;.1;.2;.3;.4;.5;.6;.7;.8;.9;.0;.a;.b;.c;.d;.e;.f;.g;.h;.i;.j;.k;.l;.m;.n;.o;.p;.q;.r;.s;.t;.u;.v;.w;.x;.y;.z;.A;.B;.C;.D;.E;.F;.G;.H;.I;.J;.K;.L;.M;.N;.O;.P;.Q;.R;.S;.T;.U;.V;.W;.X;.Y;.Z;"... row = 0 screen_row = 0 extra = "\377\277\000\000\000\000P\213;\b\001\000\000\000\340\236%\b" n_extra = 0 p_extra = 0x0 c_extra = 0 extra_attr = 0 at_end_str = 0x822af2f "" lcs_eol_one = 36 lcs_prec_todo = 0 saved_n_extra = 0 saved_p_extra = 0x0 saved_c_extra = 0 saved_char_attr = 0 n_attr = 0 saved_attr2 = 0 n_attr3 = 0 saved_attr3 = 0 n_skip = 0 fromcol = -10 tocol = 2147483647 fromcol_prev = -2 noinvcur = 0 top = 0xded bot = 0xbffff038 lnum_in_visual_area = 0 pos = {lnum = 137, col = 24, coladd = 14701504} v = 1 ---Type <return> to continue, or q <return> to quit--- char_attr = 0 attr_pri = 0 area_highlighting = 0 attr = 0 area_attr = 0 search_attr = 0 vcol_save_attr = 0 syntax_attr = 0 has_syntax = 1 save_did_emsg = 0 eol_hl_off = 0 draw_color_col = 0 color_cols = 0x0 has_spell = 1 nextline = ".K;.L;.M;.N;.O;.P;.Q;.R;.S;.T;.U;.V;.W;.X;.Y;.Z;.`;. >..>.+>.@>.#>.$>.%>.&>.*>.=>.->.;>.>>.,>.'>.)>.!>.~>.{>.]>.^>./>.(>._>.:>.<>.[>.}>.|>.1>.2>.3>.\", 4>.5>.6>.7>.8>.9>.0>.a>.b>.c>.d>.e>.f>.g>.h>.i>."... nextlinecol = 153 nextline_idx = 151 spell_attr = 0 word_end = 0 checked_lnum = 0 checked_col = 0 cap_col = -1 capcol_lnum = 0 cur_checked_col = 0 extra_check = 1 multi_attr = 0 mb_l = 1 mb_c = 34 mb_utf8 = 0 u8cc = {136812460, 0, -1073746136, 15234884, 139138392, 140005600} filler_lines = 0 ---Type <return> to continue, or q <return> to quit--- filler_todo = 0 diff_hlf = HLF_8 change_start = 2147483647 change_end = -1 trailcol = 2147483647 need_showbreak = 0 line_attr = 0 cur = 0x0 shl = 0x8259ee0 shl_flag = 1 prevcol_hl_flag = 15256215 prev_c = 34 prev_c1 = 0 did_line_attr = 0 draw_state = 6 feedback_col = 0 feedback_old_attr = -1 syntax_flags = 0 syntax_seqnr = 0 prev_syntax_id = 0 conceal_attr = 91 is_concealing = 0 boguscols = 0 vcol_off = 0 did_wcol = 0 #6 0x08187c7e in win_update (wp=0x8266550) at screen.c:1850 buf = 0x8267538 type = 50 top_end = 0 mid_start = 0 mid_end = 32 bot_start = 999 ---Type <return> to continue, or q <return> to quit--- scrolled_down = 0 cur = 0x8259ee0 top_to_mod = 0 row = 0 lnum = 10099 idx = 0 srow = 0 eof = 0 didline = 0 i = 0 j = 1 recursive = 0 old_botline = 10104 fold_count = 0 did_update = 1 syntax_last_parsed = 0 mod_top = 0 mod_bot = 0 save_got_int = 0 #7 0x08185c0e in update_screen (type=40) at screen.c:531 wp = 0x8266550 did_intro = 0 did_one = 1 #8 0x0810818c in main_loop (cmdwin=0, noexmode=0) at main.c:1161 oa = {op_type = 0, regname = 0, motion_type = 0, motion_force = 0, use_reg_one = 0, inclusive = 0, end_adjusted = 0, start = {lnum = 0, col = 0, coladd = 0}, end = {lnum = 0, col = 0, coladd = 0}, cursor_start = {lnum = 0, col = 0, coladd = 0}, line_count = 0, empty = 0, is_VIsual = 0, block_mode = 0, start_vcol = 0, end_vcol = 0, prev_opcount = 0, prev_count0 = 0} previous_got_int = 0 conceal_old_cursor_line = 0 conceal_new_cursor_line = 0 conceal_update_lines = 0 ---Type <return> to continue, or q <return> to quit--- #9 0x08107dc9 in main (argc=3, argv=0xbffff574) at main.c:961 fname = 0x82689e8 "100x100.xpm" params = {argc = 3, argv = 0xbffff574, evim_mode = 0, use_vimrc = 0x0, n_commands = 0, commands = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, cmds_tofree = "\000\000\000\000\000\000\000\000\000", n_pre_commands = 0, pre_commands = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, edit_type = 1, tagname = 0x0, use_ef = 0x0, want_full_screen = 1, stdout_isatty = 1, term = 0x0, ask_for_key = 0, no_swap_file = 0, use_debug_break_level = -1, window_count = 1, window_layout = 0, serverArg = 0, serverName_arg = 0x0, serverStr = 0x0, serverStrEnc = 0x0, servername = 0x8269d58 "", diff_mode = 0} i = 3 (gdb) quit A debugging session is active. Inferior 1 [process 3565] will be killed. Quit anyway? (y or n) y
