emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Tabs


From: Juri Linkov
Subject: Re: Tabs
Date: Sun, 06 Oct 2019 22:58:28 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (x86_64-pc-linux-gnu)

>> > In "emacs -Q"?  Just start Emacs and resize the frame by dragging its
>> > edge with the mouse?  Or something else?
>> 
>> In "emacs -Q" build with GTK+ Version 3.22.30 it infloops after resizing
>> by quickly dragging its edge with the mouse.
>
> I guess it's somehow specific to the GTK build (or maybe more
> generally to X).
>
>> Maybe this requires a slow computer that makes frame updating even slower
>> by configuring without optimization:
>> 
>> --enable-checking='yes,glyphs' --enable-check-lisp-object-type CFLAGS='-O0 
>> -g3 -gdwarf-4'
>
> No, because that's how I built mine.
>
> OK, can you set a watchpoint on the frame's garbaged flag, and show me
> both C and Lisp backtraces each time the flag is set or reset while we
> loop for two iterations there?

It's very strange but a watchpoint is hit only on setting flag to false:

(gdb) bt
#0  0x000055555560a8eb in redisplay_internal () at xdisp.c:15707
#1  0x000055555560b243 in redisplay_preserve_echo_area (from_where=11) at 
xdisp.c:15946
#2  0x00005555559e7922 in wait_reading_process_output (time_limit=30, nsecs=0, 
read_kbd=-1, do_display=true, wait_for_cell=XIL(0), wait_proc=0x0, 
just_wait_proc=0)
    at process.c:5429
#3  0x00005555555aa009 in sit_for (timeout=make_fixnum(30), reading=true, 
display_option=1) at dispnew.c:6021
#4  0x00005555557e119f in read_char (commandflag=1, map=XIL(0x555556e0e2b3), 
prev_event=XIL(0), used_mouse_menu=0x7fffffffd5e5, end_time=0x0) at 
keyboard.c:2718
#5  0x00005555557f3bcb in read_key_sequence (keybuf=0x7fffffffd7d0, 
prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, 
fix_current_buffer=true, prevent_redisplay=false) at keyboard.c:9527
#6  0x00005555557dca01 in command_loop_1 () at keyboard.c:1345
#7  0x000055555594bb94 in internal_condition_case (bfun=0x5555557dc583 
<command_loop_1>, handlers=XIL(0x90), hfun=0x5555557dbb4f <cmd_error>) at 
eval.c:1355
#8  0x00005555557dc16a in command_loop_2 (ignore=XIL(0)) at keyboard.c:1091
#9  0x000055555594afee in internal_catch (tag=XIL(0xcf00), func=0x5555557dc13d 
<command_loop_2>, arg=XIL(0)) at eval.c:1116
#10 0x00005555557dc108 in command_loop () at keyboard.c:1070
#11 0x00005555557db636 in recursive_edit_1 () at keyboard.c:714
#12 0x00005555557db82e in Frecursive_edit () at keyboard.c:786
#13 0x00005555557d1725 in main (argc=3, argv=0x7fffffffdc28) at emacs.c:2055

Lisp Backtrace:
"redisplay_internal (C function)" (0x0)
(gdb) l
15702               {
15703                 struct frame *f = XFRAME (frame);
15704                 if (f->updated_p)
15705                   {
15706                     f->redisplay = false;
15707                     f->garbaged = false;
15708                     mark_window_display_accurate (f->root_window, true);
15709                     if (FRAME_TERMINAL (f)->frame_up_to_date_hook)
15710                       FRAME_TERMINAL (f)->frame_up_to_date_hook (f);
15711                   }

but never on setting flag to true, yet f->garbaged becomes true in 
redisplay_internal
somehow.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]