On Sun, 24 Mar 2013 21:54:04 +0200, Eli Zaretskii said: [...] > (gdb) break dispnew.c:2623 if vpos == 5 s/vpos/row/ I guess, which is what attached gdb output is with. > This breakpoint is inside the make_current function: > static void > make_current (struct glyph_matrix *desired_matrix, struct glyph_matrix *current_matrix, int row) > { > struct glyph_row *current_row = MATRIX_ROW (current_matrix, row); > struct glyph_row *desired_row = MATRIX_ROW (desired_matrix, row); > bool mouse_face_p = current_row->mouse_face_p; > /* Do current_row = desired_row. This exchanges glyph pointers > between both rows, and does a structure assignment otherwise. */ > assign_row (current_row, desired_row); > /* Enable current_row to mark it as valid. */ current_row-> enabled_p = 1; current_row-> mouse_face_p = mouse_face_p; <<<<<<<<<<<<<<<<<<<<<< > The choice of the line (5) is arbitrary. Then wait until the > breakpoint breaks, and do this: > (gdb) p current_row > $1 = (struct glyph_row *) 0x37e1158 > (The address will be different in your case.) Now use that address to > put a hardware watchpoint on the enabled_p flag of that glyph row, and > continue the program: > (gdb) watch ((struct glyph_row *) 0x37e1158)->enabled_p > (gdb) c > Now do whatever it takes to cause the flicker, and wait for the > watchpoint to trigger, it should say something like > Hardware watchpoint 5: ((struct glyph_row *) 0x37e1158)->enabled_p > Old value = 1 > New value = 0 > and will next show the source line which modified the value. Then > type > (gdb) bt > and let it continue > (gdb) c > Do this several times, each time waiting until the watchpoint > triggers, and displaying the backtrace. That should point towards the > code which resets these flags and causes excessive re-drawing. Please refer to the attached gdb output with annotations prefixed with '=====> '. Thanks -- Ashish SHUKLA “It's good to be wrong. Don't feel shamed. Wear past mistakes as a badge of honor because growth is everything. To stop learning is to decay.” ("apokalyptik", "in a conversation to abbe", 2010) Sent from my Emacs