bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#47207: 28.0.50; decode_next_window_args crash


From: martin rudalics
Subject: bug#47207: 28.0.50; decode_next_window_args crash
Date: Tue, 13 Apr 2021 17:54:55 +0200

 and developers don't care.>> Because in my crash scenario (other-window 1 t) 
selects the tooltip
>> window.
>
> OK, then solving this issue will solve that as well, I guess.

Having just managed to "solve this issue" here in a more or less elegant
way, Alan beat me to it with a new twist.  To reproduce with emacs -Q do

(custom-set-variables
 '(tooltip-reuse-hidden-frame t)
 '(x-gtk-use-system-tooltips nil))

show a tooltip (by moving the mouse over the mode line for example) and
then type C-h f followed by C-g.  Here this gets me

Thread 1 "emacs" hit Breakpoint 1, terminate_due_to_signal (sig=6, 
backtrace_limit=2147483647) at ../../src/emacs.c:399
399       signal (sig, SIG_DFL);
(gdb) bt
#0  0x00000000005a6c28 in terminate_due_to_signal (sig=6, 
backtrace_limit=2147483647) at ../../src/emacs.c:399
#1  0x0000000000653420 in die (msg=0x7d01d6 "WINDOWP (a)", file=0x7d01c3 
"../../src/window.h", line=543) at ../../src/alloc.c:7420
#2  0x00000000006006d2 in XWINDOW (a=XIL(0)) at ../../src/window.h:543
#3  0x00000000006039ae in read_minibuf_unwind () at ../../src/minibuf.c:1060
#4  0x000000000068e80e in do_one_unbind (this_binding=0x7fffffffc880, 
unwinding=true, bindflag=SET_INTERNAL_UNBIND) at ../../src/eval.c:3594
#5  0x000000000068ebc9 in unbind_to (count=3, value=XIL(0)) at 
../../src/eval.c:3717
#6  0x00000000006877a5 in unwind_to_catch (catch=0xd99a40, 
type=NONLOCAL_EXIT_SIGNAL, value=XIL(0x2eb09c3)) at ../../src/eval.c:1254
#7  0x0000000000688dda in signal_or_quit (error_symbol=XIL(0xb5e0), 
data=XIL(0), keyboard_quit=true) at ../../src/eval.c:1784
#8  0x00000000006888df in quit () at ../../src/eval.c:1664
#9  0x00000000005ad8c5 in recursive_edit_1 () at ../../src/keyboard.c:722
#10 0x0000000000602e27 in read_minibuf (map=XIL(0x7ffff409d9f3), 
initial=XIL(0), prompt=XIL(0x10b6304), expflag=false, histvar=XIL(0x9ae0), 
histpos=make_fixnum(0), defalt=XIL(0x7ffff437cb7c), allow_props=false, 
inherit_input_method=false) at ../../src/minibuf.c:871
#11 0x00000000006044a0 in Fread_from_minibuffer (prompt=XIL(0x10b6304), 
initial_contents=XIL(0), keymap=XIL(0x7ffff409d9f3), read=XIL(0), hist=XIL(0), 
default_value=XIL(0x7ffff437cb7c), inherit_input_method=XIL(0)) at 
../../src/minibuf.c:1312
#12 0x000000000068ca11 in funcall_subr (subr=0xc54d00 <Sread_from_minibuffer>, 
numargs=7, args=0x7fffffffcd70) at ../../src/eval.c:3011
#13 0x000000000068c36c in Ffuncall (nargs=8, args=0x7fffffffcd68) at 
../../src/eval.c:2918
#14 0x00000000006e6056 in exec_byte_code (bytestr=XIL(0x7ffff409e1d4), 
vector=XIL(0x7ffff3cc1d4d), maxdepth=make_fixnum(18), 
args_template=make_fixnum(2050), nargs=8, args=0x7fffffffd308) at 
../../src/bytecode.c:632
#15 0x000000000068cb24 in fetch_and_exec_byte_code (fun=XIL(0x7ffff3cc1d1d), 
syms_left=make_fixnum(2050), nargs=8, args=0x7fffffffd2c8) at 
../../src/eval.c:3040
#16 0x000000000068cfaa in funcall_lambda (fun=XIL(0x7ffff3cc1d1d), nargs=8, 
arg_vector=0x7fffffffd2c8) at ../../src/eval.c:3121
#17 0x000000000068c3b0 in Ffuncall (nargs=9, args=0x7fffffffd2c0) at 
../../src/eval.c:2920
#18 0x000000000060630a in Fcompleting_read (prompt=XIL(0x10b6304), 
collection=XIL(0x39a2e0), predicate=XIL(0x10bc4ed), require_match=XIL(0x30), 
initial_input=XIL(0), hist=XIL(0), def=XIL(0x7ffff437cb7c), 
inherit_input_method=XIL(0)) at ../../src/minibuf.c:2030
#19 0x000000000068ca75 in funcall_subr (subr=0xc54f00 <Scompleting_read>, 
numargs=7, args=0x7fffffffd448) at ../../src/eval.c:3016
#20 0x000000000068c36c in Ffuncall (nargs=8, args=0x7fffffffd440) at 
../../src/eval.c:2918
#21 0x00000000006e6056 in exec_byte_code (bytestr=XIL(0x2ea3994), 
vector=XIL(0x10bc51d), maxdepth=make_fixnum(10), args_template=XIL(0), nargs=0, 
args=0x0) at ../../src/bytecode.c:632
#22 0x00000000006e5336 in Fbyte_code (bytestr=XIL(0x2ea3994), 
vector=XIL(0x10bc51d), maxdepth=make_fixnum(10)) at ../../src/bytecode.c:334
#23 0x000000000068ac71 in eval_sub (form=XIL(0x2ea7223)) at 
../../src/eval.c:2401
#24 0x000000000068a1a8 in Feval (form=XIL(0x2ea7223), lexical=XIL(0)) at 
../../src/eval.c:2224
#25 0x000000000068089d in Fcall_interactively (function=XIL(0x7ffff3057730), 
record_flag=XIL(0), keys=XIL(0x7ffff4373cbd)) at ../../src/callint.c:334
#26 0x000000000068c8ef in funcall_subr (subr=0xc5a140 <Scall_interactively>, 
numargs=3, args=0x7fffffffdd40) at ../../src/eval.c:2996
#27 0x000000000068c36c in Ffuncall (nargs=4, args=0x7fffffffdd38) at 
../../src/eval.c:2918
#28 0x00000000006e6056 in exec_byte_code (bytestr=XIL(0x7ffff3d6b42c), 
vector=XIL(0x7ffff3d6ad45), maxdepth=make_fixnum(13), 
args_template=make_fixnum(1025), nargs=1, args=0x7fffffffe2b0) at 
../../src/bytecode.c:632
#29 0x000000000068cb24 in fetch_and_exec_byte_code (fun=XIL(0x7ffff3d6ad15), 
syms_left=make_fixnum(1025), nargs=1, args=0x7fffffffe2a8) at 
../../src/eval.c:3040
#30 0x000000000068cfaa in funcall_lambda (fun=XIL(0x7ffff3d6ad15), nargs=1, 
arg_vector=0x7fffffffe2a8) at ../../src/eval.c:3121
#31 0x000000000068c3b0 in Ffuncall (nargs=2, args=0x7fffffffe2a0) at 
../../src/eval.c:2920
#32 0x000000000068bc9c in call1 (fn=XIL(0x4260), arg1=XIL(0x7ffff3057730)) at 
../../src/eval.c:2778
#33 0x00000000005af009 in command_loop_1 () at ../../src/keyboard.c:1466
#34 0x00000000006881c8 in internal_condition_case (bfun=0x5ae7b0 <command_loop_1>, 
handlers=XIL(0x90), hfun=0x5addbf <cmd_error>) at ../../src/eval.c:1443
#35 0x00000000005ae395 in command_loop_2 (ignore=XIL(0)) at 
../../src/keyboard.c:1094
#36 0x00000000006875d4 in internal_catch (tag=XIL(0xd7d0), func=0x5ae368 
<command_loop_2>, arg=XIL(0)) at ../../src/eval.c:1193
#37 0x00000000005ae333 in command_loop () at ../../src/keyboard.c:1073
#38 0x00000000005ad8a6 in recursive_edit_1 () at ../../src/keyboard.c:720
#39 0x00000000005ada9e in Frecursive_edit () at ../../src/keyboard.c:789
#40 0x00000000005a9975 in main (argc=1, argv=0x7fffffffe7c8) at 
../../src/emacs.c:2252

Lisp Backtrace:
"read-from-minibuffer" (0xffffcd70)
"completing-read-default" (0xffffd2c8)
"completing-read" (0xffffd448)
"byte-code" (0xffffd8a0)
"call-interactively" (0xffffdd40)
"command-execute" (0xffffe2a8)
(gdb)

I can easily sidestep this in read_minibuf_unwind via

  FOR_EACH_FRAME (frames, exp_MB_frame)
    {
      f = XFRAME (exp_MB_frame);
      if (!FRAME_TOOLTIP_P (f))
        {
          window = f->minibuffer_window;
          w = XWINDOW (window);
          if (EQ (w->frame, exp_MB_frame)
              && EQ (w->contents, nth_minibuffer (minibuf_level)))
            goto found;
        }
    }

but the underlying issue remains: Not every frame has a minibuffer
window.

martin





reply via email to

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