* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs @ 2021-03-18 15:39 Michael Welsh Duggan 2021-03-18 15:42 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-18 15:39 UTC (permalink / raw) To: 47244 I have managed to catch a SEGFAULT in a long-running Emacs in the debugger. I've been unable to recreate this SEGFAULT on demand, but it seems to be happening when I am attempting to "reset" gnus after switching my work VPN on/off. I will keep the gdb session up an running in case there is some more that can be done with this. In GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.16.0) of 2021-03-07 built on miko Repository revision: c63d2ef59c511c1c48c69a202907b7edfcbb19b3 Repository branch: md5i Windowing system distributor 'The X.Org Foundation', version 11.0.12010000 System Description: Debian GNU/Linux bullseye/sid Configured using: 'configure --without-toolkit-scroll-bars --with-x-toolkit=lucid 'CFLAGS=-O0 -ggdb3'' Configured features: CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SOUND THREADS TIFF X11 XAW3D XDBE XIM XPM LUCID ZLIB Important settings: value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix <#part type="text/plain" filename="~/src/emacs/build/src/gdb.txt" disposition=inline> <#/part> -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 15:39 bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs Michael Welsh Duggan @ 2021-03-18 15:42 ` Michael Welsh Duggan 2021-03-18 15:49 ` Michael Welsh Duggan 2021-03-18 16:02 ` Eli Zaretskii 0 siblings, 2 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-18 15:42 UTC (permalink / raw) To: 47244 [-- Attachment #1: Type: text/plain, Size: 1157 bytes --] Re-sent with actual attachment. I have managed to catch a SEGFAULT in a long-running Emacs in the debugger. I've been unable to recreate this SEGFAULT on demand, but it seems to be happening when I am attempting to "reset" gnus after switching my work VPN on/off. I will keep the gdb session up an running in case there is some more that can be done with this. In GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.16.0) of 2021-03-07 built on miko Repository revision: c63d2ef59c511c1c48c69a202907b7edfcbb19b3 Repository branch: md5i Windowing system distributor 'The X.Org Foundation', version 11.0.12010000 System Description: Debian GNU/Linux bullseye/sid Configured using: 'configure --without-toolkit-scroll-bars --with-x-toolkit=lucid 'CFLAGS=-O0 -ggdb3'' Configured features: CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SOUND THREADS TIFF X11 XAW3D XDBE XIM XPM LUCID ZLIB Important settings: value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix [-- Attachment #2: gdb.txt --] [-- Type: text/plain, Size: 5908 bytes --] #0 0x00005555555e1a61 in redisplay_internal () at ../../master/src/xdisp.c:15789 w = 0x555556b96340 sw = 0x555556b96340 fr = 0x555556b8ca50 pending = false must_finish = true match_p = true tlbufpos = { charpos = 127, bytepos = 127 } tlendpos = { charpos = 0, bytepos = 0 } number_of_visible_frames = 4 count = 3 sf = 0x555556b8ca50 polling_stopped_here = false tail = XIL(0) frame = XIL(0x555555d52afd) hscroll_retries = 0 garbaged_frame_retries = 0 consider_all_windows_p = false update_miniwindow_p = true #1 0x00005555555e061e in redisplay () at ../../master/src/xdisp.c:15245 #2 0x00005555556e9991 in read_char (commandflag=1, map=XIL(0x555558a3e483), prev_event=XIL(0), used_mouse_menu=0x7fffffffdabf, end_time=0x0) at ../../master/src/keyboard.c:2496 echo_current = false c = XIL(0) jmpcount = 93824999976800 local_getcjmp = {{ __jmpbuf = {93825000009536, 0, 93824999976800, 0, 0, 140737488345232, 93824994486337, 93825051609157}, __mask_was_saved = -10032, __saved_mask = { __val = {93824994503322, 140737259960288, 140737259960240, 0, 46912259983440, 0, 140737259960288, 93824999976800, 0, 0, 140737488345344, 93824993977890, 4066572208, 93824999976800, 0, 0} } }} save_jump = {{ __jmpbuf = {0, 32736, 0, 140737266320856, 0, 0, 93825051609152, 0}, __mask_was_saved = 0, __saved_mask = { __val = {93825000009536, 93824994486337, 0, 140737488345184, 93824994507922, 140737266320856, 12884891664, 0, 32736, 93825051609152, 140737266320856, 93824995128912, 51539607552, 93825051609157, 93825051609152, 93824995129355} } }} tem = XIL(0) save = make_fixnum(23456248494472) previous_echo_area_message = XIL(0) also_record = XIL(0) reread = false recorded = false polling_stopped_here = false orig_kboard = 0x555555dea0a0 #3 0x00005555556f86dc in read_key_sequence (keybuf=0x7fffffffdcc0, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at ../../master/src/keyboard.c:9484 interrupted_kboard = 0x555555dea0a0 interrupted_frame = 0x555556b8ca50 key = make_fixnum(23456248516455) used_mouse_menu = false echo_local_start = 0 last_real_key_start = 0 keys_local_start = 0 new_binding = XIL(0x555557286ce0) count = 3 t = 0 echo_start = 0 keys_start = 0 current_binding = XIL(0x555558a3e483) first_unbound = 31 mock_input = 0 used_mouse_menu_history = {false <repeats 30 times>} fkey = { parent = XIL(0x5555568a0323), map = XIL(0x5555568a0323), start = 0, end = 0 } keytran = { parent = XIL(0x7ffff2c27c4b), map = XIL(0x7ffff2c27c4b), start = 0, end = 0 } indec = { parent = XIL(0x5555568a0353), map = XIL(0x5555568a0353), start = 0, end = 0 } shift_translated = false delayed_switch_frame = XIL(0) original_uppercase = XIL(0) original_uppercase_position = -1 dummyflag = false starting_buffer = 0x555558df4840 fake_prefixed_keys = XIL(0) first_event = XIL(0) second_event = XIL(0) #4 0x00005555556e6c13 in command_loop_1 () at ../../master/src/keyboard.c:1353 cmd = XIL(0x7fffffffde10) keybuf = {XIL(0), XIL(0x7ffff2c27bf5), XIL(0x555555765719), XIL(0x1655540), XIL(0x7fffffffdd70), XIL(0x55555579dc50), XIL(0x1655540), XIL(0x7ffff257b4c4), XIL(0x555558df8683), XIL(0x7ffff2c27bf5), XIL(0x7ffff2c27bf5), XIL(0x555558df8683), XIL(0x7ffff257b4c4), XIL(0x1655540), XIL(0), XIL(0), XIL(0x555555cb6f60), XIL(0), XIL(0), XIL(0x7fffffffdd70), XIL(0x5555556e3b34), XIL(0xffffddc0), XIL(0x555555cb6f60), XIL(0), XIL(0), XIL(0x7fffffffdda0), XIL(0x555555797748), make_fixnum(0), XIL(0x7fffffffdde0), XIL(0x55555579ae39)} i = 1 prev_modiff = 0 prev_buffer = 0x0 already_adjusted = false #5 0x000055555579aa34 in internal_condition_case (bfun=0x5555556e67cd <command_loop_1>, handlers=XIL(0x90), hfun=0x5555556e5f69 <cmd_error>) at ../../master/src/eval.c:1439 val = XIL(0x5555556e3b34) c = 0x555555db1380 #6 0x00005555556e6495 in command_loop_2 (ignore=XIL(0)) at ../../master/src/keyboard.c:1094 val = make_fixnum(0) #7 0x000055555579a242 in internal_catch (tag=XIL(0xd950), func=0x5555556e6468 <command_loop_2>, arg=XIL(0)) at ../../master/src/eval.c:1189 val = XIL(0xd950) c = 0x555555d9a6f0 #8 0x00005555556e6434 in command_loop () at ../../master/src/keyboard.c:1073 #9 0x00005555556e5b3a in recursive_edit_1 () at ../../master/src/keyboard.c:720 count = 1 val = XIL(0x7fffffffdf50) #10 0x00005555556e5cbd in Frecursive_edit () at ../../master/src/keyboard.c:789 count = 0 buffer = XIL(0) #11 0x00005555556e26ea in main (argc=2, argv=0x7fffffffe1b8) at ../../master/src/emacs.c:2050 stack_bottom_variable = 0x7ffff617e053 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 1 temacs = 0x0 attempt_load_pdump = true rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = 0x0 sockfd = -1 module_assertions = false Lisp Backtrace: "redisplay_internal (C function)" (0x0) [-- Attachment #3: Type: text/plain, Size: 42 bytes --] -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 15:42 ` Michael Welsh Duggan @ 2021-03-18 15:49 ` Michael Welsh Duggan 2021-03-18 16:02 ` Andreas Schwab 2021-03-18 16:02 ` Eli Zaretskii 1 sibling, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-18 15:49 UTC (permalink / raw) To: 47244 Actual debugger SIGSEGV message: Thread 2.1 "emacs" received signal SIGSEGV, Segmentation fault. 0x00005555555e1a61 in redisplay_internal () at ../../master/src/xdisp.c:15789 15789 && FETCH_BYTE (BYTEPOS (tlbufpos) - 1) != '\n' Also, this bit is probably important: (gdb) p GPT_BYTE $1 = 127 (gdb) p GAP_SIZE $2 = 1896 (gdb) p BEG_ADDR $3 = (unsigned char *) 0x0 -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 15:49 ` Michael Welsh Duggan @ 2021-03-18 16:02 ` Andreas Schwab 0 siblings, 0 replies; 160+ messages in thread From: Andreas Schwab @ 2021-03-18 16:02 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: 47244 On Mär 18 2021, Michael Welsh Duggan wrote: > (gdb) p BEG_ADDR > $3 = (unsigned char *) 0x0 Looks like a dead buffer. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 15:42 ` Michael Welsh Duggan 2021-03-18 15:49 ` Michael Welsh Duggan @ 2021-03-18 16:02 ` Eli Zaretskii 2021-03-18 16:27 ` Michael Welsh Duggan 1 sibling, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-18 16:02 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: 47244 > From: Michael Welsh Duggan <md5i@md5i.com> > Date: Thu, 18 Mar 2021 11:42:19 -0400 > > I have managed to catch a SEGFAULT in a long-running Emacs in the > debugger. I've been unable to recreate this SEGFAULT on demand, but it > seems to be happening when I am attempting to "reset" gnus after > switching my work VPN on/off. I will keep the gdb session up an running > in case there is some more that can be done with this. > > > In GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.16.0) > of 2021-03-07 built on miko > Repository revision: c63d2ef59c511c1c48c69a202907b7edfcbb19b3 > Repository branch: md5i This is a build from several days ago, and on some branch that is probably a local branch. Do the line numbers still correspond to what's on the current master? > #0 0x00005555555e1a61 in redisplay_internal () > at ../../master/src/xdisp.c:15789 The line number here corresponds to this in the current sources: if (CHARPOS (tlbufpos) > BEGV && FETCH_BYTE (BYTEPOS (tlbufpos) - 1) != '\n' <<<<<<<<<<<<<<<<< && (CHARPOS (tlbufpos) == ZV || FETCH_BYTE (BYTEPOS (tlbufpos)) == '\n')) Is that so in your sources as well? If so, I'm not sure I understand how this could segfault, given that tlbufpos is 127. What is the value of ZV? And what does the following produce: (gdb) p current_buffer->text->beg ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 16:02 ` Eli Zaretskii @ 2021-03-18 16:27 ` Michael Welsh Duggan 2021-03-18 16:45 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-18 16:27 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 47244 Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <md5i@md5i.com> >> Date: Thu, 18 Mar 2021 11:42:19 -0400 >> >> I have managed to catch a SEGFAULT in a long-running Emacs in the >> debugger. I've been unable to recreate this SEGFAULT on demand, but it >> seems to be happening when I am attempting to "reset" gnus after >> switching my work VPN on/off. I will keep the gdb session up an running >> in case there is some more that can be done with this. >> >> >> In GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo >> version 1.16.0) >> of 2021-03-07 built on miko >> Repository revision: c63d2ef59c511c1c48c69a202907b7edfcbb19b3 >> Repository branch: md5i > > This is a build from several days ago, and on some branch that is > probably a local branch. Do the line numbers still correspond to > what's on the current master? They do match. It is a branch, but the changed things in the branch are extremely unlikely to have caused this problem. (One is a patch to gnus summary-producing that changes how thread sorting is ordered, the other is a patch to .gdbinit that handles running gdb on emacs when running with the --daemon option.) I changed the Repository revision field to match the version of Emacs I was using. It's several days old because it took several days before I was able to re-trigger this problem. >> #0 0x00005555555e1a61 in redisplay_internal () >> at ../../master/src/xdisp.c:15789 > > The line number here corresponds to this in the current sources: > > if (CHARPOS (tlbufpos) > BEGV > && FETCH_BYTE (BYTEPOS (tlbufpos) - 1) != '\n' <<<<<<<<<<<<<<<<< > && (CHARPOS (tlbufpos) == ZV > || FETCH_BYTE (BYTEPOS (tlbufpos)) == '\n')) > > Is that so in your sources as well? If so, I'm not sure I understand > how this could segfault, given that tlbufpos is 127. What is the > value of ZV? And what does the following produce: > > (gdb) p current_buffer->text->beg (gdb) p ZV $6 = 127 (gdb) p current_buffer->text->beg $7 = (unsigned char *) 0x0 -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 16:27 ` Michael Welsh Duggan @ 2021-03-18 16:45 ` Eli Zaretskii 2021-03-18 16:54 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-18 16:45 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: 47244 > From: Michael Welsh Duggan <mwd@md5i.com> > Cc: 47244@debbugs.gnu.org > Date: Thu, 18 Mar 2021 12:27:13 -0400 > > (gdb) p current_buffer->text->beg > $7 = (unsigned char *) 0x0 That explains the crash. What does this display: (gdb) source /path/to/emacs/src/.gdbinit (gdb) p current_buffer->name_ (gdb) xstring And, given the name of the buffer this will display, what can you tell about that buffer? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 16:45 ` Eli Zaretskii @ 2021-03-18 16:54 ` Michael Welsh Duggan 2021-03-18 18:41 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-18 16:54 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Michael Welsh Duggan, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@md5i.com> >> Cc: 47244@debbugs.gnu.org >> Date: Thu, 18 Mar 2021 12:27:13 -0400 >> >> (gdb) p current_buffer->text->beg >> $7 = (unsigned char *) 0x0 > > That explains the crash. What does this display: > > (gdb) source /path/to/emacs/src/.gdbinit > (gdb) p current_buffer->name_ > (gdb) xstring > > And, given the name of the buffer this will display, what can you tell > about that buffer? (gdb) p current_buffer->name_ $8 = XIL(0) (gdb) xstring $9 = (struct Lisp_String *) 0x0 "DEAD" -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 16:54 ` Michael Welsh Duggan @ 2021-03-18 18:41 ` Eli Zaretskii 2021-03-18 18:54 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-18 18:41 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Cc: Michael Welsh Duggan <mwd@md5i.com>, > "47244@debbugs.gnu.org" > <47244@debbugs.gnu.org> > Date: Thu, 18 Mar 2021 12:54:20 -0400 > > (gdb) p current_buffer->name_ > $8 = XIL(0) > (gdb) xstring > $9 = (struct Lisp_String *) 0x0 > "DEAD" So a buffer that was killed somehow became the current buffer, or the selected buffer in some window. I have no idea how that could happen. At this point, all I can suggest is to try making redisplay simply return when faced with such buffers, which is really just a band-aid. Can you tell more about this "resetting" of Gnus, and what it means to "switch VPN on/off"? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 18:41 ` Eli Zaretskii @ 2021-03-18 18:54 ` Michael Welsh Duggan 2021-03-18 19:16 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-18 18:54 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd@md5i.com, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@cert.org> >> Cc: Michael Welsh Duggan <mwd@md5i.com>, >> "47244@debbugs.gnu.org" >> <47244@debbugs.gnu.org> >> Date: Thu, 18 Mar 2021 12:54:20 -0400 >> >> (gdb) p current_buffer->name_ >> $8 = XIL(0) >> (gdb) xstring >> $9 = (struct Lisp_String *) 0x0 >> "DEAD" > > So a buffer that was killed somehow became the current buffer, or the > selected buffer in some window. I have no idea how that could happen. > At this point, all I can suggest is to try making redisplay simply > return when faced with such buffers, which is really just a band-aid. > > Can you tell more about this "resetting" of Gnus, and what it means to > "switch VPN on/off"? Sure. To connect to work I have to start the VPN, which changes my network routing. When Gnus tries to fetch new messages over an existing IMAP connection (pre-VPN), it hangs. I `C-g' out of it, go to the server buffer (`^`), close the IMAP connection and then re-open it (`C O`). The crash happened when I hit `q` in the server buffer to get back to the Group buffer. This has happened several times, but the crash doesn't happen every time. I don't know that the VPN has anything to do with this; it might simply provide the impetus that leads to the problematic situation. I do have a gnus demon running in the background: (gnus-demon-add-handler 'gnus-demon-scan-news 5 nil) I don't know is this timer triggering at just the wrong time might contribute to this. If you want me to set a conditional breakpoint anywhere I can do that in hopes of capturing something more useful the next time this happens. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 18:54 ` Michael Welsh Duggan @ 2021-03-18 19:16 ` Eli Zaretskii 2021-03-18 19:24 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-18 19:16 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Cc: "mwd@md5i.com" <mwd@md5i.com>, > "47244@debbugs.gnu.org" > <47244@debbugs.gnu.org> > Date: Thu, 18 Mar 2021 14:54:19 -0400 > > I do have a gnus demon running in the background: > (gnus-demon-add-handler 'gnus-demon-scan-news 5 nil) Maybe that is the reason that the current buffer is being killed under our feet, I don't know. Is the GDB session still alive? If so, could you show what the following displays? (gdb) p XWINDOW(selected_window)->contents (gdb) xtype If "xtype" says it's a buffer, please type: (gdb) xbuffer and tell what that shows. > If you want me to set a conditional breakpoint anywhere I can do that in > hopes of capturing something more useful the next time this happens. I don't really have an idea where to set such a breakpoint, since I don't understand how is this buffer killed. I'm guessing you have some elaborate hooks set up that succeed in killing the current buffer while redisplay runs or something, that's how such problems are usually born. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 19:16 ` Eli Zaretskii @ 2021-03-18 19:24 ` Michael Welsh Duggan 2021-03-18 19:51 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-18 19:24 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd@md5i.com, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@cert.org> >> Cc: "mwd@md5i.com" <mwd@md5i.com>, >> "47244@debbugs.gnu.org" >> <47244@debbugs.gnu.org> >> Date: Thu, 18 Mar 2021 14:54:19 -0400 >> >> I do have a gnus demon running in the background: >> (gnus-demon-add-handler 'gnus-demon-scan-news 5 nil) > > Maybe that is the reason that the current buffer is being killed under > our feet, I don't know. > > Is the GDB session still alive? If so, could you show what the > following displays? > > (gdb) p XWINDOW(selected_window)->contents > (gdb) xtype > > If "xtype" says it's a buffer, please type: > > (gdb) xbuffer > > and tell what that shows. (gdb) p XWINDOW(selected_window)->contents $10 = XIL(0x555558df4845) (gdb) xtype Lisp_Vectorlike PVEC_BUFFER (gdb) xbuffer $11 = (struct buffer *) 0x555558df4840 "DEAD" -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 19:24 ` Michael Welsh Duggan @ 2021-03-18 19:51 ` Eli Zaretskii 2021-03-18 20:13 ` Andreas Schwab 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-18 19:51 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Cc: "mwd@md5i.com" <mwd@md5i.com>, > "47244@debbugs.gnu.org" > <47244@debbugs.gnu.org> > Date: Thu, 18 Mar 2021 15:24:42 -0400 > > (gdb) p XWINDOW(selected_window)->contents > $10 = XIL(0x555558df4845) > (gdb) xtype > Lisp_Vectorlike > PVEC_BUFFER > (gdb) xbuffer > $11 = (struct buffer *) 0x555558df4840 > "DEAD" So the selected window's buffer was killed. How is that possible? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 19:51 ` Eli Zaretskii @ 2021-03-18 20:13 ` Andreas Schwab 2021-03-18 20:27 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Andreas Schwab @ 2021-03-18 20:13 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd, 47244, Michael Welsh Duggan On Mär 18 2021, Eli Zaretskii wrote: >> From: Michael Welsh Duggan <mwd@cert.org> >> Cc: "mwd@md5i.com" <mwd@md5i.com>, >> "47244@debbugs.gnu.org" >> <47244@debbugs.gnu.org> >> Date: Thu, 18 Mar 2021 15:24:42 -0400 >> >> (gdb) p XWINDOW(selected_window)->contents >> $10 = XIL(0x555558df4845) >> (gdb) xtype >> Lisp_Vectorlike >> PVEC_BUFFER >> (gdb) xbuffer >> $11 = (struct buffer *) 0x555558df4840 >> "DEAD" > > So the selected window's buffer was killed. How is that possible? Perhaps during run_window_change_functions. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 20:13 ` Andreas Schwab @ 2021-03-18 20:27 ` Eli Zaretskii 2021-03-19 1:50 ` Michael Welsh Duggan 2021-03-19 8:15 ` martin rudalics 0 siblings, 2 replies; 160+ messages in thread From: Eli Zaretskii @ 2021-03-18 20:27 UTC (permalink / raw) To: Andreas Schwab; +Cc: mwd, 47244, mwd > From: Andreas Schwab <schwab@linux-m68k.org> > Cc: Michael Welsh Duggan <mwd@cert.org>, mwd@md5i.com, 47244@debbugs.gnu.org > Date: Thu, 18 Mar 2021 21:13:40 +0100 > > > So the selected window's buffer was killed. How is that possible? > > Perhaps during run_window_change_functions. Something like that, yes. But I don't understand how that can happen technically: kill-buffer selects another buffer when killing the current one. So how was that buffer killed, and yet stayed current? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 20:27 ` Eli Zaretskii @ 2021-03-19 1:50 ` Michael Welsh Duggan 2021-03-19 6:47 ` Eli Zaretskii 2021-03-19 8:15 ` martin rudalics 1 sibling, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-19 1:50 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd, Andreas Schwab, 47244, mwd Eli Zaretskii <eliz@gnu.org> writes: >> From: Andreas Schwab <schwab@linux-m68k.org> >> Cc: Michael Welsh Duggan <mwd@cert.org>, mwd@md5i.com, 47244@debbugs.gnu.org >> Date: Thu, 18 Mar 2021 21:13:40 +0100 >> >> > So the selected window's buffer was killed. How is that possible? >> >> Perhaps during run_window_change_functions. > > Something like that, yes. But I don't understand how that can happen > technically: kill-buffer selects another buffer when killing the > current one. So how was that buffer killed, and yet stayed current? Hmm... Is there a set of printfs we could add that would provide useful information for the next time I trigger the crash? -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-19 1:50 ` Michael Welsh Duggan @ 2021-03-19 6:47 ` Eli Zaretskii 2021-03-19 13:37 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-19 6:47 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: schwab, 47244, mwd > From: Michael Welsh Duggan <mwd@md5i.com> > Cc: Andreas Schwab <schwab@linux-m68k.org>, mwd@cert.org, mwd@md5i.com, > 47244@debbugs.gnu.org > Date: Thu, 18 Mar 2021 21:50:28 -0400 > > >> Perhaps during run_window_change_functions. > > > > Something like that, yes. But I don't understand how that can happen > > technically: kill-buffer selects another buffer when killing the > > current one. So how was that buffer killed, and yet stayed current? > > Hmm... Is there a set of printfs we could add that would provide useful > information for the next time I trigger the crash? I'm open to ideas. The problem is, killing buffers is so common in Emacs (including the temporary buffers you never even suspect are being used under the hood) that if you put a breakpoint there, even with some sophisticated condition that I don't yet know how to formulate, I'm afraid that will slow down Emacs so much you will be unable to work. But maybe my fears are exaggerated. If you set a breakpoint on Fkill_buffer with commands that say just silent continue end does Emacs run reasonably fast for you to be able to work in such a session? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-19 6:47 ` Eli Zaretskii @ 2021-03-19 13:37 ` Michael Welsh Duggan 2021-03-19 13:41 ` Michael Welsh Duggan 2021-03-19 13:49 ` Eli Zaretskii 0 siblings, 2 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-19 13:37 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Michael Welsh Duggan, schwab, 47244, mwd Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@md5i.com> >> Cc: Andreas Schwab <schwab@linux-m68k.org>, mwd@cert.org, mwd@md5i.com, >> 47244@debbugs.gnu.org >> Date: Thu, 18 Mar 2021 21:50:28 -0400 >> >> >> Perhaps during run_window_change_functions. >> > >> > Something like that, yes. But I don't understand how that can happen >> > technically: kill-buffer selects another buffer when killing the >> > current one. So how was that buffer killed, and yet stayed current? >> >> Hmm... Is there a set of printfs we could add that would provide useful >> information for the next time I trigger the crash? > > I'm open to ideas. The problem is, killing buffers is so common in > Emacs (including the temporary buffers you never even suspect are > being used under the hood) that if you put a breakpoint there, even > with some sophisticated condition that I don't yet know how to > formulate, I'm afraid that will slow down Emacs so much you will be > unable to work. > > But maybe my fears are exaggerated. If you set a breakpoint on > Fkill_buffer with commands that say just > > silent > continue > end > > does Emacs run reasonably fast for you to be able to work in such a > session? I just tested this. It runs fast enough even without silent. (I did this to make sure I had set up the breakpoint correctly and it was being triggered. -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-19 13:37 ` Michael Welsh Duggan @ 2021-03-19 13:41 ` Michael Welsh Duggan 2021-03-19 13:51 ` Eli Zaretskii 2021-03-19 13:49 ` Eli Zaretskii 1 sibling, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-19 13:41 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: schwab, 47244, mwd Michael Welsh Duggan <mwd@md5i.com> writes: > Eli Zaretskii <eliz@gnu.org> writes: > >>> From: Michael Welsh Duggan <mwd@md5i.com> >>> Cc: Andreas Schwab <schwab@linux-m68k.org>, mwd@cert.org, mwd@md5i.com, >>> 47244@debbugs.gnu.org >>> Date: Thu, 18 Mar 2021 21:50:28 -0400 >>> >>> >> Perhaps during run_window_change_functions. >>> > >>> > Something like that, yes. But I don't understand how that can happen >>> > technically: kill-buffer selects another buffer when killing the >>> > current one. So how was that buffer killed, and yet stayed current? >>> >>> Hmm... Is there a set of printfs we could add that would provide useful >>> information for the next time I trigger the crash? >> >> I'm open to ideas. The problem is, killing buffers is so common in >> Emacs (including the temporary buffers you never even suspect are >> being used under the hood) that if you put a breakpoint there, even >> with some sophisticated condition that I don't yet know how to >> formulate, I'm afraid that will slow down Emacs so much you will be >> unable to work. >> >> But maybe my fears are exaggerated. If you set a breakpoint on >> Fkill_buffer with commands that say just >> >> silent >> continue >> end >> >> does Emacs run reasonably fast for you to be able to work in such a >> session? > > I just tested this. It runs fast enough even without silent. (I did > this to make sure I had set up the breakpoint correctly and it was being > triggered. Also, if you let me know what you would like in the breakpoint command(s), let me know if I should first update to current master. -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-19 13:41 ` Michael Welsh Duggan @ 2021-03-19 13:51 ` Eli Zaretskii 0 siblings, 0 replies; 160+ messages in thread From: Eli Zaretskii @ 2021-03-19 13:51 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: schwab, 47244, mwd > From: Michael Welsh Duggan <mwd@md5i.com> > Cc: Eli Zaretskii <eliz@gnu.org>, schwab@linux-m68k.org, mwd@cert.org, > 47244@debbugs.gnu.org > Date: Fri, 19 Mar 2021 09:41:47 -0400 > > Also, if you let me know what you would like in the breakpoint > command(s), let me know if I should first update to current master. I suggest that you update regardless, so that we have a common ground for talking about line numbers and backtraces. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-19 13:37 ` Michael Welsh Duggan 2021-03-19 13:41 ` Michael Welsh Duggan @ 2021-03-19 13:49 ` Eli Zaretskii 2021-03-19 14:18 ` Michael Welsh Duggan 1 sibling, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-19 13:49 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: schwab, 47244, mwd > From: Michael Welsh Duggan <mwd@md5i.com> > Cc: Michael Welsh Duggan <mwd@md5i.com>, schwab@linux-m68k.org, > mwd@cert.org, 47244@debbugs.gnu.org > Date: Fri, 19 Mar 2021 09:37:21 -0400 > > > But maybe my fears are exaggerated. If you set a breakpoint on > > Fkill_buffer with commands that say just > > > > silent > > continue > > end > > > > does Emacs run reasonably fast for you to be able to work in such a > > session? > > I just tested this. It runs fast enough even without silent. (I did > this to make sure I had set up the breakpoint correctly and it was being > triggered. Then maybe we can try catching the culprit. Try this: (gdb) break buffer.c:1840 if redisplaying_p != 0 This breakpoint is in this snippet from buffer.c: /* Make this buffer not be current. Exit if it is the sole visible buffer. */ if (b == current_buffer) { tem = Fother_buffer (buffer, Qnil, Qnil); <<<<<<<<<<<<<<<<<< Fset_buffer (tem); if (b == current_buffer) return Qnil; } If this breaks, I'd be interested to see the backtrace (including "xbacktrace" which shows the corresponding Lisp backtrace). Thanks. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-19 13:49 ` Eli Zaretskii @ 2021-03-19 14:18 ` Michael Welsh Duggan 2021-03-19 14:21 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-19 14:18 UTC (permalink / raw) To: Eli Zaretskii Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@md5i.com> >> Cc: Michael Welsh Duggan <mwd@md5i.com>, schwab@linux-m68k.org, >> mwd@cert.org, 47244@debbugs.gnu.org >> Date: Fri, 19 Mar 2021 09:37:21 -0400 >> >> > But maybe my fears are exaggerated. If you set a breakpoint on >> > Fkill_buffer with commands that say just >> > >> > silent >> > continue >> > end >> > >> > does Emacs run reasonably fast for you to be able to work in such a >> > session? >> >> I just tested this. It runs fast enough even without silent. (I did >> this to make sure I had set up the breakpoint correctly and it was being >> triggered. > > Then maybe we can try catching the culprit. Try this: > > (gdb) break buffer.c:1840 if redisplaying_p != 0 > > This breakpoint is in this snippet from buffer.c: > > /* Make this buffer not be current. Exit if it is the sole visible > buffer. */ > if (b == current_buffer) > { > tem = Fother_buffer (buffer, Qnil, Qnil); <<<<<<<<<<<<<<<<<< > Fset_buffer (tem); > if (b == current_buffer) > return Qnil; > } > > If this breaks, I'd be interested to see the backtrace (including > "xbacktrace" which shows the corresponding Lisp backtrace). > > Thanks. That triggered really quickly. Here's the backtraces: #0 0x00005555555e1a61 in redisplay_internal () at ../../master/src/xdisp.c:15789 w = 0x555556b96340 sw = 0x555556b96340 fr = 0x555556b8ca50 pending = false must_finish = true match_p = true tlbufpos = { charpos = 127, bytepos = 127 } tlendpos = { charpos = 0, bytepos = 0 } number_of_visible_frames = 4 count = 3 sf = 0x555556b8ca50 polling_stopped_here = false tail = XIL(0) frame = XIL(0x555555d52afd) hscroll_retries = 0 garbaged_frame_retries = 0 consider_all_windows_p = false update_miniwindow_p = true #1 0x00005555555e061e in redisplay () at ../../master/src/xdisp.c:15245 #2 0x00005555556e9991 in read_char (commandflag=1, map=XIL(0x555558a3e483), prev_event=XIL(0), used_mouse_menu=0x7fffffffdabf, end_time=0x0) at ../../master/src/keyboard.c:2496 echo_current = false c = XIL(0) jmpcount = 93824999976800 local_getcjmp = {{ __jmpbuf = {93825000009536, 0, 93824999976800, 0, 0, 140737488345232, 93824994486337, 93825051609157}, __mask_was_saved = -10032, __saved_mask = { __val = {93824994503322, 140737259960288, 140737259960240, 0, 46912259983440, 0, 140737259960288, 93824999976800, 0, 0, 140737488345344, 93824993977890, 4066572208, 93824999976800, 0, 0} } }} save_jump = {{ __jmpbuf = {0, 32736, 0, 140737266320856, 0, 0, 93825051609152, 0}, __mask_was_saved = 0, __saved_mask = { __val = {93825000009536, 93824994486337, 0, 140737488345184, 93824994507922, 140737266320856, 12884891664, 0, 32736, 93825051609152, 140737266320856, 93824995128912, 51539607552, 93825051609157, 93825051609152, 93824995129355} } }} tem = XIL(0) save = make_fixnum(23456248494472) previous_echo_area_message = XIL(0) also_record = XIL(0) reread = false recorded = false polling_stopped_here = false orig_kboard = 0x555555dea0a0 #3 0x00005555556f86dc in read_key_sequence (keybuf=0x7fffffffdcc0, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at ../../master/src/keyboard.c:9484 interrupted_kboard = 0x555555dea0a0 interrupted_frame = 0x555556b8ca50 key = make_fixnum(23456248516455) used_mouse_menu = false echo_local_start = 0 last_real_key_start = 0 keys_local_start = 0 new_binding = XIL(0x555557286ce0) count = 3 t = 0 echo_start = 0 keys_start = 0 current_binding = XIL(0x555558a3e483) first_unbound = 31 mock_input = 0 used_mouse_menu_history = {false <repeats 30 times>} fkey = { parent = XIL(0x5555568a0323), map = XIL(0x5555568a0323), start = 0, end = 0 } keytran = { parent = XIL(0x7ffff2c27c4b), map = XIL(0x7ffff2c27c4b), start = 0, end = 0 } indec = { parent = XIL(0x5555568a0353), map = XIL(0x5555568a0353), start = 0, end = 0 } shift_translated = false delayed_switch_frame = XIL(0) original_uppercase = XIL(0) original_uppercase_position = -1 dummyflag = false starting_buffer = 0x555558df4840 fake_prefixed_keys = XIL(0) first_event = XIL(0) second_event = XIL(0) #4 0x00005555556e6c13 in command_loop_1 () at ../../master/src/keyboard.c:1353 cmd = XIL(0x7fffffffde10) keybuf = {XIL(0), XIL(0x7ffff2c27bf5), XIL(0x555555765719), XIL(0x1655540), XIL(0x7fffffffdd70), XIL(0x55555579dc50), XIL(0x1655540), XIL(0x7ffff257b4c4), XIL(0x555558df8683), XIL(0x7ffff2c27bf5), XIL(0x7ffff2c27bf5), XIL(0x555558df8683), XIL(0x7ffff257b4c4), XIL(0x1655540), XIL(0), XIL(0), XIL(0x555555cb6f60), XIL(0), XIL(0), XIL(0x7fffffffdd70), XIL(0x5555556e3b34), XIL(0xffffddc0), XIL(0x555555cb6f60), XIL(0), XIL(0), XIL(0x7fffffffdda0), XIL(0x555555797748), make_fixnum(0), XIL(0x7fffffffdde0), XIL(0x55555579ae39)} i = 1 prev_modiff = 0 prev_buffer = 0x0 already_adjusted = false #5 0x000055555579aa34 in internal_condition_case (bfun=0x5555556e67cd <command_loop_1>, handlers=XIL(0x90), hfun=0x5555556e5f69 <cmd_error>) at ../../master/src/eval.c:1439 val = XIL(0x5555556e3b34) c = 0x555555db1380 #6 0x00005555556e6495 in command_loop_2 (ignore=XIL(0)) at ../../master/src/keyboard.c:1094 val = make_fixnum(0) #7 0x000055555579a242 in internal_catch (tag=XIL(0xd950), func=0x5555556e6468 <command_loop_2>, arg=XIL(0)) at ../../master/src/eval.c:1189 val = XIL(0xd950) c = 0x555555d9a6f0 #8 0x00005555556e6434 in command_loop () at ../../master/src/keyboard.c:1073 #9 0x00005555556e5b3a in recursive_edit_1 () at ../../master/src/keyboard.c:720 count = 1 val = XIL(0x7fffffffdf50) #10 0x00005555556e5cbd in Frecursive_edit () at ../../master/src/keyboard.c:789 count = 0 buffer = XIL(0) #11 0x00005555556e26ea in main (argc=2, argv=0x7fffffffe1b8) at ../../master/src/emacs.c:2050 stack_bottom_variable = 0x7ffff617e053 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 1 temacs = 0x0 attempt_load_pdump = true rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = 0x0 sockfd = -1 module_assertions = false Lisp Backtrace: "redisplay_internal (C function)" (0x0) #0 Fkill_buffer (buffer_or_name=XIL(0x555556da6cd5)) at ../../master/src/buffer.c:1840 buffer = XIL(0x555556da6cd5) b = 0x555556da6cd0 tem = XIL(0x55555570ee2b) m = 0x7ffffffec990 #1 0x000055555579e96e in funcall_subr (subr=0x555555c4c080 <Skill_buffer>, numargs=1, args=0x7ffffffeca60) at ../../master/src/eval.c:2987 internal_argbuf = {XIL(0x7ffff2b2d86d), XIL(0), XIL(0), XIL(0x7ffffffec9a0), XIL(0x555555cc4f80), XIL(0x1000000000), XIL(0x555555c4c080), XIL(0x7ffffffec9c8)} internal_args = 0x7ffffffeca60 #2 0x000055555579e582 in Ffuncall (nargs=2, args=0x7ffffffeca58) at ../../master/src/eval.c:2914 fun = XIL(0x555555c4c085) original_fun = XIL(0x2aaa9c8bf8c0) funcar = make_fixnum(0) numargs = 1 val = XIL(0) count = 35 #3 0x00005555557e9a00 in exec_byte_code (bytestr=XIL(0x7ffff25d43f4), vector=XIL(0x555556d4ec7d), maxdepth=make_fixnum(2), args_template=make_fixnum(0), nargs=0, args=0x7ffffffecf10) at ../../master/src/bytecode.c:632 op = 1 type = (CATCHER_ALL | unknown: 0x558181a0) targets = {0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec748 <exec_byte_code+14378>, 0x5555557ec74a <exec_byte_code+14380>, 0x5555557ec74c <exec_byte_code+14382>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec7b3 <exec_byte_code+14485>, 0x5555557ec827 <exec_byte_code+14601>, 0x5555557e93ac <exec_byte_code+1166>, 0x5555557e93ae <exec_byte_code+1168>, 0x5555557e93b0 <exec_byte_code+1170>, 0x5555557e93b2 <exec_byte_code+1172>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93ba <exec_byte_code+1180>, 0x5555557e937b <exec_byte_code+1117>, 0x5555557e972a <exec_byte_code+2060>, 0x5555557e972c <exec_byte_code+2062>, 0x5555557e972e <exec_byte_code+2064>, 0x5555557e9730 <exec_byte_code+2066>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9767 <exec_byte_code+2121>, 0x5555557e9738 <exec_byte_code+2074>, 0x5555557e9918 <exec_byte_code+2554>, 0x5555557e991a <exec_byte_code+2556>, 0x5555557e991c <exec_byte_code+2558>, 0x5555557e991e <exec_byte_code+2560>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e98d2 <exec_byte_code+2484>, 0x5555557e98e9 <exec_byte_code+2507>, 0x5555557e99cd <exec_byte_code+2735>, 0x5555557e99cf <exec_byte_code+2737>, 0x5555557e99d1 <exec_byte_code+2739>, 0x5555557e99d3 <exec_byte_code+2741>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e9987 <exec_byte_code+2665>, 0x5555557e999e <exec_byte_code+2688>, 0x5555557e9a7f <exec_byte_code+2913>, 0x5555557e9a81 <exec_byte_code+2915>, 0x5555557e9a83 <exec_byte_code+2917>, 0x5555557e9a85 <exec_byte_code+2919>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a39 <exec_byte_code+2843>, 0x5555557e9a50 <exec_byte_code+2866>, 0x5555557ea2e7 <exec_byte_code+5065>, 0x5555557ea1ca <exec_byte_code+4780>, 0x5555557ea1c1 <exec_byte_code+4771>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ea521 <exec_byte_code+5635>, 0x5555557ea602 <exec_byte_code+5860>, 0x5555557ea65f <exec_byte_code+5953>, 0x5555557ea6bf <exec_byte_code+6049>, 0x5555557ea721 <exec_byte_code+6147>, 0x5555557e95b7 <exec_byte_code+1689>, 0x5555557e9632 <exec_byte_code+1812>, 0x5555557ea79a <exec_byte_code+6268>, 0x5555557e9528 <exec_byte_code+1546>, 0x5555557e969a <exec_byte_code+1916>, 0x5555557ea802 <exec_byte_code+6372>, 0x5555557ea86a <exec_byte_code+6476>, 0x5555557ea8b2 <exec_byte_code+6548>, 0x5555557ea91a <exec_byte_code+6652>, 0x5555557ea980 <exec_byte_code+6754>, 0x5555557eaa66 <exec_byte_code+6984>, 0x5555557eaaae <exec_byte_code+7056>, 0x5555557eab16 <exec_byte_code+7160>, 0x5555557eab9b <exec_byte_code+7293>, 0x5555557eabe3 <exec_byte_code+7365>, 0x5555557eac2b <exec_byte_code+7437>, 0x5555557eac93 <exec_byte_code+7541>, 0x5555557eacfb <exec_byte_code+7645>, 0x5555557ead63 <exec_byte_code+7749>, 0x5555557eade8 <exec_byte_code+7882>, 0x5555557eae37 <exec_byte_code+7961>, 0x5555557eae86 <exec_byte_code+8040>, 0x5555557eaf4d <exec_byte_code+8239>, 0x5555557eafef <exec_byte_code+8401>, 0x5555557eb091 <exec_byte_code+8563>, 0x5555557eb0fe <exec_byte_code+8672>, 0x5555557eb16b <exec_byte_code+8781>, 0x5555557eb1d8 <exec_byte_code+8890>, 0x5555557eb245 <exec_byte_code+8999>, 0x5555557eb2b2 <exec_byte_code+9108>, 0x5555557eb301 <exec_byte_code+9187>, 0x5555557eb3a4 <exec_byte_code+9350>, 0x5555557eb3f3 <exec_byte_code+9429>, 0x5555557eb442 <exec_byte_code+9508>, 0x5555557eb491 <exec_byte_code+9587>, 0x5555557eb597 <exec_byte_code+9849>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557eb5f2 <exec_byte_code+9940>, 0x5555557eb63a <exec_byte_code+10012>, 0x5555557eb6fc <exec_byte_code+10206>, 0x5555557eb765 <exec_byte_code+10311>, 0x5555557eb7c0 <exec_byte_code+10402>, 0x5555557eb808 <exec_byte_code+10474>, 0x5555557eb84b <exec_byte_code+10541>, 0x5555557eb88e <exec_byte_code+10608>, 0x5555557eb8d9 <exec_byte_code+10683>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557eb931 <exec_byte_code+10771>, 0x5555557eb974 <exec_byte_code+10838>, 0x5555557eb9b7 <exec_byte_code+10905>, 0x5555557eb9fa <exec_byte_code+10972>, 0x5555557eba3d <exec_byte_code+11039>, 0x5555557eba80 <exec_byte_code+11106>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ebac8 <exec_byte_code+11178>, 0x5555557ebb1a <exec_byte_code+11260>, 0x5555557ebb62 <exec_byte_code+11332>, 0x5555557ebbaa <exec_byte_code+11404>, 0x5555557ebc12 <exec_byte_code+11508>, 0x5555557ebc7a <exec_byte_code+11612>, 0x5555557ebcc2 <exec_byte_code+11684>, 0x5555557ebd7f <exec_byte_code+11873>, 0x5555557ebde7 <exec_byte_code+11977>, 0x5555557ebe4f <exec_byte_code+12081>, 0x5555557ebeb7 <exec_byte_code+12185>, 0x5555557ebefa <exec_byte_code+12252>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9f87 <exec_byte_code+4201>, 0x5555557e9b31 <exec_byte_code+3091>, 0x5555557e9496 <exec_byte_code+1400>, 0x5555557e9be2 <exec_byte_code+3268>, 0x5555557e9c66 <exec_byte_code+3400>, 0x5555557e9ce7 <exec_byte_code+3529>, 0x5555557e9f3b <exec_byte_code+4125>, 0x5555557e9f50 <exec_byte_code+4146>, 0x5555557e987f <exec_byte_code+2401>, 0x5555557ea00a <exec_byte_code+4332>, 0x5555557ea078 <exec_byte_code+4442>, 0x5555557ea109 <exec_byte_code+4587>, 0x5555557ea152 <exec_byte_code+4660>, 0x5555557ea333 <exec_byte_code+5141>, 0x5555557ea3b0 <exec_byte_code+5266>, 0x5555557ea435 <exec_byte_code+5399>, 0x5555557ea49b <exec_byte_code+5501>, 0x5555557e9ae3 <exec_byte_code+3013>, 0x5555557ebf42 <exec_byte_code+12324>, 0x5555557ebfc7 <exec_byte_code+12457>, 0x5555557ec00f <exec_byte_code+12529>, 0x5555557ec057 <exec_byte_code+12601>, 0x5555557ec09f <exec_byte_code+12673>, 0x5555557ec0e7 <exec_byte_code+12745>, 0x5555557ec14f <exec_byte_code+12849>, 0x5555557ec1b7 <exec_byte_code+12953>, 0x5555557ec21f <exec_byte_code+13057>, 0x5555557ec287 <exec_byte_code+13161>, 0x5555557ec398 <exec_byte_code+13434>, 0x5555557ec400 <exec_byte_code+13538>, 0x5555557ec468 <exec_byte_code+13642>, 0x5555557ec4b0 <exec_byte_code+13714>, 0x5555557ec518 <exec_byte_code+13818>, 0x5555557ec580 <exec_byte_code+13922>, 0x5555557ec5c8 <exec_byte_code+13994>, 0x5555557ec610 <exec_byte_code+14066>, 0x5555557eb4e0 <exec_byte_code+9666>, 0x5555557eb52f <exec_byte_code+9745>, 0x5555557ec65f <exec_byte_code+14145>, 0x5555557ec6c1 <exec_byte_code+14243>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9d68 <exec_byte_code+3658>, 0x5555557e9d85 <exec_byte_code+3687>, 0x5555557e9df4 <exec_byte_code+3798>, 0x5555557e9e63 <exec_byte_code+3909>, 0x5555557e9ecf <exec_byte_code+4017>, 0x5555557ea9ee <exec_byte_code+6864>, 0x5555557eaed5 <exec_byte_code+8119>, 0x5555557eb684 <exec_byte_code+10086>, 0x5555557ec8ba <exec_byte_code+14748>, 0x5555557ec92f <exec_byte_code+14865>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec9c5 <exec_byte_code+15015>, 0x5555557eca4c <exec_byte_code+15150>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ecb9a <exec_byte_code+15484> <repeats 64 times>} const_length = 3 bytestr_length = 10 vectorp = 0x555556d4ec80 quitcounter = 1 '\001' stack_items = 3 sa_avail = 16350 sa_count = 35 alloc = 0x7ffffffeca50 stack_base = 0x7ffffffeca50 top = 0x7ffffffeca58 stack_lim = 0x7ffffffeca68 bytestr_data = 0x7ffffffeca68 "\301\300!\205\t" pc = 0x7ffffffeca71 "\207\376\377\377\177" count = 35 result = make_fixnum(8) #4 0x000055555579ec21 in fetch_and_exec_byte_code (fun=XIL(0x555556e58d75), syms_left=make_fixnum(0), nargs=0, args=0x7ffffffecf10) at ../../master/src/eval.c:3036 #5 0x000055555579efae in funcall_lambda (fun=XIL(0x555556e58d75), nargs=0, arg_vector=0x7ffffffecf10) at ../../master/src/eval.c:3117 val = XIL(0x7ffffffece90) syms_left = make_fixnum(0) next = XIL(0x1) lexenv = XIL(0x1800000000) count = 35 i = 93824994606300 optional = false rest = false #6 0x000055555579e5c6 in Ffuncall (nargs=1, args=0x7ffffffecf08) at ../../master/src/eval.c:2916 fun = XIL(0x555556e58d75) original_fun = XIL(0x555556e58d75) funcar = XIL(0x7ffffffecec0) numargs = 0 val = XIL(0x7ffffffecf20) count = 34 #7 0x00005555557e8f1b in bcall0 (f=XIL(0x555556e58d75)) at ../../master/src/bytecode.c:340 #8 0x00005555557a0125 in do_one_unbind (this_binding=0x7ffffffecf80, unwinding=true, bindflag=SET_INTERNAL_UNBIND) at ../../master/src/eval.c:3575 #9 0x00005555557a04de in unbind_to (count=33, value=XIL(0)) at ../../master/src/eval.c:3713 this_binding = { kind = SPECPDL_UNWIND, unwind = { kind = SPECPDL_UNWIND, func = 0x5555557e8efe <bcall0>, arg = XIL(0x555556e58d75), eval_depth = 7 }, unwind_array = { kind = SPECPDL_UNWIND, nelts = 93824994938622, array = 0x555556e58d75 }, unwind_ptr = { kind = SPECPDL_UNWIND, func = 0x5555557e8efe <bcall0>, arg = 0x555556e58d75 }, unwind_int = { kind = SPECPDL_UNWIND, func = 0x5555557e8efe <bcall0>, arg = 1457884533 }, unwind_intmax = { kind = SPECPDL_UNWIND, func = 0x5555557e8efe <bcall0>, arg = 93825018465653 }, unwind_excursion = { kind = SPECPDL_UNWIND, marker = make_fixnum(23456248734655), window = XIL(0x555556e58d75) }, unwind_void = { kind = SPECPDL_UNWIND, func = 0x5555557e8efe <bcall0> }, let = { kind = SPECPDL_UNWIND, symbol = make_fixnum(23456248734655), old_value = XIL(0x555556e58d75), where = XIL(0x7), saved_value = XIL(0) }, bt = { kind = SPECPDL_UNWIND, debug_on_exit = false, function = make_fixnum(23456248734655), args = 0x555556e58d75, nargs = 7 } } quitf = XIL(0) #10 0x00005555557e9ab1 in exec_byte_code (bytestr=XIL(0x7ffff291441c), vector=XIL(0x7ffff29140cd), maxdepth=make_fixnum(23), args_template=make_fixnum(257), nargs=1, args=0x7ffffffed730) at ../../master/src/bytecode.c:652 op = 2 type = (unknown: 0xf2c42280) targets = {0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec748 <exec_byte_code+14378>, 0x5555557ec74a <exec_byte_code+14380>, 0x5555557ec74c <exec_byte_code+14382>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec7b3 <exec_byte_code+14485>, 0x5555557ec827 <exec_byte_code+14601>, 0x5555557e93ac <exec_byte_code+1166>, 0x5555557e93ae <exec_byte_code+1168>, 0x5555557e93b0 <exec_byte_code+1170>, 0x5555557e93b2 <exec_byte_code+1172>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93ba <exec_byte_code+1180>, 0x5555557e937b <exec_byte_code+1117>, 0x5555557e972a <exec_byte_code+2060>, 0x5555557e972c <exec_byte_code+2062>, 0x5555557e972e <exec_byte_code+2064>, 0x5555557e9730 <exec_byte_code+2066>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9767 <exec_byte_code+2121>, 0x5555557e9738 <exec_byte_code+2074>, 0x5555557e9918 <exec_byte_code+2554>, 0x5555557e991a <exec_byte_code+2556>, 0x5555557e991c <exec_byte_code+2558>, 0x5555557e991e <exec_byte_code+2560>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e98d2 <exec_byte_code+2484>, 0x5555557e98e9 <exec_byte_code+2507>, 0x5555557e99cd <exec_byte_code+2735>, 0x5555557e99cf <exec_byte_code+2737>, 0x5555557e99d1 <exec_byte_code+2739>, 0x5555557e99d3 <exec_byte_code+2741>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e9987 <exec_byte_code+2665>, 0x5555557e999e <exec_byte_code+2688>, 0x5555557e9a7f <exec_byte_code+2913>, 0x5555557e9a81 <exec_byte_code+2915>, 0x5555557e9a83 <exec_byte_code+2917>, 0x5555557e9a85 <exec_byte_code+2919>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a39 <exec_byte_code+2843>, 0x5555557e9a50 <exec_byte_code+2866>, 0x5555557ea2e7 <exec_byte_code+5065>, 0x5555557ea1ca <exec_byte_code+4780>, 0x5555557ea1c1 <exec_byte_code+4771>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ea521 <exec_byte_code+5635>, 0x5555557ea602 <exec_byte_code+5860>, 0x5555557ea65f <exec_byte_code+5953>, 0x5555557ea6bf <exec_byte_code+6049>, 0x5555557ea721 <exec_byte_code+6147>, 0x5555557e95b7 <exec_byte_code+1689>, 0x5555557e9632 <exec_byte_code+1812>, 0x5555557ea79a <exec_byte_code+6268>, 0x5555557e9528 <exec_byte_code+1546>, 0x5555557e969a <exec_byte_code+1916>, 0x5555557ea802 <exec_byte_code+6372>, 0x5555557ea86a <exec_byte_code+6476>, 0x5555557ea8b2 <exec_byte_code+6548>, 0x5555557ea91a <exec_byte_code+6652>, 0x5555557ea980 <exec_byte_code+6754>, 0x5555557eaa66 <exec_byte_code+6984>, 0x5555557eaaae <exec_byte_code+7056>, 0x5555557eab16 <exec_byte_code+7160>, 0x5555557eab9b <exec_byte_code+7293>, 0x5555557eabe3 <exec_byte_code+7365>, 0x5555557eac2b <exec_byte_code+7437>, 0x5555557eac93 <exec_byte_code+7541>, 0x5555557eacfb <exec_byte_code+7645>, 0x5555557ead63 <exec_byte_code+7749>, 0x5555557eade8 <exec_byte_code+7882>, 0x5555557eae37 <exec_byte_code+7961>, 0x5555557eae86 <exec_byte_code+8040>, 0x5555557eaf4d <exec_byte_code+8239>, 0x5555557eafef <exec_byte_code+8401>, 0x5555557eb091 <exec_byte_code+8563>, 0x5555557eb0fe <exec_byte_code+8672>, 0x5555557eb16b <exec_byte_code+8781>, 0x5555557eb1d8 <exec_byte_code+8890>, 0x5555557eb245 <exec_byte_code+8999>, 0x5555557eb2b2 <exec_byte_code+9108>, 0x5555557eb301 <exec_byte_code+9187>, 0x5555557eb3a4 <exec_byte_code+9350>, 0x5555557eb3f3 <exec_byte_code+9429>, 0x5555557eb442 <exec_byte_code+9508>, 0x5555557eb491 <exec_byte_code+9587>, 0x5555557eb597 <exec_byte_code+9849>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557eb5f2 <exec_byte_code+9940>, 0x5555557eb63a <exec_byte_code+10012>, 0x5555557eb6fc <exec_byte_code+10206>, 0x5555557eb765 <exec_byte_code+10311>, 0x5555557eb7c0 <exec_byte_code+10402>, 0x5555557eb808 <exec_byte_code+10474>, 0x5555557eb84b <exec_byte_code+10541>, 0x5555557eb88e <exec_byte_code+10608>, 0x5555557eb8d9 <exec_byte_code+10683>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557eb931 <exec_byte_code+10771>, 0x5555557eb974 <exec_byte_code+10838>, 0x5555557eb9b7 <exec_byte_code+10905>, 0x5555557eb9fa <exec_byte_code+10972>, 0x5555557eba3d <exec_byte_code+11039>, 0x5555557eba80 <exec_byte_code+11106>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ebac8 <exec_byte_code+11178>, 0x5555557ebb1a <exec_byte_code+11260>, 0x5555557ebb62 <exec_byte_code+11332>, 0x5555557ebbaa <exec_byte_code+11404>, 0x5555557ebc12 <exec_byte_code+11508>, 0x5555557ebc7a <exec_byte_code+11612>, 0x5555557ebcc2 <exec_byte_code+11684>, 0x5555557ebd7f <exec_byte_code+11873>, 0x5555557ebde7 <exec_byte_code+11977>, 0x5555557ebe4f <exec_byte_code+12081>, 0x5555557ebeb7 <exec_byte_code+12185>, 0x5555557ebefa <exec_byte_code+12252>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9f87 <exec_byte_code+4201>, 0x5555557e9b31 <exec_byte_code+3091>, 0x5555557e9496 <exec_byte_code+1400>, 0x5555557e9be2 <exec_byte_code+3268>, 0x5555557e9c66 <exec_byte_code+3400>, 0x5555557e9ce7 <exec_byte_code+3529>, 0x5555557e9f3b <exec_byte_code+4125>, 0x5555557e9f50 <exec_byte_code+4146>, 0x5555557e987f <exec_byte_code+2401>, 0x5555557ea00a <exec_byte_code+4332>, 0x5555557ea078 <exec_byte_code+4442>, 0x5555557ea109 <exec_byte_code+4587>, 0x5555557ea152 <exec_byte_code+4660>, 0x5555557ea333 <exec_byte_code+5141>, 0x5555557ea3b0 <exec_byte_code+5266>, 0x5555557ea435 <exec_byte_code+5399>, 0x5555557ea49b <exec_byte_code+5501>, 0x5555557e9ae3 <exec_byte_code+3013>, 0x5555557ebf42 <exec_byte_code+12324>, 0x5555557ebfc7 <exec_byte_code+12457>, 0x5555557ec00f <exec_byte_code+12529>, 0x5555557ec057 <exec_byte_code+12601>, 0x5555557ec09f <exec_byte_code+12673>, 0x5555557ec0e7 <exec_byte_code+12745>, 0x5555557ec14f <exec_byte_code+12849>, 0x5555557ec1b7 <exec_byte_code+12953>, 0x5555557ec21f <exec_byte_code+13057>, 0x5555557ec287 <exec_byte_code+13161>, 0x5555557ec398 <exec_byte_code+13434>, 0x5555557ec400 <exec_byte_code+13538>, 0x5555557ec468 <exec_byte_code+13642>, 0x5555557ec4b0 <exec_byte_code+13714>, 0x5555557ec518 <exec_byte_code+13818>, 0x5555557ec580 <exec_byte_code+13922>, 0x5555557ec5c8 <exec_byte_code+13994>, 0x5555557ec610 <exec_byte_code+14066>, 0x5555557eb4e0 <exec_byte_code+9666>, 0x5555557eb52f <exec_byte_code+9745>, 0x5555557ec65f <exec_byte_code+14145>, 0x5555557ec6c1 <exec_byte_code+14243>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9d68 <exec_byte_code+3658>, 0x5555557e9d85 <exec_byte_code+3687>, 0x5555557e9df4 <exec_byte_code+3798>, 0x5555557e9e63 <exec_byte_code+3909>, 0x5555557e9ecf <exec_byte_code+4017>, 0x5555557ea9ee <exec_byte_code+6864>, 0x5555557eaed5 <exec_byte_code+8119>, 0x5555557eb684 <exec_byte_code+10086>, 0x5555557ec8ba <exec_byte_code+14748>, 0x5555557ec92f <exec_byte_code+14865>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec9c5 <exec_byte_code+15015>, 0x5555557eca4c <exec_byte_code+15150>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ecb9a <exec_byte_code+15484> <repeats 64 times>} const_length = 51 bytestr_length = 494 vectorp = 0x7ffff29140d0 quitcounter = 44 ',' stack_items = 24 sa_avail = 15698 sa_count = 32 alloc = 0x7ffffffecfd0 stack_base = 0x7ffffffecfd0 top = 0x7ffffffed000 stack_lim = 0x7ffffffed090 bytestr_data = 0x7ffffffed090 "\211??\205\355\001\b\302p\001\031\303\304\302\"r\211q\210\305\306\002\"\216\004c\210eb\210`dW\203\345\001`lj\211\211g\310U\203\234\001\311\061:" pc = 0x7ffffffed278 "\262\001)\266\203\207" count = 32 result = XIL(0xc6002383a2010007) #11 0x000055555579ec21 in fetch_and_exec_byte_code (fun=XIL(0x7ffff291409d), syms_left=make_fixnum(257), nargs=1, args=0x7ffffffed728) at ../../master/src/eval.c:3036 #12 0x000055555579efae in funcall_lambda (fun=XIL(0x7ffff291409d), nargs=1, arg_vector=0x7ffffffed728) at ../../master/src/eval.c:3117 val = XIL(0x7ffffffed6a0) syms_left = make_fixnum(257) next = XIL(0) lexenv = XIL(0x1800000000) count = 32 i = 93824994606300 optional = false rest = false #13 0x000055555579e5c6 in Ffuncall (nargs=2, args=0x7ffffffed720) at ../../master/src/eval.c:2916 fun = XIL(0x7ffff291409d) original_fun = XIL(0xcff0) funcar = XIL(0x555555cc4f80) numargs = 1 val = XIL(0) count = 31 #14 0x000055555579de5b in call1 (fn=XIL(0xcff0), arg1=XIL(0x7ffff276d6fc)) at ../../master/src/eval.c:2774 #15 0x00005555556e8cac in help_echo_substitute_command_keys (help=XIL(0x7ffff276d6fc)) at ../../master/src/keyboard.c:2042 #16 0x00005555556f46c0 in parse_menu_item (item=XIL(0x7ffff276d6eb), inmenubar=0) at ../../master/src/keyboard.c:7700 help = XIL(0x7ffff276d6fc) li = { tortoise = XIL(0x7ffff292d363), max = 2, n = 0, q = 1 } def = XIL(0x555556c64823) tem = XIL(0xea0) item_string = XIL(0x9ae0) start = XIL(0x7ffff292d353) filter = XIL(0) keyhint = XIL(0) i = 8 #17 0x000055555561da4c in single_menu_item (key=XIL(0x2aaa9ca7dfa8), item=XIL(0x7ffff292d333), dummy=XIL(0), skp_v=0x7ffffffeda60) at ../../master/src/menu.c:323 map = XIL(0x7ffffffed9e0) item_string = XIL(0x30) enabled = XIL(0x7ffff29295a3) res = false skp = 0x7ffffffeda60 #18 0x00005555557003a6 in map_keymap_item (fun=0x55555561d9ff <single_menu_item>, args=XIL(0), key=XIL(0x2aaa9ca7dfa8), val=XIL(0x7ffff292d333), data=0x7ffffffeda60) at ../../master/src/keymap.c:502 #19 0x000055555570051a in map_keymap_internal (map=XIL(0x555556c64823), fun=0x55555561d9ff <single_menu_item>, args=XIL(0), data=0x7ffffffeda60) at ../../master/src/keymap.c:549 binding = XIL(0x555556c5d203) tail = XIL(0x555556c645f3) #20 0x00005555557007c2 in map_keymap_canonical (map=XIL(0x555556c64823), fun=0x55555561d9ff <single_menu_item>, args=XIL(0), data=0x7ffffffeda60) at ../../master/src/keymap.c:609 #21 0x000055555561d971 in single_keymap_panes (keymap=XIL(0x7ffff29295a3), pane_name=XIL(0x7ffff2631c84), prefix=XIL(0x2aaa9c96cd20), maxdepth=10) at ../../master/src/menu.c:292 skp = { pending_maps = XIL(0), maxdepth = 10, notbuttons = 0 } #22 0x000055555561e640 in parse_single_submenu (item_key=XIL(0x2aaa9c96cd20), item_name=XIL(0x7ffff2631c84), maps=XIL(0)) at ../../master/src/menu.c:556 prompt = XIL(0x7ffff2631c84) i = 0 mapvec = 0x7ffffffedab0 top_level_items = false sa_avail = 16376 sa_count = 31 len = 1 #23 0x00005555556218f4 in set_frame_menubar (f=0x555556d8c360, deep_p=true) at ../../master/src/xmenu.c:794 key = XIL(0x2aaa9c96cd20) string = XIL(0x7ffff2631c84) maps = XIL(0x555556c5da43) buffer = XIL(0x7ffff257c6fd) specpdl_count = 25 previous_menu_items_used = 5427 previous_items = 0x7ffffffedc20 subitems = 9 prev = 0x7ffff257c6f8 menubar_widget = 0x555556f93790 old_widget = 0x555556f93790 id = 1 items = XIL(0x555556d9cead) wv = 0x3 first_wv = 0x7fffffff85b0 prev_wv = 0x0 i = 0 submenu_start = 0x7ffffffedbf0 submenu_end = 0x7ffffffedbc0 submenu_top_level_items = 0x7ffffffedb70 submenu_n_panes = 0x7ffffffedb90 #24 0x00005555555db3e4 in update_menu_bar (f=0x555556d8c360, save_match_data=false, hooks_run=true) at ../../master/src/xdisp.c:12913 prev = 0x7ffff257c6f8 count = 22 window = XIL(0x555556e2e2c5) w = 0x555556e2e2c0 #25 0x00005555555db062 in prepare_menu_bars () at ../../master/src/xdisp.c:12799 f = 0x555556d8c360 w = 0x555556e2e2c0 tail = XIL(0x5555569d0ed3) frame = XIL(0x555556d8c365) count = 21 menu_bar_hooks_run = false all_windows = true some_windows = false #26 0x00005555555e14d7 in redisplay_internal () at ../../master/src/xdisp.c:15661 w = 0x555556e2e2c0 sw = 0x555556e2e2c0 fr = 0x555556d8c360 pending = false must_finish = false match_p = false tlbufpos = { charpos = 139642271694850, bytepos = 140737488329552 } tlendpos = { charpos = 140737488329520, bytepos = 93824994640165 } number_of_visible_frames = 2 count = 18 sf = 0x555556d8c360 polling_stopped_here = false tail = XIL(0) frame = XIL(0x555555d61a05) hscroll_retries = 0 garbaged_frame_retries = 0 consider_all_windows_p = false update_miniwindow_p = false #27 0x00005555555e2e05 in redisplay_preserve_echo_area (from_where=13) at ../../master/src/xdisp.c:16382 count = 17 #28 0x00005555557efd2d in Fdelete_process (process=XIL(0x555556da8c1d)) at ../../master/src/process.c:1090 p = 0x555556da8c18 #29 0x000055555579e96e in funcall_subr (subr=0x555555c55e00 <Sdelete_process>, numargs=1, args=0x7fffffff9dd8) at ../../master/src/eval.c:2987 internal_argbuf = {XIL(0x10), XIL(0x3fd0), make_fixnum(23456248621749), XIL(0x2f2704730), XIL(0x555555cc4f80), XIL(0x1000000000), XIL(0x555555c55e00), XIL(0x7fffffff9d28)} internal_args = 0x7fffffff9dd8 #30 0x000055555579e582 in Ffuncall (nargs=2, args=0x7fffffff9dd0) at ../../master/src/eval.c:2914 fun = XIL(0x555555c55e05) original_fun = XIL(0x2aaa9ca9f370) funcar = make_fixnum(23456248621749) numargs = 1 val = XIL(0) count = 16 #31 0x00005555557e9a00 in exec_byte_code (bytestr=XIL(0x555556536fb4), vector=XIL(0x5555564f336d), maxdepth=make_fixnum(10), args_template=make_fixnum(513), nargs=1, args=0x7fffffffa3b8) at ../../master/src/bytecode.c:632 op = 1 type = (CONDITION_CASE | CATCHER_ALL | unknown: 0x557101b0) targets = {0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec748 <exec_byte_code+14378>, 0x5555557ec74a <exec_byte_code+14380>, 0x5555557ec74c <exec_byte_code+14382>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec7b3 <exec_byte_code+14485>, 0x5555557ec827 <exec_byte_code+14601>, 0x5555557e93ac <exec_byte_code+1166>, 0x5555557e93ae <exec_byte_code+1168>, 0x5555557e93b0 <exec_byte_code+1170>, 0x5555557e93b2 <exec_byte_code+1172>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93ba <exec_byte_code+1180>, 0x5555557e937b <exec_byte_code+1117>, 0x5555557e972a <exec_byte_code+2060>, 0x5555557e972c <exec_byte_code+2062>, 0x5555557e972e <exec_byte_code+2064>, 0x5555557e9730 <exec_byte_code+2066>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9767 <exec_byte_code+2121>, 0x5555557e9738 <exec_byte_code+2074>, 0x5555557e9918 <exec_byte_code+2554>, 0x5555557e991a <exec_byte_code+2556>, 0x5555557e991c <exec_byte_code+2558>, 0x5555557e991e <exec_byte_code+2560>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e98d2 <exec_byte_code+2484>, 0x5555557e98e9 <exec_byte_code+2507>, 0x5555557e99cd <exec_byte_code+2735>, 0x5555557e99cf <exec_byte_code+2737>, 0x5555557e99d1 <exec_byte_code+2739>, 0x5555557e99d3 <exec_byte_code+2741>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e9987 <exec_byte_code+2665>, 0x5555557e999e <exec_byte_code+2688>, 0x5555557e9a7f <exec_byte_code+2913>, 0x5555557e9a81 <exec_byte_code+2915>, 0x5555557e9a83 <exec_byte_code+2917>, 0x5555557e9a85 <exec_byte_code+2919>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a39 <exec_byte_code+2843>, 0x5555557e9a50 <exec_byte_code+2866>, 0x5555557ea2e7 <exec_byte_code+5065>, 0x5555557ea1ca <exec_byte_code+4780>, 0x5555557ea1c1 <exec_byte_code+4771>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ea521 <exec_byte_code+5635>, 0x5555557ea602 <exec_byte_code+5860>, 0x5555557ea65f <exec_byte_code+5953>, 0x5555557ea6bf <exec_byte_code+6049>, 0x5555557ea721 <exec_byte_code+6147>, 0x5555557e95b7 <exec_byte_code+1689>, 0x5555557e9632 <exec_byte_code+1812>, 0x5555557ea79a <exec_byte_code+6268>, 0x5555557e9528 <exec_byte_code+1546>, 0x5555557e969a <exec_byte_code+1916>, 0x5555557ea802 <exec_byte_code+6372>, 0x5555557ea86a <exec_byte_code+6476>, 0x5555557ea8b2 <exec_byte_code+6548>, 0x5555557ea91a <exec_byte_code+6652>, 0x5555557ea980 <exec_byte_code+6754>, 0x5555557eaa66 <exec_byte_code+6984>, 0x5555557eaaae <exec_byte_code+7056>, 0x5555557eab16 <exec_byte_code+7160>, 0x5555557eab9b <exec_byte_code+7293>, 0x5555557eabe3 <exec_byte_code+7365>, 0x5555557eac2b <exec_byte_code+7437>, 0x5555557eac93 <exec_byte_code+7541>, 0x5555557eacfb <exec_byte_code+7645>, 0x5555557ead63 <exec_byte_code+7749>, 0x5555557eade8 <exec_byte_code+7882>, 0x5555557eae37 <exec_byte_code+7961>, 0x5555557eae86 <exec_byte_code+8040>, 0x5555557eaf4d <exec_byte_code+8239>, 0x5555557eafef <exec_byte_code+8401>, 0x5555557eb091 <exec_byte_code+8563>, 0x5555557eb0fe <exec_byte_code+8672>, 0x5555557eb16b <exec_byte_code+8781>, 0x5555557eb1d8 <exec_byte_code+8890>, 0x5555557eb245 <exec_byte_code+8999>, 0x5555557eb2b2 <exec_byte_code+9108>, 0x5555557eb301 <exec_byte_code+9187>, 0x5555557eb3a4 <exec_byte_code+9350>, 0x5555557eb3f3 <exec_byte_code+9429>, 0x5555557eb442 <exec_byte_code+9508>, 0x5555557eb491 <exec_byte_code+9587>, 0x5555557eb597 <exec_byte_code+9849>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557eb5f2 <exec_byte_code+9940>, 0x5555557eb63a <exec_byte_code+10012>, 0x5555557eb6fc <exec_byte_code+10206>, 0x5555557eb765 <exec_byte_code+10311>, 0x5555557eb7c0 <exec_byte_code+10402>, 0x5555557eb808 <exec_byte_code+10474>, 0x5555557eb84b <exec_byte_code+10541>, 0x5555557eb88e <exec_byte_code+10608>, 0x5555557eb8d9 <exec_byte_code+10683>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557eb931 <exec_byte_code+10771>, 0x5555557eb974 <exec_byte_code+10838>, 0x5555557eb9b7 <exec_byte_code+10905>, 0x5555557eb9fa <exec_byte_code+10972>, 0x5555557eba3d <exec_byte_code+11039>, 0x5555557eba80 <exec_byte_code+11106>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ebac8 <exec_byte_code+11178>, 0x5555557ebb1a <exec_byte_code+11260>, 0x5555557ebb62 <exec_byte_code+11332>, 0x5555557ebbaa <exec_byte_code+11404>, 0x5555557ebc12 <exec_byte_code+11508>, 0x5555557ebc7a <exec_byte_code+11612>, 0x5555557ebcc2 <exec_byte_code+11684>, 0x5555557ebd7f <exec_byte_code+11873>, 0x5555557ebde7 <exec_byte_code+11977>, 0x5555557ebe4f <exec_byte_code+12081>, 0x5555557ebeb7 <exec_byte_code+12185>, 0x5555557ebefa <exec_byte_code+12252>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9f87 <exec_byte_code+4201>, 0x5555557e9b31 <exec_byte_code+3091>, 0x5555557e9496 <exec_byte_code+1400>, 0x5555557e9be2 <exec_byte_code+3268>, 0x5555557e9c66 <exec_byte_code+3400>, 0x5555557e9ce7 <exec_byte_code+3529>, 0x5555557e9f3b <exec_byte_code+4125>, 0x5555557e9f50 <exec_byte_code+4146>, 0x5555557e987f <exec_byte_code+2401>, 0x5555557ea00a <exec_byte_code+4332>, 0x5555557ea078 <exec_byte_code+4442>, 0x5555557ea109 <exec_byte_code+4587>, 0x5555557ea152 <exec_byte_code+4660>, 0x5555557ea333 <exec_byte_code+5141>, 0x5555557ea3b0 <exec_byte_code+5266>, 0x5555557ea435 <exec_byte_code+5399>, 0x5555557ea49b <exec_byte_code+5501>, 0x5555557e9ae3 <exec_byte_code+3013>, 0x5555557ebf42 <exec_byte_code+12324>, 0x5555557ebfc7 <exec_byte_code+12457>, 0x5555557ec00f <exec_byte_code+12529>, 0x5555557ec057 <exec_byte_code+12601>, 0x5555557ec09f <exec_byte_code+12673>, 0x5555557ec0e7 <exec_byte_code+12745>, 0x5555557ec14f <exec_byte_code+12849>, 0x5555557ec1b7 <exec_byte_code+12953>, 0x5555557ec21f <exec_byte_code+13057>, 0x5555557ec287 <exec_byte_code+13161>, 0x5555557ec398 <exec_byte_code+13434>, 0x5555557ec400 <exec_byte_code+13538>, 0x5555557ec468 <exec_byte_code+13642>, 0x5555557ec4b0 <exec_byte_code+13714>, 0x5555557ec518 <exec_byte_code+13818>, 0x5555557ec580 <exec_byte_code+13922>, 0x5555557ec5c8 <exec_byte_code+13994>, 0x5555557ec610 <exec_byte_code+14066>, 0x5555557eb4e0 <exec_byte_code+9666>, 0x5555557eb52f <exec_byte_code+9745>, 0x5555557ec65f <exec_byte_code+14145>, 0x5555557ec6c1 <exec_byte_code+14243>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9d68 <exec_byte_code+3658>, 0x5555557e9d85 <exec_byte_code+3687>, 0x5555557e9df4 <exec_byte_code+3798>, 0x5555557e9e63 <exec_byte_code+3909>, 0x5555557e9ecf <exec_byte_code+4017>, 0x5555557ea9ee <exec_byte_code+6864>, 0x5555557eaed5 <exec_byte_code+8119>, 0x5555557eb684 <exec_byte_code+10086>, 0x5555557ec8ba <exec_byte_code+14748>, 0x5555557ec92f <exec_byte_code+14865>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec9c5 <exec_byte_code+15015>, 0x5555557eca4c <exec_byte_code+15150>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ecb9a <exec_byte_code+15484> <repeats 64 times>} const_length = 34 bytestr_length = 196 vectorp = 0x5555564f3370 quitcounter = 3 '\003' stack_items = 11 sa_avail = 16100 sa_count = 16 alloc = 0x7fffffff9db0 stack_base = 0x7fffffff9db0 top = 0x7fffffff9dd0 stack_lim = 0x7fffffff9e08 bytestr_data = 0x7fffffff9e08 "\305\306\002\205\a" pc = 0x7fffffff9ec4 "\210\305\341\004\"\262\001\207" count = 16 result = XIL(0) #32 0x000055555579ec21 in fetch_and_exec_byte_code (fun=XIL(0x5555564f3485), syms_left=make_fixnum(513), nargs=1, args=0x7fffffffa3b0) at ../../master/src/eval.c:3036 #33 0x000055555579efae in funcall_lambda (fun=XIL(0x5555564f3485), nargs=1, arg_vector=0x7fffffffa3b0) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffa2f0) syms_left = make_fixnum(513) next = XIL(0) lexenv = XIL(0x1800000000) count = 16 i = 93824994606300 optional = false rest = false #34 0x000055555579e5c6 in Ffuncall (nargs=2, args=0x7fffffffa3a8) at ../../master/src/eval.c:2916 fun = XIL(0x5555564f3485) original_fun = XIL(0x794bd0) funcar = XIL(0x7fffffffa350) numargs = 1 val = XIL(0) count = 15 #35 0x00005555557e9a00 in exec_byte_code (bytestr=XIL(0x55555653fb84), vector=XIL(0x5555564f6e4d), maxdepth=make_fixnum(15), args_template=make_fixnum(1799), nargs=7, args=0x7fffffffa9a8) at ../../master/src/bytecode.c:632 op = 1 type = CONDITION_CASE targets = {0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec748 <exec_byte_code+14378>, 0x5555557ec74a <exec_byte_code+14380>, 0x5555557ec74c <exec_byte_code+14382>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec7b3 <exec_byte_code+14485>, 0x5555557ec827 <exec_byte_code+14601>, 0x5555557e93ac <exec_byte_code+1166>, 0x5555557e93ae <exec_byte_code+1168>, 0x5555557e93b0 <exec_byte_code+1170>, 0x5555557e93b2 <exec_byte_code+1172>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93ba <exec_byte_code+1180>, 0x5555557e937b <exec_byte_code+1117>, 0x5555557e972a <exec_byte_code+2060>, 0x5555557e972c <exec_byte_code+2062>, 0x5555557e972e <exec_byte_code+2064>, 0x5555557e9730 <exec_byte_code+2066>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9767 <exec_byte_code+2121>, 0x5555557e9738 <exec_byte_code+2074>, 0x5555557e9918 <exec_byte_code+2554>, 0x5555557e991a <exec_byte_code+2556>, 0x5555557e991c <exec_byte_code+2558>, 0x5555557e991e <exec_byte_code+2560>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e98d2 <exec_byte_code+2484>, 0x5555557e98e9 <exec_byte_code+2507>, 0x5555557e99cd <exec_byte_code+2735>, 0x5555557e99cf <exec_byte_code+2737>, 0x5555557e99d1 <exec_byte_code+2739>, 0x5555557e99d3 <exec_byte_code+2741>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e9987 <exec_byte_code+2665>, 0x5555557e999e <exec_byte_code+2688>, 0x5555557e9a7f <exec_byte_code+2913>, 0x5555557e9a81 <exec_byte_code+2915>, 0x5555557e9a83 <exec_byte_code+2917>, 0x5555557e9a85 <exec_byte_code+2919>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a39 <exec_byte_code+2843>, 0x5555557e9a50 <exec_byte_code+2866>, 0x5555557ea2e7 <exec_byte_code+5065>, 0x5555557ea1ca <exec_byte_code+4780>, 0x5555557ea1c1 <exec_byte_code+4771>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ea521 <exec_byte_code+5635>, 0x5555557ea602 <exec_byte_code+5860>, 0x5555557ea65f <exec_byte_code+5953>, 0x5555557ea6bf <exec_byte_code+6049>, 0x5555557ea721 <exec_byte_code+6147>, 0x5555557e95b7 <exec_byte_code+1689>, 0x5555557e9632 <exec_byte_code+1812>, 0x5555557ea79a <exec_byte_code+6268>, 0x5555557e9528 <exec_byte_code+1546>, 0x5555557e969a <exec_byte_code+1916>, 0x5555557ea802 <exec_byte_code+6372>, 0x5555557ea86a <exec_byte_code+6476>, 0x5555557ea8b2 <exec_byte_code+6548>, 0x5555557ea91a <exec_byte_code+6652>, 0x5555557ea980 <exec_byte_code+6754>, 0x5555557eaa66 <exec_byte_code+6984>, 0x5555557eaaae <exec_byte_code+7056>, 0x5555557eab16 <exec_byte_code+7160>, 0x5555557eab9b <exec_byte_code+7293>, 0x5555557eabe3 <exec_byte_code+7365>, 0x5555557eac2b <exec_byte_code+7437>, 0x5555557eac93 <exec_byte_code+7541>, 0x5555557eacfb <exec_byte_code+7645>, 0x5555557ead63 <exec_byte_code+7749>, 0x5555557eade8 <exec_byte_code+7882>, 0x5555557eae37 <exec_byte_code+7961>, 0x5555557eae86 <exec_byte_code+8040>, 0x5555557eaf4d <exec_byte_code+8239>, 0x5555557eafef <exec_byte_code+8401>, 0x5555557eb091 <exec_byte_code+8563>, 0x5555557eb0fe <exec_byte_code+8672>, 0x5555557eb16b <exec_byte_code+8781>, 0x5555557eb1d8 <exec_byte_code+8890>, 0x5555557eb245 <exec_byte_code+8999>, 0x5555557eb2b2 <exec_byte_code+9108>, 0x5555557eb301 <exec_byte_code+9187>, 0x5555557eb3a4 <exec_byte_code+9350>, 0x5555557eb3f3 <exec_byte_code+9429>, 0x5555557eb442 <exec_byte_code+9508>, 0x5555557eb491 <exec_byte_code+9587>, 0x5555557eb597 <exec_byte_code+9849>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557eb5f2 <exec_byte_code+9940>, 0x5555557eb63a <exec_byte_code+10012>, 0x5555557eb6fc <exec_byte_code+10206>, 0x5555557eb765 <exec_byte_code+10311>, 0x5555557eb7c0 <exec_byte_code+10402>, 0x5555557eb808 <exec_byte_code+10474>, 0x5555557eb84b <exec_byte_code+10541>, 0x5555557eb88e <exec_byte_code+10608>, 0x5555557eb8d9 <exec_byte_code+10683>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557eb931 <exec_byte_code+10771>, 0x5555557eb974 <exec_byte_code+10838>, 0x5555557eb9b7 <exec_byte_code+10905>, 0x5555557eb9fa <exec_byte_code+10972>, 0x5555557eba3d <exec_byte_code+11039>, 0x5555557eba80 <exec_byte_code+11106>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ebac8 <exec_byte_code+11178>, 0x5555557ebb1a <exec_byte_code+11260>, 0x5555557ebb62 <exec_byte_code+11332>, 0x5555557ebbaa <exec_byte_code+11404>, 0x5555557ebc12 <exec_byte_code+11508>, 0x5555557ebc7a <exec_byte_code+11612>, 0x5555557ebcc2 <exec_byte_code+11684>, 0x5555557ebd7f <exec_byte_code+11873>, 0x5555557ebde7 <exec_byte_code+11977>, 0x5555557ebe4f <exec_byte_code+12081>, 0x5555557ebeb7 <exec_byte_code+12185>, 0x5555557ebefa <exec_byte_code+12252>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9f87 <exec_byte_code+4201>, 0x5555557e9b31 <exec_byte_code+3091>, 0x5555557e9496 <exec_byte_code+1400>, 0x5555557e9be2 <exec_byte_code+3268>, 0x5555557e9c66 <exec_byte_code+3400>, 0x5555557e9ce7 <exec_byte_code+3529>, 0x5555557e9f3b <exec_byte_code+4125>, 0x5555557e9f50 <exec_byte_code+4146>, 0x5555557e987f <exec_byte_code+2401>, 0x5555557ea00a <exec_byte_code+4332>, 0x5555557ea078 <exec_byte_code+4442>, 0x5555557ea109 <exec_byte_code+4587>, 0x5555557ea152 <exec_byte_code+4660>, 0x5555557ea333 <exec_byte_code+5141>, 0x5555557ea3b0 <exec_byte_code+5266>, 0x5555557ea435 <exec_byte_code+5399>, 0x5555557ea49b <exec_byte_code+5501>, 0x5555557e9ae3 <exec_byte_code+3013>, 0x5555557ebf42 <exec_byte_code+12324>, 0x5555557ebfc7 <exec_byte_code+12457>, 0x5555557ec00f <exec_byte_code+12529>, 0x5555557ec057 <exec_byte_code+12601>, 0x5555557ec09f <exec_byte_code+12673>, 0x5555557ec0e7 <exec_byte_code+12745>, 0x5555557ec14f <exec_byte_code+12849>, 0x5555557ec1b7 <exec_byte_code+12953>, 0x5555557ec21f <exec_byte_code+13057>, 0x5555557ec287 <exec_byte_code+13161>, 0x5555557ec398 <exec_byte_code+13434>, 0x5555557ec400 <exec_byte_code+13538>, 0x5555557ec468 <exec_byte_code+13642>, 0x5555557ec4b0 <exec_byte_code+13714>, 0x5555557ec518 <exec_byte_code+13818>, 0x5555557ec580 <exec_byte_code+13922>, 0x5555557ec5c8 <exec_byte_code+13994>, 0x5555557ec610 <exec_byte_code+14066>, 0x5555557eb4e0 <exec_byte_code+9666>, 0x5555557eb52f <exec_byte_code+9745>, 0x5555557ec65f <exec_byte_code+14145>, 0x5555557ec6c1 <exec_byte_code+14243>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9d68 <exec_byte_code+3658>, 0x5555557e9d85 <exec_byte_code+3687>, 0x5555557e9df4 <exec_byte_code+3798>, 0x5555557e9e63 <exec_byte_code+3909>, 0x5555557e9ecf <exec_byte_code+4017>, 0x5555557ea9ee <exec_byte_code+6864>, 0x5555557eaed5 <exec_byte_code+8119>, 0x5555557eb684 <exec_byte_code+10086>, 0x5555557ec8ba <exec_byte_code+14748>, 0x5555557ec92f <exec_byte_code+14865>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec9c5 <exec_byte_code+15015>, 0x5555557eca4c <exec_byte_code+15150>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ecb9a <exec_byte_code+15484> <repeats 64 times>} const_length = 42 bytestr_length = 233 vectorp = 0x5555564f6e50 quitcounter = 1 '\001' stack_items = 16 sa_avail = 16023 sa_count = 14 alloc = 0x7fffffffa360 stack_base = 0x7fffffffa360 top = 0x7fffffffa3a8 stack_lim = 0x7fffffffa3e0 bytestr_data = 0x7fffffffa3e0 "\305", <incomplete sequence \342> pc = 0x7fffffffa435 "\210\202l" count = 14 result = XIL(0x7fffffff94c0) #36 0x000055555579ec21 in fetch_and_exec_byte_code (fun=XIL(0x5555564f6fa5), syms_left=make_fixnum(1799), nargs=7, args=0x7fffffffa970) at ../../master/src/eval.c:3036 #37 0x000055555579efae in funcall_lambda (fun=XIL(0x5555564f6fa5), nargs=7, arg_vector=0x7fffffffa970) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffa8f0) syms_left = make_fixnum(1799) next = XIL(0x30) lexenv = XIL(0x1800000000) count = 14 i = 93824994606300 optional = false rest = false #38 0x000055555579e5c6 in Ffuncall (nargs=8, args=0x7fffffffa968) at ../../master/src/eval.c:2916 fun = XIL(0x5555564f6fa5) original_fun = XIL(0x876290) funcar = XIL(0x7fffffffa950) numargs = 7 val = XIL(0x555555dd01a4) count = 13 #39 0x00005555557e9a00 in exec_byte_code (bytestr=XIL(0x55555653fb24), vector=XIL(0x555556db15f5), maxdepth=make_fixnum(8), args_template=make_fixnum(0), nargs=0, args=0x7fffffffae80) at ../../master/src/bytecode.c:632 op = 7 type = (unknown: 0x5577ef7c) targets = {0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec748 <exec_byte_code+14378>, 0x5555557ec74a <exec_byte_code+14380>, 0x5555557ec74c <exec_byte_code+14382>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec7b3 <exec_byte_code+14485>, 0x5555557ec827 <exec_byte_code+14601>, 0x5555557e93ac <exec_byte_code+1166>, 0x5555557e93ae <exec_byte_code+1168>, 0x5555557e93b0 <exec_byte_code+1170>, 0x5555557e93b2 <exec_byte_code+1172>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93ba <exec_byte_code+1180>, 0x5555557e937b <exec_byte_code+1117>, 0x5555557e972a <exec_byte_code+2060>, 0x5555557e972c <exec_byte_code+2062>, 0x5555557e972e <exec_byte_code+2064>, 0x5555557e9730 <exec_byte_code+2066>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9767 <exec_byte_code+2121>, 0x5555557e9738 <exec_byte_code+2074>, 0x5555557e9918 <exec_byte_code+2554>, 0x5555557e991a <exec_byte_code+2556>, 0x5555557e991c <exec_byte_code+2558>, 0x5555557e991e <exec_byte_code+2560>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e98d2 <exec_byte_code+2484>, 0x5555557e98e9 <exec_byte_code+2507>, 0x5555557e99cd <exec_byte_code+2735>, 0x5555557e99cf <exec_byte_code+2737>, 0x5555557e99d1 <exec_byte_code+2739>, 0x5555557e99d3 <exec_byte_code+2741>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e9987 <exec_byte_code+2665>, 0x5555557e999e <exec_byte_code+2688>, 0x5555557e9a7f <exec_byte_code+2913>, 0x5555557e9a81 <exec_byte_code+2915>, 0x5555557e9a83 <exec_byte_code+2917>, 0x5555557e9a85 <exec_byte_code+2919>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a39 <exec_byte_code+2843>, 0x5555557e9a50 <exec_byte_code+2866>, 0x5555557ea2e7 <exec_byte_code+5065>, 0x5555557ea1ca <exec_byte_code+4780>, 0x5555557ea1c1 <exec_byte_code+4771>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ea521 <exec_byte_code+5635>, 0x5555557ea602 <exec_byte_code+5860>, 0x5555557ea65f <exec_byte_code+5953>, 0x5555557ea6bf <exec_byte_code+6049>, 0x5555557ea721 <exec_byte_code+6147>, 0x5555557e95b7 <exec_byte_code+1689>, 0x5555557e9632 <exec_byte_code+1812>, 0x5555557ea79a <exec_byte_code+6268>, 0x5555557e9528 <exec_byte_code+1546>, 0x5555557e969a <exec_byte_code+1916>, 0x5555557ea802 <exec_byte_code+6372>, 0x5555557ea86a <exec_byte_code+6476>, 0x5555557ea8b2 <exec_byte_code+6548>, 0x5555557ea91a <exec_byte_code+6652>, 0x5555557ea980 <exec_byte_code+6754>, 0x5555557eaa66 <exec_byte_code+6984>, 0x5555557eaaae <exec_byte_code+7056>, 0x5555557eab16 <exec_byte_code+7160>, 0x5555557eab9b <exec_byte_code+7293>, 0x5555557eabe3 <exec_byte_code+7365>, 0x5555557eac2b <exec_byte_code+7437>, 0x5555557eac93 <exec_byte_code+7541>, 0x5555557eacfb <exec_byte_code+7645>, 0x5555557ead63 <exec_byte_code+7749>, 0x5555557eade8 <exec_byte_code+7882>, 0x5555557eae37 <exec_byte_code+7961>, 0x5555557eae86 <exec_byte_code+8040>, 0x5555557eaf4d <exec_byte_code+8239>, 0x5555557eafef <exec_byte_code+8401>, 0x5555557eb091 <exec_byte_code+8563>, 0x5555557eb0fe <exec_byte_code+8672>, 0x5555557eb16b <exec_byte_code+8781>, 0x5555557eb1d8 <exec_byte_code+8890>, 0x5555557eb245 <exec_byte_code+8999>, 0x5555557eb2b2 <exec_byte_code+9108>, 0x5555557eb301 <exec_byte_code+9187>, 0x5555557eb3a4 <exec_byte_code+9350>, 0x5555557eb3f3 <exec_byte_code+9429>, 0x5555557eb442 <exec_byte_code+9508>, 0x5555557eb491 <exec_byte_code+9587>, 0x5555557eb597 <exec_byte_code+9849>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557eb5f2 <exec_byte_code+9940>, 0x5555557eb63a <exec_byte_code+10012>, 0x5555557eb6fc <exec_byte_code+10206>, 0x5555557eb765 <exec_byte_code+10311>, 0x5555557eb7c0 <exec_byte_code+10402>, 0x5555557eb808 <exec_byte_code+10474>, 0x5555557eb84b <exec_byte_code+10541>, 0x5555557eb88e <exec_byte_code+10608>, 0x5555557eb8d9 <exec_byte_code+10683>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557eb931 <exec_byte_code+10771>, 0x5555557eb974 <exec_byte_code+10838>, 0x5555557eb9b7 <exec_byte_code+10905>, 0x5555557eb9fa <exec_byte_code+10972>, 0x5555557eba3d <exec_byte_code+11039>, 0x5555557eba80 <exec_byte_code+11106>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ebac8 <exec_byte_code+11178>, 0x5555557ebb1a <exec_byte_code+11260>, 0x5555557ebb62 <exec_byte_code+11332>, 0x5555557ebbaa <exec_byte_code+11404>, 0x5555557ebc12 <exec_byte_code+11508>, 0x5555557ebc7a <exec_byte_code+11612>, 0x5555557ebcc2 <exec_byte_code+11684>, 0x5555557ebd7f <exec_byte_code+11873>, 0x5555557ebde7 <exec_byte_code+11977>, 0x5555557ebe4f <exec_byte_code+12081>, 0x5555557ebeb7 <exec_byte_code+12185>, 0x5555557ebefa <exec_byte_code+12252>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9f87 <exec_byte_code+4201>, 0x5555557e9b31 <exec_byte_code+3091>, 0x5555557e9496 <exec_byte_code+1400>, 0x5555557e9be2 <exec_byte_code+3268>, 0x5555557e9c66 <exec_byte_code+3400>, 0x5555557e9ce7 <exec_byte_code+3529>, 0x5555557e9f3b <exec_byte_code+4125>, 0x5555557e9f50 <exec_byte_code+4146>, 0x5555557e987f <exec_byte_code+2401>, 0x5555557ea00a <exec_byte_code+4332>, 0x5555557ea078 <exec_byte_code+4442>, 0x5555557ea109 <exec_byte_code+4587>, 0x5555557ea152 <exec_byte_code+4660>, 0x5555557ea333 <exec_byte_code+5141>, 0x5555557ea3b0 <exec_byte_code+5266>, 0x5555557ea435 <exec_byte_code+5399>, 0x5555557ea49b <exec_byte_code+5501>, 0x5555557e9ae3 <exec_byte_code+3013>, 0x5555557ebf42 <exec_byte_code+12324>, 0x5555557ebfc7 <exec_byte_code+12457>, 0x5555557ec00f <exec_byte_code+12529>, 0x5555557ec057 <exec_byte_code+12601>, 0x5555557ec09f <exec_byte_code+12673>, 0x5555557ec0e7 <exec_byte_code+12745>, 0x5555557ec14f <exec_byte_code+12849>, 0x5555557ec1b7 <exec_byte_code+12953>, 0x5555557ec21f <exec_byte_code+13057>, 0x5555557ec287 <exec_byte_code+13161>, 0x5555557ec398 <exec_byte_code+13434>, 0x5555557ec400 <exec_byte_code+13538>, 0x5555557ec468 <exec_byte_code+13642>, 0x5555557ec4b0 <exec_byte_code+13714>, 0x5555557ec518 <exec_byte_code+13818>, 0x5555557ec580 <exec_byte_code+13922>, 0x5555557ec5c8 <exec_byte_code+13994>, 0x5555557ec610 <exec_byte_code+14066>, 0x5555557eb4e0 <exec_byte_code+9666>, 0x5555557eb52f <exec_byte_code+9745>, 0x5555557ec65f <exec_byte_code+14145>, 0x5555557ec6c1 <exec_byte_code+14243>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9d68 <exec_byte_code+3658>, 0x5555557e9d85 <exec_byte_code+3687>, 0x5555557e9df4 <exec_byte_code+3798>, 0x5555557e9e63 <exec_byte_code+3909>, 0x5555557e9ecf <exec_byte_code+4017>, 0x5555557ea9ee <exec_byte_code+6864>, 0x5555557eaed5 <exec_byte_code+8119>, 0x5555557eb684 <exec_byte_code+10086>, 0x5555557ec8ba <exec_byte_code+14748>, 0x5555557ec92f <exec_byte_code+14865>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec9c5 <exec_byte_code+15015>, 0x5555557eca4c <exec_byte_code+15150>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ecb9a <exec_byte_code+15484> <repeats 64 times>} const_length = 13 bytestr_length = 46 vectorp = 0x555556db15f8 quitcounter = 1 '\001' stack_items = 9 sa_avail = 16266 sa_count = 11 alloc = 0x7fffffffa960 stack_base = 0x7fffffffa960 top = 0x7fffffffa968 stack_lim = 0x7fffffffa9a8 bytestr_data = 0x7fffffffa9a8 "r\310\016\v!q\210Ţ\203\030" pc = 0x7fffffffa9d4 "*\207" count = 11 result = XIL(0x555556d18793) #40 0x000055555579ec21 in fetch_and_exec_byte_code (fun=XIL(0x555556dff405), syms_left=make_fixnum(0), nargs=0, args=0x7fffffffae80) at ../../master/src/eval.c:3036 #41 0x000055555579efae in funcall_lambda (fun=XIL(0x555556dff405), nargs=0, arg_vector=0x7fffffffae80) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffadf0) syms_left = make_fixnum(0) next = XIL(0x7fffffffae20) lexenv = XIL(0x1800000000) count = 11 i = 93824994606300 optional = false rest = false #42 0x000055555579e5c6 in Ffuncall (nargs=1, args=0x7fffffffae78) at ../../master/src/eval.c:2916 fun = XIL(0x555556dff405) original_fun = XIL(0x555556dff405) funcar = XIL(0x5555557e84a5) numargs = 0 val = XIL(0x100000000) count = 10 #43 0x00005555557e9a00 in exec_byte_code (bytestr=XIL(0x55555653adb4), vector=XIL(0x5555565006ed), maxdepth=make_fixnum(6), args_template=make_fixnum(257), nargs=1, args=0x7fffffffb3e8) at ../../master/src/bytecode.c:632 op = 0 type = CONDITION_CASE targets = {0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec748 <exec_byte_code+14378>, 0x5555557ec74a <exec_byte_code+14380>, 0x5555557ec74c <exec_byte_code+14382>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec7b3 <exec_byte_code+14485>, 0x5555557ec827 <exec_byte_code+14601>, 0x5555557e93ac <exec_byte_code+1166>, 0x5555557e93ae <exec_byte_code+1168>, 0x5555557e93b0 <exec_byte_code+1170>, 0x5555557e93b2 <exec_byte_code+1172>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93ba <exec_byte_code+1180>, 0x5555557e937b <exec_byte_code+1117>, 0x5555557e972a <exec_byte_code+2060>, 0x5555557e972c <exec_byte_code+2062>, 0x5555557e972e <exec_byte_code+2064>, 0x5555557e9730 <exec_byte_code+2066>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9767 <exec_byte_code+2121>, 0x5555557e9738 <exec_byte_code+2074>, 0x5555557e9918 <exec_byte_code+2554>, 0x5555557e991a <exec_byte_code+2556>, 0x5555557e991c <exec_byte_code+2558>, 0x5555557e991e <exec_byte_code+2560>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e98d2 <exec_byte_code+2484>, 0x5555557e98e9 <exec_byte_code+2507>, 0x5555557e99cd <exec_byte_code+2735>, 0x5555557e99cf <exec_byte_code+2737>, 0x5555557e99d1 <exec_byte_code+2739>, 0x5555557e99d3 <exec_byte_code+2741>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e9987 <exec_byte_code+2665>, 0x5555557e999e <exec_byte_code+2688>, 0x5555557e9a7f <exec_byte_code+2913>, 0x5555557e9a81 <exec_byte_code+2915>, 0x5555557e9a83 <exec_byte_code+2917>, 0x5555557e9a85 <exec_byte_code+2919>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a39 <exec_byte_code+2843>, 0x5555557e9a50 <exec_byte_code+2866>, 0x5555557ea2e7 <exec_byte_code+5065>, 0x5555557ea1ca <exec_byte_code+4780>, 0x5555557ea1c1 <exec_byte_code+4771>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ea521 <exec_byte_code+5635>, 0x5555557ea602 <exec_byte_code+5860>, 0x5555557ea65f <exec_byte_code+5953>, 0x5555557ea6bf <exec_byte_code+6049>, 0x5555557ea721 <exec_byte_code+6147>, 0x5555557e95b7 <exec_byte_code+1689>, 0x5555557e9632 <exec_byte_code+1812>, 0x5555557ea79a <exec_byte_code+6268>, 0x5555557e9528 <exec_byte_code+1546>, 0x5555557e969a <exec_byte_code+1916>, 0x5555557ea802 <exec_byte_code+6372>, 0x5555557ea86a <exec_byte_code+6476>, 0x5555557ea8b2 <exec_byte_code+6548>, 0x5555557ea91a <exec_byte_code+6652>, 0x5555557ea980 <exec_byte_code+6754>, 0x5555557eaa66 <exec_byte_code+6984>, 0x5555557eaaae <exec_byte_code+7056>, 0x5555557eab16 <exec_byte_code+7160>, 0x5555557eab9b <exec_byte_code+7293>, 0x5555557eabe3 <exec_byte_code+7365>, 0x5555557eac2b <exec_byte_code+7437>, 0x5555557eac93 <exec_byte_code+7541>, 0x5555557eacfb <exec_byte_code+7645>, 0x5555557ead63 <exec_byte_code+7749>, 0x5555557eade8 <exec_byte_code+7882>, 0x5555557eae37 <exec_byte_code+7961>, 0x5555557eae86 <exec_byte_code+8040>, 0x5555557eaf4d <exec_byte_code+8239>, 0x5555557eafef <exec_byte_code+8401>, 0x5555557eb091 <exec_byte_code+8563>, 0x5555557eb0fe <exec_byte_code+8672>, 0x5555557eb16b <exec_byte_code+8781>, 0x5555557eb1d8 <exec_byte_code+8890>, 0x5555557eb245 <exec_byte_code+8999>, 0x5555557eb2b2 <exec_byte_code+9108>, 0x5555557eb301 <exec_byte_code+9187>, 0x5555557eb3a4 <exec_byte_code+9350>, 0x5555557eb3f3 <exec_byte_code+9429>, 0x5555557eb442 <exec_byte_code+9508>, 0x5555557eb491 <exec_byte_code+9587>, 0x5555557eb597 <exec_byte_code+9849>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557eb5f2 <exec_byte_code+9940>, 0x5555557eb63a <exec_byte_code+10012>, 0x5555557eb6fc <exec_byte_code+10206>, 0x5555557eb765 <exec_byte_code+10311>, 0x5555557eb7c0 <exec_byte_code+10402>, 0x5555557eb808 <exec_byte_code+10474>, 0x5555557eb84b <exec_byte_code+10541>, 0x5555557eb88e <exec_byte_code+10608>, 0x5555557eb8d9 <exec_byte_code+10683>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557eb931 <exec_byte_code+10771>, 0x5555557eb974 <exec_byte_code+10838>, 0x5555557eb9b7 <exec_byte_code+10905>, 0x5555557eb9fa <exec_byte_code+10972>, 0x5555557eba3d <exec_byte_code+11039>, 0x5555557eba80 <exec_byte_code+11106>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ebac8 <exec_byte_code+11178>, 0x5555557ebb1a <exec_byte_code+11260>, 0x5555557ebb62 <exec_byte_code+11332>, 0x5555557ebbaa <exec_byte_code+11404>, 0x5555557ebc12 <exec_byte_code+11508>, 0x5555557ebc7a <exec_byte_code+11612>, 0x5555557ebcc2 <exec_byte_code+11684>, 0x5555557ebd7f <exec_byte_code+11873>, 0x5555557ebde7 <exec_byte_code+11977>, 0x5555557ebe4f <exec_byte_code+12081>, 0x5555557ebeb7 <exec_byte_code+12185>, 0x5555557ebefa <exec_byte_code+12252>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9f87 <exec_byte_code+4201>, 0x5555557e9b31 <exec_byte_code+3091>, 0x5555557e9496 <exec_byte_code+1400>, 0x5555557e9be2 <exec_byte_code+3268>, 0x5555557e9c66 <exec_byte_code+3400>, 0x5555557e9ce7 <exec_byte_code+3529>, 0x5555557e9f3b <exec_byte_code+4125>, 0x5555557e9f50 <exec_byte_code+4146>, 0x5555557e987f <exec_byte_code+2401>, 0x5555557ea00a <exec_byte_code+4332>, 0x5555557ea078 <exec_byte_code+4442>, 0x5555557ea109 <exec_byte_code+4587>, 0x5555557ea152 <exec_byte_code+4660>, 0x5555557ea333 <exec_byte_code+5141>, 0x5555557ea3b0 <exec_byte_code+5266>, 0x5555557ea435 <exec_byte_code+5399>, 0x5555557ea49b <exec_byte_code+5501>, 0x5555557e9ae3 <exec_byte_code+3013>, 0x5555557ebf42 <exec_byte_code+12324>, 0x5555557ebfc7 <exec_byte_code+12457>, 0x5555557ec00f <exec_byte_code+12529>, 0x5555557ec057 <exec_byte_code+12601>, 0x5555557ec09f <exec_byte_code+12673>, 0x5555557ec0e7 <exec_byte_code+12745>, 0x5555557ec14f <exec_byte_code+12849>, 0x5555557ec1b7 <exec_byte_code+12953>, 0x5555557ec21f <exec_byte_code+13057>, 0x5555557ec287 <exec_byte_code+13161>, 0x5555557ec398 <exec_byte_code+13434>, 0x5555557ec400 <exec_byte_code+13538>, 0x5555557ec468 <exec_byte_code+13642>, 0x5555557ec4b0 <exec_byte_code+13714>, 0x5555557ec518 <exec_byte_code+13818>, 0x5555557ec580 <exec_byte_code+13922>, 0x5555557ec5c8 <exec_byte_code+13994>, 0x5555557ec610 <exec_byte_code+14066>, 0x5555557eb4e0 <exec_byte_code+9666>, 0x5555557eb52f <exec_byte_code+9745>, 0x5555557ec65f <exec_byte_code+14145>, 0x5555557ec6c1 <exec_byte_code+14243>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9d68 <exec_byte_code+3658>, 0x5555557e9d85 <exec_byte_code+3687>, 0x5555557e9df4 <exec_byte_code+3798>, 0x5555557e9e63 <exec_byte_code+3909>, 0x5555557e9ecf <exec_byte_code+4017>, 0x5555557ea9ee <exec_byte_code+6864>, 0x5555557eaed5 <exec_byte_code+8119>, 0x5555557eb684 <exec_byte_code+10086>, 0x5555557ec8ba <exec_byte_code+14748>, 0x5555557ec92f <exec_byte_code+14865>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec9c5 <exec_byte_code+15015>, 0x5555557eca4c <exec_byte_code+15150>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ecb9a <exec_byte_code+15484> <repeats 64 times>} const_length = 5 bytestr_length = 25 vectorp = 0x5555565006f0 quitcounter = 1 '\001' stack_items = 7 sa_avail = 16303 sa_count = 10 alloc = 0x7fffffffae60 stack_base = 0x7fffffffae60 top = 0x7fffffffae78 stack_lim = 0x7fffffffae98 bytestr_data = 0x7fffffffae98 "\300\001\301\"\302\002\301\303#\210\211\205\030" pc = 0x7fffffffaeac "0\207\210Ç\262\377\377\377\177" count = 10 result = XIL(0) #44 0x000055555579ec21 in fetch_and_exec_byte_code (fun=XIL(0x55555650071d), syms_left=make_fixnum(257), nargs=1, args=0x7fffffffb3e0) at ../../master/src/eval.c:3036 #45 0x000055555579efae in funcall_lambda (fun=XIL(0x55555650071d), nargs=1, arg_vector=0x7fffffffb3e0) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffb2d0) syms_left = make_fixnum(257) next = XIL(0x5555557a301c) lexenv = XIL(0x1800000000) count = 10 i = 93824994606300 optional = false rest = false #46 0x000055555579e5c6 in Ffuncall (nargs=2, args=0x7fffffffb3d8) at ../../master/src/eval.c:2916 fun = XIL(0x55555650071d) original_fun = XIL(0x8735c0) funcar = XIL(0x555556d8c365) numargs = 1 val = XIL(0) count = 9 #47 0x00005555557e9a00 in exec_byte_code (bytestr=XIL(0x55555653add4), vector=XIL(0x5555564f6b7d), maxdepth=make_fixnum(31), args_template=make_fixnum(514), nargs=2, args=0x7fffffffbca8) at ../../master/src/bytecode.c:632 op = 1 type = CONDITION_CASE targets = {0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec748 <exec_byte_code+14378>, 0x5555557ec74a <exec_byte_code+14380>, 0x5555557ec74c <exec_byte_code+14382>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec7b3 <exec_byte_code+14485>, 0x5555557ec827 <exec_byte_code+14601>, 0x5555557e93ac <exec_byte_code+1166>, 0x5555557e93ae <exec_byte_code+1168>, 0x5555557e93b0 <exec_byte_code+1170>, 0x5555557e93b2 <exec_byte_code+1172>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93ba <exec_byte_code+1180>, 0x5555557e937b <exec_byte_code+1117>, 0x5555557e972a <exec_byte_code+2060>, 0x5555557e972c <exec_byte_code+2062>, 0x5555557e972e <exec_byte_code+2064>, 0x5555557e9730 <exec_byte_code+2066>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9767 <exec_byte_code+2121>, 0x5555557e9738 <exec_byte_code+2074>, 0x5555557e9918 <exec_byte_code+2554>, 0x5555557e991a <exec_byte_code+2556>, 0x5555557e991c <exec_byte_code+2558>, 0x5555557e991e <exec_byte_code+2560>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e98d2 <exec_byte_code+2484>, 0x5555557e98e9 <exec_byte_code+2507>, 0x5555557e99cd <exec_byte_code+2735>, 0x5555557e99cf <exec_byte_code+2737>, 0x5555557e99d1 <exec_byte_code+2739>, 0x5555557e99d3 <exec_byte_code+2741>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e9987 <exec_byte_code+2665>, 0x5555557e999e <exec_byte_code+2688>, 0x5555557e9a7f <exec_byte_code+2913>, 0x5555557e9a81 <exec_byte_code+2915>, 0x5555557e9a83 <exec_byte_code+2917>, 0x5555557e9a85 <exec_byte_code+2919>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a39 <exec_byte_code+2843>, 0x5555557e9a50 <exec_byte_code+2866>, 0x5555557ea2e7 <exec_byte_code+5065>, 0x5555557ea1ca <exec_byte_code+4780>, 0x5555557ea1c1 <exec_byte_code+4771>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ea521 <exec_byte_code+5635>, 0x5555557ea602 <exec_byte_code+5860>, 0x5555557ea65f <exec_byte_code+5953>, 0x5555557ea6bf <exec_byte_code+6049>, 0x5555557ea721 <exec_byte_code+6147>, 0x5555557e95b7 <exec_byte_code+1689>, 0x5555557e9632 <exec_byte_code+1812>, 0x5555557ea79a <exec_byte_code+6268>, 0x5555557e9528 <exec_byte_code+1546>, 0x5555557e969a <exec_byte_code+1916>, 0x5555557ea802 <exec_byte_code+6372>, 0x5555557ea86a <exec_byte_code+6476>, 0x5555557ea8b2 <exec_byte_code+6548>, 0x5555557ea91a <exec_byte_code+6652>, 0x5555557ea980 <exec_byte_code+6754>, 0x5555557eaa66 <exec_byte_code+6984>, 0x5555557eaaae <exec_byte_code+7056>, 0x5555557eab16 <exec_byte_code+7160>, 0x5555557eab9b <exec_byte_code+7293>, 0x5555557eabe3 <exec_byte_code+7365>, 0x5555557eac2b <exec_byte_code+7437>, 0x5555557eac93 <exec_byte_code+7541>, 0x5555557eacfb <exec_byte_code+7645>, 0x5555557ead63 <exec_byte_code+7749>, 0x5555557eade8 <exec_byte_code+7882>, 0x5555557eae37 <exec_byte_code+7961>, 0x5555557eae86 <exec_byte_code+8040>, 0x5555557eaf4d <exec_byte_code+8239>, 0x5555557eafef <exec_byte_code+8401>, 0x5555557eb091 <exec_byte_code+8563>, 0x5555557eb0fe <exec_byte_code+8672>, 0x5555557eb16b <exec_byte_code+8781>, 0x5555557eb1d8 <exec_byte_code+8890>, 0x5555557eb245 <exec_byte_code+8999>, 0x5555557eb2b2 <exec_byte_code+9108>, 0x5555557eb301 <exec_byte_code+9187>, 0x5555557eb3a4 <exec_byte_code+9350>, 0x5555557eb3f3 <exec_byte_code+9429>, 0x5555557eb442 <exec_byte_code+9508>, 0x5555557eb491 <exec_byte_code+9587>, 0x5555557eb597 <exec_byte_code+9849>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557eb5f2 <exec_byte_code+9940>, 0x5555557eb63a <exec_byte_code+10012>, 0x5555557eb6fc <exec_byte_code+10206>, 0x5555557eb765 <exec_byte_code+10311>, 0x5555557eb7c0 <exec_byte_code+10402>, 0x5555557eb808 <exec_byte_code+10474>, 0x5555557eb84b <exec_byte_code+10541>, 0x5555557eb88e <exec_byte_code+10608>, 0x5555557eb8d9 <exec_byte_code+10683>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557eb931 <exec_byte_code+10771>, 0x5555557eb974 <exec_byte_code+10838>, 0x5555557eb9b7 <exec_byte_code+10905>, 0x5555557eb9fa <exec_byte_code+10972>, 0x5555557eba3d <exec_byte_code+11039>, 0x5555557eba80 <exec_byte_code+11106>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ebac8 <exec_byte_code+11178>, 0x5555557ebb1a <exec_byte_code+11260>, 0x5555557ebb62 <exec_byte_code+11332>, 0x5555557ebbaa <exec_byte_code+11404>, 0x5555557ebc12 <exec_byte_code+11508>, 0x5555557ebc7a <exec_byte_code+11612>, 0x5555557ebcc2 <exec_byte_code+11684>, 0x5555557ebd7f <exec_byte_code+11873>, 0x5555557ebde7 <exec_byte_code+11977>, 0x5555557ebe4f <exec_byte_code+12081>, 0x5555557ebeb7 <exec_byte_code+12185>, 0x5555557ebefa <exec_byte_code+12252>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9f87 <exec_byte_code+4201>, 0x5555557e9b31 <exec_byte_code+3091>, 0x5555557e9496 <exec_byte_code+1400>, 0x5555557e9be2 <exec_byte_code+3268>, 0x5555557e9c66 <exec_byte_code+3400>, 0x5555557e9ce7 <exec_byte_code+3529>, 0x5555557e9f3b <exec_byte_code+4125>, 0x5555557e9f50 <exec_byte_code+4146>, 0x5555557e987f <exec_byte_code+2401>, 0x5555557ea00a <exec_byte_code+4332>, 0x5555557ea078 <exec_byte_code+4442>, 0x5555557ea109 <exec_byte_code+4587>, 0x5555557ea152 <exec_byte_code+4660>, 0x5555557ea333 <exec_byte_code+5141>, 0x5555557ea3b0 <exec_byte_code+5266>, 0x5555557ea435 <exec_byte_code+5399>, 0x5555557ea49b <exec_byte_code+5501>, 0x5555557e9ae3 <exec_byte_code+3013>, 0x5555557ebf42 <exec_byte_code+12324>, 0x5555557ebfc7 <exec_byte_code+12457>, 0x5555557ec00f <exec_byte_code+12529>, 0x5555557ec057 <exec_byte_code+12601>, 0x5555557ec09f <exec_byte_code+12673>, 0x5555557ec0e7 <exec_byte_code+12745>, 0x5555557ec14f <exec_byte_code+12849>, 0x5555557ec1b7 <exec_byte_code+12953>, 0x5555557ec21f <exec_byte_code+13057>, 0x5555557ec287 <exec_byte_code+13161>, 0x5555557ec398 <exec_byte_code+13434>, 0x5555557ec400 <exec_byte_code+13538>, 0x5555557ec468 <exec_byte_code+13642>, 0x5555557ec4b0 <exec_byte_code+13714>, 0x5555557ec518 <exec_byte_code+13818>, 0x5555557ec580 <exec_byte_code+13922>, 0x5555557ec5c8 <exec_byte_code+13994>, 0x5555557ec610 <exec_byte_code+14066>, 0x5555557eb4e0 <exec_byte_code+9666>, 0x5555557eb52f <exec_byte_code+9745>, 0x5555557ec65f <exec_byte_code+14145>, 0x5555557ec6c1 <exec_byte_code+14243>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9d68 <exec_byte_code+3658>, 0x5555557e9d85 <exec_byte_code+3687>, 0x5555557e9df4 <exec_byte_code+3798>, 0x5555557e9e63 <exec_byte_code+3909>, 0x5555557e9ecf <exec_byte_code+4017>, 0x5555557ea9ee <exec_byte_code+6864>, 0x5555557eaed5 <exec_byte_code+8119>, 0x5555557eb684 <exec_byte_code+10086>, 0x5555557ec8ba <exec_byte_code+14748>, 0x5555557ec92f <exec_byte_code+14865>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec9c5 <exec_byte_code+15015>, 0x5555557eca4c <exec_byte_code+15150>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ecb9a <exec_byte_code+15484> <repeats 64 times>} const_length = 83 bytestr_length = 967 vectorp = 0x5555564f6b80 quitcounter = 45 '-' stack_items = 32 sa_avail = 15161 sa_count = 9 alloc = 0x7fffffffb340 stack_base = 0x7fffffffb340 top = 0x7fffffffb3d8 stack_lim = 0x7fffffffb440 bytestr_data = 0x7fffffffb440 "\305\062\306\003\306\307\002P\003\"\210\310\002\311\"\204U" pc = 0x7fffffffb7f7 "\266\220\060\202\305\003\201R" count = 9 result = XIL(0x7fffffffb8a8) #48 0x000055555579ec21 in fetch_and_exec_byte_code (fun=XIL(0x5555564f6e1d), syms_left=make_fixnum(514), nargs=2, args=0x7fffffffbc98) at ../../master/src/eval.c:3036 #49 0x000055555579efae in funcall_lambda (fun=XIL(0x5555564f6e1d), nargs=2, arg_vector=0x7fffffffbc98) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffbc20) syms_left = make_fixnum(514) next = XIL(0x1) lexenv = XIL(0x1800000000) count = 9 i = 93824994606300 optional = false rest = false #50 0x000055555579e5c6 in Ffuncall (nargs=3, args=0x7fffffffbc90) at ../../master/src/eval.c:2916 fun = XIL(0x5555564f6e1d) original_fun = XIL(0x873290) funcar = XIL(0) numargs = 2 val = XIL(0) count = 8 #51 0x000055555579d89f in Fapply (nargs=2, args=0x7fffffffbd40) at ../../master/src/eval.c:2544 i = 3 funcall_nargs = 3 funcall_args = 0x7fffffffbc90 spread_arg = XIL(0) fun = XIL(0x5555564f6e1d) sa_avail = 16360 sa_count = 8 numargs = 2 retval = XIL(0) #52 0x000055555579de09 in apply1 (fn=XIL(0x873290), arg=XIL(0x555556d186f3)) at ../../master/src/eval.c:2760 #53 0x00005555557fa958 in read_process_output_call (fun_and_args=XIL(0x555556d186e3)) at ../../master/src/process.c:5930 #54 0x000055555579ad70 in internal_condition_case_1 (bfun=0x5555557fa92a <read_process_output_call>, arg=XIL(0x555556d186e3), handlers=XIL(0x90), hfun=0x5555557fa95a <read_process_output_error_handler>) at ../../master/src/eval.c:1463 val = XIL(0x555556da8c1d) c = 0x555555dc0550 #55 0x00005555557fb24a in read_and_dispose_of_process_output (p=0x555556da8c18, chars=0x7fffffffbe50 "-env GJS_DEBUG_TOPICS=JS&_ERROR;JS&_LOG -env USER=md5i -env XDG_SESSION_TYPE=wayland -env SHLVL=0 -env HOME=/home/md5i -env DESKTOP_SESSION=gnome -env GIO_LAUNCHED_DESKTOP_FILE=/home/md5i/.local/share"..., nbytes=1383, coding=0x555555eccd50) at ../../master/src/process.c:6153 outstream = XIL(0x873290) text = XIL(0x555556db8a84) outer_running_asynch_code = false waiting = -1 #56 0x00005555557fae68 in read_process_output (proc=XIL(0x555556da8c1d), channel=4) at ../../master/src/process.c:6063 nbytes = 1383 p = 0x555556da8c18 coding = 0x555555eccd50 carryover = 0 readmax = 4096 count = 5 odeactivate = XIL(0) chars = 0x7fffffffbe50 "-env GJS_DEBUG_TOPICS=JS&_ERROR;JS&_LOG -env USER=md5i -env XDG_SESSION_TYPE=wayland -env SHLVL=0 -env HOME=/home/md5i -env DESKTOP_SESSION=gnome -env GIO_LAUNCHED_DESKTOP_FILE=/home/md5i/.local/share"... sa_avail = 12224 sa_count = 5 #57 0x00005555557fa1a3 in wait_reading_process_output (time_limit=0, nsecs=0, read_kbd=-1, do_display=true, wait_for_cell=XIL(0), wait_proc=0x0, just_wait_proc=0) at ../../master/src/process.c:5749 nread = -2011028988 process_skipped = false child_fd = 6 channel = 4 nfds = 1 Available = { fds_bits = {16, 0 <repeats 15 times>} } Writeok = { fds_bits = {0 <repeats 16 times>} } check_write = true check_delay = 0 no_avail = false xerrno = 2 proc = XIL(0x555556da8c1d) timeout = { tv_sec = 40, tv_nsec = 613408153 } end_time = { tv_sec = 140737488343328, tv_nsec = 93824994634785 } timer_delay = { tv_sec = 40, tv_nsec = 613408153 } got_output_end_time = { tv_sec = 1616263190, tv_nsec = 619007247 } wait = FOREVER got_some_output = -1 prev_wait_proc_nbytes_read = 0 retry_for_async = false count = 4 now = { tv_sec = 0, tv_nsec = -1 } #58 0x00005555556ecbfd in kbd_buffer_get_event (kbp=0x7fffffffd478, used_mouse_menu=0x7fffffffdabf, end_time=0x0) at ../../master/src/keyboard.c:3869 do_display = true obj = XIL(0x24e5275c) #59 0x00005555556e8f68 in read_event_from_main_queue (end_time=0x0, local_getcjmp=0x7fffffffd850, used_mouse_menu=0x7fffffffdabf) at ../../master/src/keyboard.c:2159 c = XIL(0) save_jump = {{ __jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = { __val = {0 <repeats 16 times>} } }} kb = 0x3a352944002 count = 3 #60 0x00005555556e9201 in read_decoded_event_from_main_queue (end_time=0x0, local_getcjmp=0x7fffffffd850, prev_event=XIL(0), used_mouse_menu=0x7fffffffdabf) at ../../master/src/keyboard.c:2223 nextevt = XIL(0) frame = 0x0 terminal = 0x1556ff75f events = {XIL(0x555556ae1d5d), XIL(0x555555cc4f80), XIL(0), XIL(0), XIL(0x7fffffffd668), XIL(0x5555556e3c40), XIL(0), XIL(0x7fffffffd690), XIL(0x5555556e685b), XIL(0x555556d18eb3), XIL(0), XIL(0), XIL(0x7fffffffd6c0), make_fixnum(23456248475707), XIL(0), XIL(0x1ffffd6c0)} n = 0 #61 0x00005555556ea809 in read_char (commandflag=1, map=XIL(0x555556d18ed3), prev_event=XIL(0), used_mouse_menu=0x7fffffffdabf, end_time=0x0) at ../../master/src/keyboard.c:2833 c = XIL(0) jmpcount = 3 local_getcjmp = {{ __jmpbuf = {0, -8377641525854313018, 93824992490624, 0, 0, 0, -8377641526313589306, -2384103731268917818}, __mask_was_saved = 0, __saved_mask = { __val = {93824994503983, 140737259836008, 140737259835960, 0, 46912259801784, 0, 140737259836008, 93825000034176, 0, 0, 140737488345344, 93824993978237, 4066447928, 93825000034176, 0, 0} } }} save_jump = {{ __jmpbuf = {0, 32880, 140737488345232, 140737266328160, 140737488345200, 140737259226872, 140737259226872, 0}, __mask_was_saved = 0, __saved_mask = { __val = {93825000067056, 93824994486998, 0, 140737488345184, 93824994508583, 140737266328160, 12884891664, 0, 32880, 140737259226872, 140737266328160, 93824995129573, 51539607552, 140737259226877, 140737259226872, 93824995130016} } }} tem = XIL(0) save = XIL(0x5555556fe77d) previous_echo_area_message = XIL(0) also_record = XIL(0) reread = false recorded = false polling_stopped_here = true orig_kboard = 0x555555d07730 #62 0x00005555556f8848 in read_key_sequence (keybuf=0x7fffffffdcc0, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at ../../master/src/keyboard.c:9491 interrupted_kboard = 0x555555d07730 interrupted_frame = 0x555555d61a00 key = XIL(0) used_mouse_menu = false echo_local_start = 0 last_real_key_start = 0 keys_local_start = 0 new_binding = XIL(0) count = 3 t = 0 echo_start = 0 keys_start = 0 current_binding = XIL(0x555556d18ed3) first_unbound = 31 mock_input = 0 used_mouse_menu_history = {false <repeats 30 times>} fkey = { parent = XIL(0x555555d65f43), map = XIL(0x555555d65f43), start = 0, end = 0 } keytran = { parent = XIL(0x7ffff2c29383), map = XIL(0x7ffff2c29383), start = 0, end = 0 } indec = { parent = XIL(0x555555d65f33), map = XIL(0x555555d65f33), start = 0, end = 0 } shift_translated = false delayed_switch_frame = XIL(0) original_uppercase = XIL(0) original_uppercase_position = -1 dummyflag = false starting_buffer = 0x7ffff257c6f8 fake_prefixed_keys = XIL(0) first_event = XIL(0) second_event = XIL(0) #63 0x00005555556e6d1f in command_loop_1 () at ../../master/src/keyboard.c:1353 cmd = XIL(0x7fffffffde10) keybuf = {XIL(0x7fffffffdd40), XIL(0x7ffff2c42290), XIL(0x100000000), XIL(0), XIL(0), XIL(0x8520), XIL(0x130), XIL(0x555555ccd4a0), XIL(0x555555ccd4a0), XIL(0), XIL(0x7fffffffdd60), make_fixnum(23456248660141), make_fixnum(1073741824), XIL(0x7fffffffdd80), XIL(0x555555cc4f80), XIL(0), XIL(0), XIL(0x7fffffffdd60), XIL(0x5555557979dd), XIL(0xf257c6fd), XIL(0x7fffffffddc0), XIL(0x5555557a0538), XIL(0x555555cc4f80), XIL(0), XIL(0), XIL(0x7fffffffdda0), XIL(0x5555557979dd), XIL(0xf257c6fd), XIL(0x7fffffffdde0), make_fixnum(23456248654899)} i = 0 prev_modiff = 0 prev_buffer = 0x0 already_adjusted = false #64 0x000055555579acc9 in internal_condition_case (bfun=0x5555556e68d9 <command_loop_1>, handlers=XIL(0x90), hfun=0x5555556e6075 <cmd_error>) at ../../master/src/eval.c:1439 val = XIL(0x5555556e3c40) c = 0x555555dc03e0 #65 0x00005555556e65a1 in command_loop_2 (ignore=XIL(0)) at ../../master/src/keyboard.c:1094 val = XIL(0) #66 0x000055555579a4d7 in internal_catch (tag=XIL(0xd9e0), func=0x5555556e6574 <command_loop_2>, arg=XIL(0)) at ../../master/src/eval.c:1189 val = XIL(0xd9e0) c = 0x555555da9710 #67 0x00005555556e6540 in command_loop () at ../../master/src/keyboard.c:1073 #68 0x00005555556e5c46 in recursive_edit_1 () at ../../master/src/keyboard.c:720 count = 1 val = XIL(0x7fffffffdf50) #69 0x00005555556e5dc9 in Frecursive_edit () at ../../master/src/keyboard.c:789 count = 0 buffer = XIL(0) #70 0x00005555556e27f6 in main (argc=2, argv=0x7fffffffe1b8) at ../../master/src/emacs.c:2050 stack_bottom_variable = 0x7ffff617e053 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 1 temacs = 0x0 attempt_load_pdump = true rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = 0x0 sockfd = -1 module_assertions = false Lisp Backtrace: "kill-buffer" (0xfffeca60) 0x56e58d70 PVEC_COMPILED "substitute-command-keys" (0xfffed728) "redisplay_internal (C function)" (0x0) "delete-process" (0xffff9dd8) "server-delete-client" (0xffffa3b0) "server-execute" (0xffffa970) 0x56dff400 PVEC_COMPILED "server-execute-continuation" (0xffffb3e0) "server-process-filter" (0xffffbc98) -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-19 14:18 ` Michael Welsh Duggan @ 2021-03-19 14:21 ` Michael Welsh Duggan 2021-03-19 15:00 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-19 14:21 UTC (permalink / raw) To: Eli Zaretskii Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org I didn't realize that gdb logging appended to my old log. Here's the portion you wanted: #0 Fkill_buffer (buffer_or_name=XIL(0x555556da6cd5)) at ../../master/src/buffer.c:1840 buffer = XIL(0x555556da6cd5) b = 0x555556da6cd0 tem = XIL(0x55555570ee2b) m = 0x7ffffffec990 #1 0x000055555579e96e in funcall_subr (subr=0x555555c4c080 <Skill_buffer>, numargs=1, args=0x7ffffffeca60) at ../../master/src/eval.c:2987 internal_argbuf = {XIL(0x7ffff2b2d86d), XIL(0), XIL(0), XIL(0x7ffffffec9a0), XIL(0x555555cc4f80), XIL(0x1000000000), XIL(0x555555c4c080), XIL(0x7ffffffec9c8)} internal_args = 0x7ffffffeca60 #2 0x000055555579e582 in Ffuncall (nargs=2, args=0x7ffffffeca58) at ../../master/src/eval.c:2914 fun = XIL(0x555555c4c085) original_fun = XIL(0x2aaa9c8bf8c0) funcar = make_fixnum(0) numargs = 1 val = XIL(0) count = 35 #3 0x00005555557e9a00 in exec_byte_code (bytestr=XIL(0x7ffff25d43f4), vector=XIL(0x555556d4ec7d), maxdepth=make_fixnum(2), args_template=make_fixnum(0), nargs=0, args=0x7ffffffecf10) at ../../master/src/bytecode.c:632 op = 1 type = (CATCHER_ALL | unknown: 0x558181a0) targets = {0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec748 <exec_byte_code+14378>, 0x5555557ec74a <exec_byte_code+14380>, 0x5555557ec74c <exec_byte_code+14382>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec7b3 <exec_byte_code+14485>, 0x5555557ec827 <exec_byte_code+14601>, 0x5555557e93ac <exec_byte_code+1166>, 0x5555557e93ae <exec_byte_code+1168>, 0x5555557e93b0 <exec_byte_code+1170>, 0x5555557e93b2 <exec_byte_code+1172>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93ba <exec_byte_code+1180>, 0x5555557e937b <exec_byte_code+1117>, 0x5555557e972a <exec_byte_code+2060>, 0x5555557e972c <exec_byte_code+2062>, 0x5555557e972e <exec_byte_code+2064>, 0x5555557e9730 <exec_byte_code+2066>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9767 <exec_byte_code+2121>, 0x5555557e9738 <exec_byte_code+2074>, 0x5555557e9918 <exec_byte_code+2554>, 0x5555557e991a <exec_byte_code+2556>, 0x5555557e991c <exec_byte_code+2558>, 0x5555557e991e <exec_byte_code+2560>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e98d2 <exec_byte_code+2484>, 0x5555557e98e9 <exec_byte_code+2507>, 0x5555557e99cd <exec_byte_code+2735>, 0x5555557e99cf <exec_byte_code+2737>, 0x5555557e99d1 <exec_byte_code+2739>, 0x5555557e99d3 <exec_byte_code+2741>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e9987 <exec_byte_code+2665>, 0x5555557e999e <exec_byte_code+2688>, 0x5555557e9a7f <exec_byte_code+2913>, 0x5555557e9a81 <exec_byte_code+2915>, 0x5555557e9a83 <exec_byte_code+2917>, 0x5555557e9a85 <exec_byte_code+2919>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a39 <exec_byte_code+2843>, 0x5555557e9a50 <exec_byte_code+2866>, 0x5555557ea2e7 <exec_byte_code+5065>, 0x5555557ea1ca <exec_byte_code+4780>, 0x5555557ea1c1 <exec_byte_code+4771>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ea521 <exec_byte_code+5635>, 0x5555557ea602 <exec_byte_code+5860>, 0x5555557ea65f <exec_byte_code+5953>, 0x5555557ea6bf <exec_byte_code+6049>, 0x5555557ea721 <exec_byte_code+6147>, 0x5555557e95b7 <exec_byte_code+1689>, 0x5555557e9632 <exec_byte_code+1812>, 0x5555557ea79a <exec_byte_code+6268>, 0x5555557e9528 <exec_byte_code+1546>, 0x5555557e969a <exec_byte_code+1916>, 0x5555557ea802 <exec_byte_code+6372>, 0x5555557ea86a <exec_byte_code+6476>, 0x5555557ea8b2 <exec_byte_code+6548>, 0x5555557ea91a <exec_byte_code+6652>, 0x5555557ea980 <exec_byte_code+6754>, 0x5555557eaa66 <exec_byte_code+6984>, 0x5555557eaaae <exec_byte_code+7056>, 0x5555557eab16 <exec_byte_code+7160>, 0x5555557eab9b <exec_byte_code+7293>, 0x5555557eabe3 <exec_byte_code+7365>, 0x5555557eac2b <exec_byte_code+7437>, 0x5555557eac93 <exec_byte_code+7541>, 0x5555557eacfb <exec_byte_code+7645>, 0x5555557ead63 <exec_byte_code+7749>, 0x5555557eade8 <exec_byte_code+7882>, 0x5555557eae37 <exec_byte_code+7961>, 0x5555557eae86 <exec_byte_code+8040>, 0x5555557eaf4d <exec_byte_code+8239>, 0x5555557eafef <exec_byte_code+8401>, 0x5555557eb091 <exec_byte_code+8563>, 0x5555557eb0fe <exec_byte_code+8672>, 0x5555557eb16b <exec_byte_code+8781>, 0x5555557eb1d8 <exec_byte_code+8890>, 0x5555557eb245 <exec_byte_code+8999>, 0x5555557eb2b2 <exec_byte_code+9108>, 0x5555557eb301 <exec_byte_code+9187>, 0x5555557eb3a4 <exec_byte_code+9350>, 0x5555557eb3f3 <exec_byte_code+9429>, 0x5555557eb442 <exec_byte_code+9508>, 0x5555557eb491 <exec_byte_code+9587>, 0x5555557eb597 <exec_byte_code+9849>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557eb5f2 <exec_byte_code+9940>, 0x5555557eb63a <exec_byte_code+10012>, 0x5555557eb6fc <exec_byte_code+10206>, 0x5555557eb765 <exec_byte_code+10311>, 0x5555557eb7c0 <exec_byte_code+10402>, 0x5555557eb808 <exec_byte_code+10474>, 0x5555557eb84b <exec_byte_code+10541>, 0x5555557eb88e <exec_byte_code+10608>, 0x5555557eb8d9 <exec_byte_code+10683>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557eb931 <exec_byte_code+10771>, 0x5555557eb974 <exec_byte_code+10838>, 0x5555557eb9b7 <exec_byte_code+10905>, 0x5555557eb9fa <exec_byte_code+10972>, 0x5555557eba3d <exec_byte_code+11039>, 0x5555557eba80 <exec_byte_code+11106>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ebac8 <exec_byte_code+11178>, 0x5555557ebb1a <exec_byte_code+11260>, 0x5555557ebb62 <exec_byte_code+11332>, 0x5555557ebbaa <exec_byte_code+11404>, 0x5555557ebc12 <exec_byte_code+11508>, 0x5555557ebc7a <exec_byte_code+11612>, 0x5555557ebcc2 <exec_byte_code+11684>, 0x5555557ebd7f <exec_byte_code+11873>, 0x5555557ebde7 <exec_byte_code+11977>, 0x5555557ebe4f <exec_byte_code+12081>, 0x5555557ebeb7 <exec_byte_code+12185>, 0x5555557ebefa <exec_byte_code+12252>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9f87 <exec_byte_code+4201>, 0x5555557e9b31 <exec_byte_code+3091>, 0x5555557e9496 <exec_byte_code+1400>, 0x5555557e9be2 <exec_byte_code+3268>, 0x5555557e9c66 <exec_byte_code+3400>, 0x5555557e9ce7 <exec_byte_code+3529>, 0x5555557e9f3b <exec_byte_code+4125>, 0x5555557e9f50 <exec_byte_code+4146>, 0x5555557e987f <exec_byte_code+2401>, 0x5555557ea00a <exec_byte_code+4332>, 0x5555557ea078 <exec_byte_code+4442>, 0x5555557ea109 <exec_byte_code+4587>, 0x5555557ea152 <exec_byte_code+4660>, 0x5555557ea333 <exec_byte_code+5141>, 0x5555557ea3b0 <exec_byte_code+5266>, 0x5555557ea435 <exec_byte_code+5399>, 0x5555557ea49b <exec_byte_code+5501>, 0x5555557e9ae3 <exec_byte_code+3013>, 0x5555557ebf42 <exec_byte_code+12324>, 0x5555557ebfc7 <exec_byte_code+12457>, 0x5555557ec00f <exec_byte_code+12529>, 0x5555557ec057 <exec_byte_code+12601>, 0x5555557ec09f <exec_byte_code+12673>, 0x5555557ec0e7 <exec_byte_code+12745>, 0x5555557ec14f <exec_byte_code+12849>, 0x5555557ec1b7 <exec_byte_code+12953>, 0x5555557ec21f <exec_byte_code+13057>, 0x5555557ec287 <exec_byte_code+13161>, 0x5555557ec398 <exec_byte_code+13434>, 0x5555557ec400 <exec_byte_code+13538>, 0x5555557ec468 <exec_byte_code+13642>, 0x5555557ec4b0 <exec_byte_code+13714>, 0x5555557ec518 <exec_byte_code+13818>, 0x5555557ec580 <exec_byte_code+13922>, 0x5555557ec5c8 <exec_byte_code+13994>, 0x5555557ec610 <exec_byte_code+14066>, 0x5555557eb4e0 <exec_byte_code+9666>, 0x5555557eb52f <exec_byte_code+9745>, 0x5555557ec65f <exec_byte_code+14145>, 0x5555557ec6c1 <exec_byte_code+14243>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9d68 <exec_byte_code+3658>, 0x5555557e9d85 <exec_byte_code+3687>, 0x5555557e9df4 <exec_byte_code+3798>, 0x5555557e9e63 <exec_byte_code+3909>, 0x5555557e9ecf <exec_byte_code+4017>, 0x5555557ea9ee <exec_byte_code+6864>, 0x5555557eaed5 <exec_byte_code+8119>, 0x5555557eb684 <exec_byte_code+10086>, 0x5555557ec8ba <exec_byte_code+14748>, 0x5555557ec92f <exec_byte_code+14865>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec9c5 <exec_byte_code+15015>, 0x5555557eca4c <exec_byte_code+15150>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ecb9a <exec_byte_code+15484> <repeats 64 times>} const_length = 3 bytestr_length = 10 vectorp = 0x555556d4ec80 quitcounter = 1 '\001' stack_items = 3 sa_avail = 16350 sa_count = 35 alloc = 0x7ffffffeca50 stack_base = 0x7ffffffeca50 top = 0x7ffffffeca58 stack_lim = 0x7ffffffeca68 bytestr_data = 0x7ffffffeca68 "\301\300!\205\t" pc = 0x7ffffffeca71 "\207\376\377\377\177" count = 35 result = make_fixnum(8) #4 0x000055555579ec21 in fetch_and_exec_byte_code (fun=XIL(0x555556e58d75), syms_left=make_fixnum(0), nargs=0, args=0x7ffffffecf10) at ../../master/src/eval.c:3036 #5 0x000055555579efae in funcall_lambda (fun=XIL(0x555556e58d75), nargs=0, arg_vector=0x7ffffffecf10) at ../../master/src/eval.c:3117 val = XIL(0x7ffffffece90) syms_left = make_fixnum(0) next = XIL(0x1) lexenv = XIL(0x1800000000) count = 35 i = 93824994606300 optional = false rest = false #6 0x000055555579e5c6 in Ffuncall (nargs=1, args=0x7ffffffecf08) at ../../master/src/eval.c:2916 fun = XIL(0x555556e58d75) original_fun = XIL(0x555556e58d75) funcar = XIL(0x7ffffffecec0) numargs = 0 val = XIL(0x7ffffffecf20) count = 34 #7 0x00005555557e8f1b in bcall0 (f=XIL(0x555556e58d75)) at ../../master/src/bytecode.c:340 #8 0x00005555557a0125 in do_one_unbind (this_binding=0x7ffffffecf80, unwinding=true, bindflag=SET_INTERNAL_UNBIND) at ../../master/src/eval.c:3575 #9 0x00005555557a04de in unbind_to (count=33, value=XIL(0)) at ../../master/src/eval.c:3713 this_binding = { kind = SPECPDL_UNWIND, unwind = { kind = SPECPDL_UNWIND, func = 0x5555557e8efe <bcall0>, arg = XIL(0x555556e58d75), eval_depth = 7 }, unwind_array = { kind = SPECPDL_UNWIND, nelts = 93824994938622, array = 0x555556e58d75 }, unwind_ptr = { kind = SPECPDL_UNWIND, func = 0x5555557e8efe <bcall0>, arg = 0x555556e58d75 }, unwind_int = { kind = SPECPDL_UNWIND, func = 0x5555557e8efe <bcall0>, arg = 1457884533 }, unwind_intmax = { kind = SPECPDL_UNWIND, func = 0x5555557e8efe <bcall0>, arg = 93825018465653 }, unwind_excursion = { kind = SPECPDL_UNWIND, marker = make_fixnum(23456248734655), window = XIL(0x555556e58d75) }, unwind_void = { kind = SPECPDL_UNWIND, func = 0x5555557e8efe <bcall0> }, let = { kind = SPECPDL_UNWIND, symbol = make_fixnum(23456248734655), old_value = XIL(0x555556e58d75), where = XIL(0x7), saved_value = XIL(0) }, bt = { kind = SPECPDL_UNWIND, debug_on_exit = false, function = make_fixnum(23456248734655), args = 0x555556e58d75, nargs = 7 } } quitf = XIL(0) #10 0x00005555557e9ab1 in exec_byte_code (bytestr=XIL(0x7ffff291441c), vector=XIL(0x7ffff29140cd), maxdepth=make_fixnum(23), args_template=make_fixnum(257), nargs=1, args=0x7ffffffed730) at ../../master/src/bytecode.c:652 op = 2 type = (unknown: 0xf2c42280) targets = {0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec748 <exec_byte_code+14378>, 0x5555557ec74a <exec_byte_code+14380>, 0x5555557ec74c <exec_byte_code+14382>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec7b3 <exec_byte_code+14485>, 0x5555557ec827 <exec_byte_code+14601>, 0x5555557e93ac <exec_byte_code+1166>, 0x5555557e93ae <exec_byte_code+1168>, 0x5555557e93b0 <exec_byte_code+1170>, 0x5555557e93b2 <exec_byte_code+1172>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93ba <exec_byte_code+1180>, 0x5555557e937b <exec_byte_code+1117>, 0x5555557e972a <exec_byte_code+2060>, 0x5555557e972c <exec_byte_code+2062>, 0x5555557e972e <exec_byte_code+2064>, 0x5555557e9730 <exec_byte_code+2066>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9767 <exec_byte_code+2121>, 0x5555557e9738 <exec_byte_code+2074>, 0x5555557e9918 <exec_byte_code+2554>, 0x5555557e991a <exec_byte_code+2556>, 0x5555557e991c <exec_byte_code+2558>, 0x5555557e991e <exec_byte_code+2560>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e98d2 <exec_byte_code+2484>, 0x5555557e98e9 <exec_byte_code+2507>, 0x5555557e99cd <exec_byte_code+2735>, 0x5555557e99cf <exec_byte_code+2737>, 0x5555557e99d1 <exec_byte_code+2739>, 0x5555557e99d3 <exec_byte_code+2741>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e9987 <exec_byte_code+2665>, 0x5555557e999e <exec_byte_code+2688>, 0x5555557e9a7f <exec_byte_code+2913>, 0x5555557e9a81 <exec_byte_code+2915>, 0x5555557e9a83 <exec_byte_code+2917>, 0x5555557e9a85 <exec_byte_code+2919>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a39 <exec_byte_code+2843>, 0x5555557e9a50 <exec_byte_code+2866>, 0x5555557ea2e7 <exec_byte_code+5065>, 0x5555557ea1ca <exec_byte_code+4780>, 0x5555557ea1c1 <exec_byte_code+4771>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ea521 <exec_byte_code+5635>, 0x5555557ea602 <exec_byte_code+5860>, 0x5555557ea65f <exec_byte_code+5953>, 0x5555557ea6bf <exec_byte_code+6049>, 0x5555557ea721 <exec_byte_code+6147>, 0x5555557e95b7 <exec_byte_code+1689>, 0x5555557e9632 <exec_byte_code+1812>, 0x5555557ea79a <exec_byte_code+6268>, 0x5555557e9528 <exec_byte_code+1546>, 0x5555557e969a <exec_byte_code+1916>, 0x5555557ea802 <exec_byte_code+6372>, 0x5555557ea86a <exec_byte_code+6476>, 0x5555557ea8b2 <exec_byte_code+6548>, 0x5555557ea91a <exec_byte_code+6652>, 0x5555557ea980 <exec_byte_code+6754>, 0x5555557eaa66 <exec_byte_code+6984>, 0x5555557eaaae <exec_byte_code+7056>, 0x5555557eab16 <exec_byte_code+7160>, 0x5555557eab9b <exec_byte_code+7293>, 0x5555557eabe3 <exec_byte_code+7365>, 0x5555557eac2b <exec_byte_code+7437>, 0x5555557eac93 <exec_byte_code+7541>, 0x5555557eacfb <exec_byte_code+7645>, 0x5555557ead63 <exec_byte_code+7749>, 0x5555557eade8 <exec_byte_code+7882>, 0x5555557eae37 <exec_byte_code+7961>, 0x5555557eae86 <exec_byte_code+8040>, 0x5555557eaf4d <exec_byte_code+8239>, 0x5555557eafef <exec_byte_code+8401>, 0x5555557eb091 <exec_byte_code+8563>, 0x5555557eb0fe <exec_byte_code+8672>, 0x5555557eb16b <exec_byte_code+8781>, 0x5555557eb1d8 <exec_byte_code+8890>, 0x5555557eb245 <exec_byte_code+8999>, 0x5555557eb2b2 <exec_byte_code+9108>, 0x5555557eb301 <exec_byte_code+9187>, 0x5555557eb3a4 <exec_byte_code+9350>, 0x5555557eb3f3 <exec_byte_code+9429>, 0x5555557eb442 <exec_byte_code+9508>, 0x5555557eb491 <exec_byte_code+9587>, 0x5555557eb597 <exec_byte_code+9849>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557eb5f2 <exec_byte_code+9940>, 0x5555557eb63a <exec_byte_code+10012>, 0x5555557eb6fc <exec_byte_code+10206>, 0x5555557eb765 <exec_byte_code+10311>, 0x5555557eb7c0 <exec_byte_code+10402>, 0x5555557eb808 <exec_byte_code+10474>, 0x5555557eb84b <exec_byte_code+10541>, 0x5555557eb88e <exec_byte_code+10608>, 0x5555557eb8d9 <exec_byte_code+10683>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557eb931 <exec_byte_code+10771>, 0x5555557eb974 <exec_byte_code+10838>, 0x5555557eb9b7 <exec_byte_code+10905>, 0x5555557eb9fa <exec_byte_code+10972>, 0x5555557eba3d <exec_byte_code+11039>, 0x5555557eba80 <exec_byte_code+11106>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ebac8 <exec_byte_code+11178>, 0x5555557ebb1a <exec_byte_code+11260>, 0x5555557ebb62 <exec_byte_code+11332>, 0x5555557ebbaa <exec_byte_code+11404>, 0x5555557ebc12 <exec_byte_code+11508>, 0x5555557ebc7a <exec_byte_code+11612>, 0x5555557ebcc2 <exec_byte_code+11684>, 0x5555557ebd7f <exec_byte_code+11873>, 0x5555557ebde7 <exec_byte_code+11977>, 0x5555557ebe4f <exec_byte_code+12081>, 0x5555557ebeb7 <exec_byte_code+12185>, 0x5555557ebefa <exec_byte_code+12252>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9f87 <exec_byte_code+4201>, 0x5555557e9b31 <exec_byte_code+3091>, 0x5555557e9496 <exec_byte_code+1400>, 0x5555557e9be2 <exec_byte_code+3268>, 0x5555557e9c66 <exec_byte_code+3400>, 0x5555557e9ce7 <exec_byte_code+3529>, 0x5555557e9f3b <exec_byte_code+4125>, 0x5555557e9f50 <exec_byte_code+4146>, 0x5555557e987f <exec_byte_code+2401>, 0x5555557ea00a <exec_byte_code+4332>, 0x5555557ea078 <exec_byte_code+4442>, 0x5555557ea109 <exec_byte_code+4587>, 0x5555557ea152 <exec_byte_code+4660>, 0x5555557ea333 <exec_byte_code+5141>, 0x5555557ea3b0 <exec_byte_code+5266>, 0x5555557ea435 <exec_byte_code+5399>, 0x5555557ea49b <exec_byte_code+5501>, 0x5555557e9ae3 <exec_byte_code+3013>, 0x5555557ebf42 <exec_byte_code+12324>, 0x5555557ebfc7 <exec_byte_code+12457>, 0x5555557ec00f <exec_byte_code+12529>, 0x5555557ec057 <exec_byte_code+12601>, 0x5555557ec09f <exec_byte_code+12673>, 0x5555557ec0e7 <exec_byte_code+12745>, 0x5555557ec14f <exec_byte_code+12849>, 0x5555557ec1b7 <exec_byte_code+12953>, 0x5555557ec21f <exec_byte_code+13057>, 0x5555557ec287 <exec_byte_code+13161>, 0x5555557ec398 <exec_byte_code+13434>, 0x5555557ec400 <exec_byte_code+13538>, 0x5555557ec468 <exec_byte_code+13642>, 0x5555557ec4b0 <exec_byte_code+13714>, 0x5555557ec518 <exec_byte_code+13818>, 0x5555557ec580 <exec_byte_code+13922>, 0x5555557ec5c8 <exec_byte_code+13994>, 0x5555557ec610 <exec_byte_code+14066>, 0x5555557eb4e0 <exec_byte_code+9666>, 0x5555557eb52f <exec_byte_code+9745>, 0x5555557ec65f <exec_byte_code+14145>, 0x5555557ec6c1 <exec_byte_code+14243>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9d68 <exec_byte_code+3658>, 0x5555557e9d85 <exec_byte_code+3687>, 0x5555557e9df4 <exec_byte_code+3798>, 0x5555557e9e63 <exec_byte_code+3909>, 0x5555557e9ecf <exec_byte_code+4017>, 0x5555557ea9ee <exec_byte_code+6864>, 0x5555557eaed5 <exec_byte_code+8119>, 0x5555557eb684 <exec_byte_code+10086>, 0x5555557ec8ba <exec_byte_code+14748>, 0x5555557ec92f <exec_byte_code+14865>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec9c5 <exec_byte_code+15015>, 0x5555557eca4c <exec_byte_code+15150>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ecb9a <exec_byte_code+15484> <repeats 64 times>} const_length = 51 bytestr_length = 494 vectorp = 0x7ffff29140d0 quitcounter = 44 ',' stack_items = 24 sa_avail = 15698 sa_count = 32 alloc = 0x7ffffffecfd0 stack_base = 0x7ffffffecfd0 top = 0x7ffffffed000 stack_lim = 0x7ffffffed090 bytestr_data = 0x7ffffffed090 "\211??\205\355\001\b\302p\001\031\303\304\302\"r\211q\210\305\306\002\"\216\004c\210eb\210`dW\203\345\001`lj\211\211g\310U\203\234\001\311\061:" pc = 0x7ffffffed278 "\262\001)\266\203\207" count = 32 result = XIL(0xc6002383a2010007) #11 0x000055555579ec21 in fetch_and_exec_byte_code (fun=XIL(0x7ffff291409d), syms_left=make_fixnum(257), nargs=1, args=0x7ffffffed728) at ../../master/src/eval.c:3036 #12 0x000055555579efae in funcall_lambda (fun=XIL(0x7ffff291409d), nargs=1, arg_vector=0x7ffffffed728) at ../../master/src/eval.c:3117 val = XIL(0x7ffffffed6a0) syms_left = make_fixnum(257) next = XIL(0) lexenv = XIL(0x1800000000) count = 32 i = 93824994606300 optional = false rest = false #13 0x000055555579e5c6 in Ffuncall (nargs=2, args=0x7ffffffed720) at ../../master/src/eval.c:2916 fun = XIL(0x7ffff291409d) original_fun = XIL(0xcff0) funcar = XIL(0x555555cc4f80) numargs = 1 val = XIL(0) count = 31 #14 0x000055555579de5b in call1 (fn=XIL(0xcff0), arg1=XIL(0x7ffff276d6fc)) at ../../master/src/eval.c:2774 #15 0x00005555556e8cac in help_echo_substitute_command_keys (help=XIL(0x7ffff276d6fc)) at ../../master/src/keyboard.c:2042 #16 0x00005555556f46c0 in parse_menu_item (item=XIL(0x7ffff276d6eb), inmenubar=0) at ../../master/src/keyboard.c:7700 help = XIL(0x7ffff276d6fc) li = { tortoise = XIL(0x7ffff292d363), max = 2, n = 0, q = 1 } def = XIL(0x555556c64823) tem = XIL(0xea0) item_string = XIL(0x9ae0) start = XIL(0x7ffff292d353) filter = XIL(0) keyhint = XIL(0) i = 8 #17 0x000055555561da4c in single_menu_item (key=XIL(0x2aaa9ca7dfa8), item=XIL(0x7ffff292d333), dummy=XIL(0), skp_v=0x7ffffffeda60) at ../../master/src/menu.c:323 map = XIL(0x7ffffffed9e0) item_string = XIL(0x30) enabled = XIL(0x7ffff29295a3) res = false skp = 0x7ffffffeda60 #18 0x00005555557003a6 in map_keymap_item (fun=0x55555561d9ff <single_menu_item>, args=XIL(0), key=XIL(0x2aaa9ca7dfa8), val=XIL(0x7ffff292d333), data=0x7ffffffeda60) at ../../master/src/keymap.c:502 #19 0x000055555570051a in map_keymap_internal (map=XIL(0x555556c64823), fun=0x55555561d9ff <single_menu_item>, args=XIL(0), data=0x7ffffffeda60) at ../../master/src/keymap.c:549 binding = XIL(0x555556c5d203) tail = XIL(0x555556c645f3) #20 0x00005555557007c2 in map_keymap_canonical (map=XIL(0x555556c64823), fun=0x55555561d9ff <single_menu_item>, args=XIL(0), data=0x7ffffffeda60) at ../../master/src/keymap.c:609 #21 0x000055555561d971 in single_keymap_panes (keymap=XIL(0x7ffff29295a3), pane_name=XIL(0x7ffff2631c84), prefix=XIL(0x2aaa9c96cd20), maxdepth=10) at ../../master/src/menu.c:292 skp = { pending_maps = XIL(0), maxdepth = 10, notbuttons = 0 } #22 0x000055555561e640 in parse_single_submenu (item_key=XIL(0x2aaa9c96cd20), item_name=XIL(0x7ffff2631c84), maps=XIL(0)) at ../../master/src/menu.c:556 prompt = XIL(0x7ffff2631c84) i = 0 mapvec = 0x7ffffffedab0 top_level_items = false sa_avail = 16376 sa_count = 31 len = 1 #23 0x00005555556218f4 in set_frame_menubar (f=0x555556d8c360, deep_p=true) at ../../master/src/xmenu.c:794 key = XIL(0x2aaa9c96cd20) string = XIL(0x7ffff2631c84) maps = XIL(0x555556c5da43) buffer = XIL(0x7ffff257c6fd) specpdl_count = 25 previous_menu_items_used = 5427 previous_items = 0x7ffffffedc20 subitems = 9 prev = 0x7ffff257c6f8 menubar_widget = 0x555556f93790 old_widget = 0x555556f93790 id = 1 items = XIL(0x555556d9cead) wv = 0x3 first_wv = 0x7fffffff85b0 prev_wv = 0x0 i = 0 submenu_start = 0x7ffffffedbf0 submenu_end = 0x7ffffffedbc0 submenu_top_level_items = 0x7ffffffedb70 submenu_n_panes = 0x7ffffffedb90 #24 0x00005555555db3e4 in update_menu_bar (f=0x555556d8c360, save_match_data=false, hooks_run=true) at ../../master/src/xdisp.c:12913 prev = 0x7ffff257c6f8 count = 22 window = XIL(0x555556e2e2c5) w = 0x555556e2e2c0 #25 0x00005555555db062 in prepare_menu_bars () at ../../master/src/xdisp.c:12799 f = 0x555556d8c360 w = 0x555556e2e2c0 tail = XIL(0x5555569d0ed3) frame = XIL(0x555556d8c365) count = 21 menu_bar_hooks_run = false all_windows = true some_windows = false #26 0x00005555555e14d7 in redisplay_internal () at ../../master/src/xdisp.c:15661 w = 0x555556e2e2c0 sw = 0x555556e2e2c0 fr = 0x555556d8c360 pending = false must_finish = false match_p = false tlbufpos = { charpos = 139642271694850, bytepos = 140737488329552 } tlendpos = { charpos = 140737488329520, bytepos = 93824994640165 } number_of_visible_frames = 2 count = 18 sf = 0x555556d8c360 polling_stopped_here = false tail = XIL(0) frame = XIL(0x555555d61a05) hscroll_retries = 0 garbaged_frame_retries = 0 consider_all_windows_p = false update_miniwindow_p = false #27 0x00005555555e2e05 in redisplay_preserve_echo_area (from_where=13) at ../../master/src/xdisp.c:16382 count = 17 #28 0x00005555557efd2d in Fdelete_process (process=XIL(0x555556da8c1d)) at ../../master/src/process.c:1090 p = 0x555556da8c18 #29 0x000055555579e96e in funcall_subr (subr=0x555555c55e00 <Sdelete_process>, numargs=1, args=0x7fffffff9dd8) at ../../master/src/eval.c:2987 internal_argbuf = {XIL(0x10), XIL(0x3fd0), make_fixnum(23456248621749), XIL(0x2f2704730), XIL(0x555555cc4f80), XIL(0x1000000000), XIL(0x555555c55e00), XIL(0x7fffffff9d28)} internal_args = 0x7fffffff9dd8 #30 0x000055555579e582 in Ffuncall (nargs=2, args=0x7fffffff9dd0) at ../../master/src/eval.c:2914 fun = XIL(0x555555c55e05) original_fun = XIL(0x2aaa9ca9f370) funcar = make_fixnum(23456248621749) numargs = 1 val = XIL(0) count = 16 #31 0x00005555557e9a00 in exec_byte_code (bytestr=XIL(0x555556536fb4), vector=XIL(0x5555564f336d), maxdepth=make_fixnum(10), args_template=make_fixnum(513), nargs=1, args=0x7fffffffa3b8) at ../../master/src/bytecode.c:632 op = 1 type = (CONDITION_CASE | CATCHER_ALL | unknown: 0x557101b0) targets = {0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec748 <exec_byte_code+14378>, 0x5555557ec74a <exec_byte_code+14380>, 0x5555557ec74c <exec_byte_code+14382>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec7b3 <exec_byte_code+14485>, 0x5555557ec827 <exec_byte_code+14601>, 0x5555557e93ac <exec_byte_code+1166>, 0x5555557e93ae <exec_byte_code+1168>, 0x5555557e93b0 <exec_byte_code+1170>, 0x5555557e93b2 <exec_byte_code+1172>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93ba <exec_byte_code+1180>, 0x5555557e937b <exec_byte_code+1117>, 0x5555557e972a <exec_byte_code+2060>, 0x5555557e972c <exec_byte_code+2062>, 0x5555557e972e <exec_byte_code+2064>, 0x5555557e9730 <exec_byte_code+2066>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9767 <exec_byte_code+2121>, 0x5555557e9738 <exec_byte_code+2074>, 0x5555557e9918 <exec_byte_code+2554>, 0x5555557e991a <exec_byte_code+2556>, 0x5555557e991c <exec_byte_code+2558>, 0x5555557e991e <exec_byte_code+2560>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e98d2 <exec_byte_code+2484>, 0x5555557e98e9 <exec_byte_code+2507>, 0x5555557e99cd <exec_byte_code+2735>, 0x5555557e99cf <exec_byte_code+2737>, 0x5555557e99d1 <exec_byte_code+2739>, 0x5555557e99d3 <exec_byte_code+2741>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e9987 <exec_byte_code+2665>, 0x5555557e999e <exec_byte_code+2688>, 0x5555557e9a7f <exec_byte_code+2913>, 0x5555557e9a81 <exec_byte_code+2915>, 0x5555557e9a83 <exec_byte_code+2917>, 0x5555557e9a85 <exec_byte_code+2919>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a39 <exec_byte_code+2843>, 0x5555557e9a50 <exec_byte_code+2866>, 0x5555557ea2e7 <exec_byte_code+5065>, 0x5555557ea1ca <exec_byte_code+4780>, 0x5555557ea1c1 <exec_byte_code+4771>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ea521 <exec_byte_code+5635>, 0x5555557ea602 <exec_byte_code+5860>, 0x5555557ea65f <exec_byte_code+5953>, 0x5555557ea6bf <exec_byte_code+6049>, 0x5555557ea721 <exec_byte_code+6147>, 0x5555557e95b7 <exec_byte_code+1689>, 0x5555557e9632 <exec_byte_code+1812>, 0x5555557ea79a <exec_byte_code+6268>, 0x5555557e9528 <exec_byte_code+1546>, 0x5555557e969a <exec_byte_code+1916>, 0x5555557ea802 <exec_byte_code+6372>, 0x5555557ea86a <exec_byte_code+6476>, 0x5555557ea8b2 <exec_byte_code+6548>, 0x5555557ea91a <exec_byte_code+6652>, 0x5555557ea980 <exec_byte_code+6754>, 0x5555557eaa66 <exec_byte_code+6984>, 0x5555557eaaae <exec_byte_code+7056>, 0x5555557eab16 <exec_byte_code+7160>, 0x5555557eab9b <exec_byte_code+7293>, 0x5555557eabe3 <exec_byte_code+7365>, 0x5555557eac2b <exec_byte_code+7437>, 0x5555557eac93 <exec_byte_code+7541>, 0x5555557eacfb <exec_byte_code+7645>, 0x5555557ead63 <exec_byte_code+7749>, 0x5555557eade8 <exec_byte_code+7882>, 0x5555557eae37 <exec_byte_code+7961>, 0x5555557eae86 <exec_byte_code+8040>, 0x5555557eaf4d <exec_byte_code+8239>, 0x5555557eafef <exec_byte_code+8401>, 0x5555557eb091 <exec_byte_code+8563>, 0x5555557eb0fe <exec_byte_code+8672>, 0x5555557eb16b <exec_byte_code+8781>, 0x5555557eb1d8 <exec_byte_code+8890>, 0x5555557eb245 <exec_byte_code+8999>, 0x5555557eb2b2 <exec_byte_code+9108>, 0x5555557eb301 <exec_byte_code+9187>, 0x5555557eb3a4 <exec_byte_code+9350>, 0x5555557eb3f3 <exec_byte_code+9429>, 0x5555557eb442 <exec_byte_code+9508>, 0x5555557eb491 <exec_byte_code+9587>, 0x5555557eb597 <exec_byte_code+9849>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557eb5f2 <exec_byte_code+9940>, 0x5555557eb63a <exec_byte_code+10012>, 0x5555557eb6fc <exec_byte_code+10206>, 0x5555557eb765 <exec_byte_code+10311>, 0x5555557eb7c0 <exec_byte_code+10402>, 0x5555557eb808 <exec_byte_code+10474>, 0x5555557eb84b <exec_byte_code+10541>, 0x5555557eb88e <exec_byte_code+10608>, 0x5555557eb8d9 <exec_byte_code+10683>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557eb931 <exec_byte_code+10771>, 0x5555557eb974 <exec_byte_code+10838>, 0x5555557eb9b7 <exec_byte_code+10905>, 0x5555557eb9fa <exec_byte_code+10972>, 0x5555557eba3d <exec_byte_code+11039>, 0x5555557eba80 <exec_byte_code+11106>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ebac8 <exec_byte_code+11178>, 0x5555557ebb1a <exec_byte_code+11260>, 0x5555557ebb62 <exec_byte_code+11332>, 0x5555557ebbaa <exec_byte_code+11404>, 0x5555557ebc12 <exec_byte_code+11508>, 0x5555557ebc7a <exec_byte_code+11612>, 0x5555557ebcc2 <exec_byte_code+11684>, 0x5555557ebd7f <exec_byte_code+11873>, 0x5555557ebde7 <exec_byte_code+11977>, 0x5555557ebe4f <exec_byte_code+12081>, 0x5555557ebeb7 <exec_byte_code+12185>, 0x5555557ebefa <exec_byte_code+12252>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9f87 <exec_byte_code+4201>, 0x5555557e9b31 <exec_byte_code+3091>, 0x5555557e9496 <exec_byte_code+1400>, 0x5555557e9be2 <exec_byte_code+3268>, 0x5555557e9c66 <exec_byte_code+3400>, 0x5555557e9ce7 <exec_byte_code+3529>, 0x5555557e9f3b <exec_byte_code+4125>, 0x5555557e9f50 <exec_byte_code+4146>, 0x5555557e987f <exec_byte_code+2401>, 0x5555557ea00a <exec_byte_code+4332>, 0x5555557ea078 <exec_byte_code+4442>, 0x5555557ea109 <exec_byte_code+4587>, 0x5555557ea152 <exec_byte_code+4660>, 0x5555557ea333 <exec_byte_code+5141>, 0x5555557ea3b0 <exec_byte_code+5266>, 0x5555557ea435 <exec_byte_code+5399>, 0x5555557ea49b <exec_byte_code+5501>, 0x5555557e9ae3 <exec_byte_code+3013>, 0x5555557ebf42 <exec_byte_code+12324>, 0x5555557ebfc7 <exec_byte_code+12457>, 0x5555557ec00f <exec_byte_code+12529>, 0x5555557ec057 <exec_byte_code+12601>, 0x5555557ec09f <exec_byte_code+12673>, 0x5555557ec0e7 <exec_byte_code+12745>, 0x5555557ec14f <exec_byte_code+12849>, 0x5555557ec1b7 <exec_byte_code+12953>, 0x5555557ec21f <exec_byte_code+13057>, 0x5555557ec287 <exec_byte_code+13161>, 0x5555557ec398 <exec_byte_code+13434>, 0x5555557ec400 <exec_byte_code+13538>, 0x5555557ec468 <exec_byte_code+13642>, 0x5555557ec4b0 <exec_byte_code+13714>, 0x5555557ec518 <exec_byte_code+13818>, 0x5555557ec580 <exec_byte_code+13922>, 0x5555557ec5c8 <exec_byte_code+13994>, 0x5555557ec610 <exec_byte_code+14066>, 0x5555557eb4e0 <exec_byte_code+9666>, 0x5555557eb52f <exec_byte_code+9745>, 0x5555557ec65f <exec_byte_code+14145>, 0x5555557ec6c1 <exec_byte_code+14243>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9d68 <exec_byte_code+3658>, 0x5555557e9d85 <exec_byte_code+3687>, 0x5555557e9df4 <exec_byte_code+3798>, 0x5555557e9e63 <exec_byte_code+3909>, 0x5555557e9ecf <exec_byte_code+4017>, 0x5555557ea9ee <exec_byte_code+6864>, 0x5555557eaed5 <exec_byte_code+8119>, 0x5555557eb684 <exec_byte_code+10086>, 0x5555557ec8ba <exec_byte_code+14748>, 0x5555557ec92f <exec_byte_code+14865>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec9c5 <exec_byte_code+15015>, 0x5555557eca4c <exec_byte_code+15150>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ecb9a <exec_byte_code+15484> <repeats 64 times>} const_length = 34 bytestr_length = 196 vectorp = 0x5555564f3370 quitcounter = 3 '\003' stack_items = 11 sa_avail = 16100 sa_count = 16 alloc = 0x7fffffff9db0 stack_base = 0x7fffffff9db0 top = 0x7fffffff9dd0 stack_lim = 0x7fffffff9e08 bytestr_data = 0x7fffffff9e08 "\305\306\002\205\a" pc = 0x7fffffff9ec4 "\210\305\341\004\"\262\001\207" count = 16 result = XIL(0) #32 0x000055555579ec21 in fetch_and_exec_byte_code (fun=XIL(0x5555564f3485), syms_left=make_fixnum(513), nargs=1, args=0x7fffffffa3b0) at ../../master/src/eval.c:3036 #33 0x000055555579efae in funcall_lambda (fun=XIL(0x5555564f3485), nargs=1, arg_vector=0x7fffffffa3b0) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffa2f0) syms_left = make_fixnum(513) next = XIL(0) lexenv = XIL(0x1800000000) count = 16 i = 93824994606300 optional = false rest = false #34 0x000055555579e5c6 in Ffuncall (nargs=2, args=0x7fffffffa3a8) at ../../master/src/eval.c:2916 fun = XIL(0x5555564f3485) original_fun = XIL(0x794bd0) funcar = XIL(0x7fffffffa350) numargs = 1 val = XIL(0) count = 15 #35 0x00005555557e9a00 in exec_byte_code (bytestr=XIL(0x55555653fb84), vector=XIL(0x5555564f6e4d), maxdepth=make_fixnum(15), args_template=make_fixnum(1799), nargs=7, args=0x7fffffffa9a8) at ../../master/src/bytecode.c:632 op = 1 type = CONDITION_CASE targets = {0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec748 <exec_byte_code+14378>, 0x5555557ec74a <exec_byte_code+14380>, 0x5555557ec74c <exec_byte_code+14382>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec7b3 <exec_byte_code+14485>, 0x5555557ec827 <exec_byte_code+14601>, 0x5555557e93ac <exec_byte_code+1166>, 0x5555557e93ae <exec_byte_code+1168>, 0x5555557e93b0 <exec_byte_code+1170>, 0x5555557e93b2 <exec_byte_code+1172>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93ba <exec_byte_code+1180>, 0x5555557e937b <exec_byte_code+1117>, 0x5555557e972a <exec_byte_code+2060>, 0x5555557e972c <exec_byte_code+2062>, 0x5555557e972e <exec_byte_code+2064>, 0x5555557e9730 <exec_byte_code+2066>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9767 <exec_byte_code+2121>, 0x5555557e9738 <exec_byte_code+2074>, 0x5555557e9918 <exec_byte_code+2554>, 0x5555557e991a <exec_byte_code+2556>, 0x5555557e991c <exec_byte_code+2558>, 0x5555557e991e <exec_byte_code+2560>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e98d2 <exec_byte_code+2484>, 0x5555557e98e9 <exec_byte_code+2507>, 0x5555557e99cd <exec_byte_code+2735>, 0x5555557e99cf <exec_byte_code+2737>, 0x5555557e99d1 <exec_byte_code+2739>, 0x5555557e99d3 <exec_byte_code+2741>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e9987 <exec_byte_code+2665>, 0x5555557e999e <exec_byte_code+2688>, 0x5555557e9a7f <exec_byte_code+2913>, 0x5555557e9a81 <exec_byte_code+2915>, 0x5555557e9a83 <exec_byte_code+2917>, 0x5555557e9a85 <exec_byte_code+2919>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a39 <exec_byte_code+2843>, 0x5555557e9a50 <exec_byte_code+2866>, 0x5555557ea2e7 <exec_byte_code+5065>, 0x5555557ea1ca <exec_byte_code+4780>, 0x5555557ea1c1 <exec_byte_code+4771>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ea521 <exec_byte_code+5635>, 0x5555557ea602 <exec_byte_code+5860>, 0x5555557ea65f <exec_byte_code+5953>, 0x5555557ea6bf <exec_byte_code+6049>, 0x5555557ea721 <exec_byte_code+6147>, 0x5555557e95b7 <exec_byte_code+1689>, 0x5555557e9632 <exec_byte_code+1812>, 0x5555557ea79a <exec_byte_code+6268>, 0x5555557e9528 <exec_byte_code+1546>, 0x5555557e969a <exec_byte_code+1916>, 0x5555557ea802 <exec_byte_code+6372>, 0x5555557ea86a <exec_byte_code+6476>, 0x5555557ea8b2 <exec_byte_code+6548>, 0x5555557ea91a <exec_byte_code+6652>, 0x5555557ea980 <exec_byte_code+6754>, 0x5555557eaa66 <exec_byte_code+6984>, 0x5555557eaaae <exec_byte_code+7056>, 0x5555557eab16 <exec_byte_code+7160>, 0x5555557eab9b <exec_byte_code+7293>, 0x5555557eabe3 <exec_byte_code+7365>, 0x5555557eac2b <exec_byte_code+7437>, 0x5555557eac93 <exec_byte_code+7541>, 0x5555557eacfb <exec_byte_code+7645>, 0x5555557ead63 <exec_byte_code+7749>, 0x5555557eade8 <exec_byte_code+7882>, 0x5555557eae37 <exec_byte_code+7961>, 0x5555557eae86 <exec_byte_code+8040>, 0x5555557eaf4d <exec_byte_code+8239>, 0x5555557eafef <exec_byte_code+8401>, 0x5555557eb091 <exec_byte_code+8563>, 0x5555557eb0fe <exec_byte_code+8672>, 0x5555557eb16b <exec_byte_code+8781>, 0x5555557eb1d8 <exec_byte_code+8890>, 0x5555557eb245 <exec_byte_code+8999>, 0x5555557eb2b2 <exec_byte_code+9108>, 0x5555557eb301 <exec_byte_code+9187>, 0x5555557eb3a4 <exec_byte_code+9350>, 0x5555557eb3f3 <exec_byte_code+9429>, 0x5555557eb442 <exec_byte_code+9508>, 0x5555557eb491 <exec_byte_code+9587>, 0x5555557eb597 <exec_byte_code+9849>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557eb5f2 <exec_byte_code+9940>, 0x5555557eb63a <exec_byte_code+10012>, 0x5555557eb6fc <exec_byte_code+10206>, 0x5555557eb765 <exec_byte_code+10311>, 0x5555557eb7c0 <exec_byte_code+10402>, 0x5555557eb808 <exec_byte_code+10474>, 0x5555557eb84b <exec_byte_code+10541>, 0x5555557eb88e <exec_byte_code+10608>, 0x5555557eb8d9 <exec_byte_code+10683>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557eb931 <exec_byte_code+10771>, 0x5555557eb974 <exec_byte_code+10838>, 0x5555557eb9b7 <exec_byte_code+10905>, 0x5555557eb9fa <exec_byte_code+10972>, 0x5555557eba3d <exec_byte_code+11039>, 0x5555557eba80 <exec_byte_code+11106>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ebac8 <exec_byte_code+11178>, 0x5555557ebb1a <exec_byte_code+11260>, 0x5555557ebb62 <exec_byte_code+11332>, 0x5555557ebbaa <exec_byte_code+11404>, 0x5555557ebc12 <exec_byte_code+11508>, 0x5555557ebc7a <exec_byte_code+11612>, 0x5555557ebcc2 <exec_byte_code+11684>, 0x5555557ebd7f <exec_byte_code+11873>, 0x5555557ebde7 <exec_byte_code+11977>, 0x5555557ebe4f <exec_byte_code+12081>, 0x5555557ebeb7 <exec_byte_code+12185>, 0x5555557ebefa <exec_byte_code+12252>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9f87 <exec_byte_code+4201>, 0x5555557e9b31 <exec_byte_code+3091>, 0x5555557e9496 <exec_byte_code+1400>, 0x5555557e9be2 <exec_byte_code+3268>, 0x5555557e9c66 <exec_byte_code+3400>, 0x5555557e9ce7 <exec_byte_code+3529>, 0x5555557e9f3b <exec_byte_code+4125>, 0x5555557e9f50 <exec_byte_code+4146>, 0x5555557e987f <exec_byte_code+2401>, 0x5555557ea00a <exec_byte_code+4332>, 0x5555557ea078 <exec_byte_code+4442>, 0x5555557ea109 <exec_byte_code+4587>, 0x5555557ea152 <exec_byte_code+4660>, 0x5555557ea333 <exec_byte_code+5141>, 0x5555557ea3b0 <exec_byte_code+5266>, 0x5555557ea435 <exec_byte_code+5399>, 0x5555557ea49b <exec_byte_code+5501>, 0x5555557e9ae3 <exec_byte_code+3013>, 0x5555557ebf42 <exec_byte_code+12324>, 0x5555557ebfc7 <exec_byte_code+12457>, 0x5555557ec00f <exec_byte_code+12529>, 0x5555557ec057 <exec_byte_code+12601>, 0x5555557ec09f <exec_byte_code+12673>, 0x5555557ec0e7 <exec_byte_code+12745>, 0x5555557ec14f <exec_byte_code+12849>, 0x5555557ec1b7 <exec_byte_code+12953>, 0x5555557ec21f <exec_byte_code+13057>, 0x5555557ec287 <exec_byte_code+13161>, 0x5555557ec398 <exec_byte_code+13434>, 0x5555557ec400 <exec_byte_code+13538>, 0x5555557ec468 <exec_byte_code+13642>, 0x5555557ec4b0 <exec_byte_code+13714>, 0x5555557ec518 <exec_byte_code+13818>, 0x5555557ec580 <exec_byte_code+13922>, 0x5555557ec5c8 <exec_byte_code+13994>, 0x5555557ec610 <exec_byte_code+14066>, 0x5555557eb4e0 <exec_byte_code+9666>, 0x5555557eb52f <exec_byte_code+9745>, 0x5555557ec65f <exec_byte_code+14145>, 0x5555557ec6c1 <exec_byte_code+14243>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9d68 <exec_byte_code+3658>, 0x5555557e9d85 <exec_byte_code+3687>, 0x5555557e9df4 <exec_byte_code+3798>, 0x5555557e9e63 <exec_byte_code+3909>, 0x5555557e9ecf <exec_byte_code+4017>, 0x5555557ea9ee <exec_byte_code+6864>, 0x5555557eaed5 <exec_byte_code+8119>, 0x5555557eb684 <exec_byte_code+10086>, 0x5555557ec8ba <exec_byte_code+14748>, 0x5555557ec92f <exec_byte_code+14865>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec9c5 <exec_byte_code+15015>, 0x5555557eca4c <exec_byte_code+15150>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ecb9a <exec_byte_code+15484> <repeats 64 times>} const_length = 42 bytestr_length = 233 vectorp = 0x5555564f6e50 quitcounter = 1 '\001' stack_items = 16 sa_avail = 16023 sa_count = 14 alloc = 0x7fffffffa360 stack_base = 0x7fffffffa360 top = 0x7fffffffa3a8 stack_lim = 0x7fffffffa3e0 bytestr_data = 0x7fffffffa3e0 "\305", <incomplete sequence \342> pc = 0x7fffffffa435 "\210\202l" count = 14 result = XIL(0x7fffffff94c0) #36 0x000055555579ec21 in fetch_and_exec_byte_code (fun=XIL(0x5555564f6fa5), syms_left=make_fixnum(1799), nargs=7, args=0x7fffffffa970) at ../../master/src/eval.c:3036 #37 0x000055555579efae in funcall_lambda (fun=XIL(0x5555564f6fa5), nargs=7, arg_vector=0x7fffffffa970) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffa8f0) syms_left = make_fixnum(1799) next = XIL(0x30) lexenv = XIL(0x1800000000) count = 14 i = 93824994606300 optional = false rest = false #38 0x000055555579e5c6 in Ffuncall (nargs=8, args=0x7fffffffa968) at ../../master/src/eval.c:2916 fun = XIL(0x5555564f6fa5) original_fun = XIL(0x876290) funcar = XIL(0x7fffffffa950) numargs = 7 val = XIL(0x555555dd01a4) count = 13 #39 0x00005555557e9a00 in exec_byte_code (bytestr=XIL(0x55555653fb24), vector=XIL(0x555556db15f5), maxdepth=make_fixnum(8), args_template=make_fixnum(0), nargs=0, args=0x7fffffffae80) at ../../master/src/bytecode.c:632 op = 7 type = (unknown: 0x5577ef7c) targets = {0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec748 <exec_byte_code+14378>, 0x5555557ec74a <exec_byte_code+14380>, 0x5555557ec74c <exec_byte_code+14382>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec7b3 <exec_byte_code+14485>, 0x5555557ec827 <exec_byte_code+14601>, 0x5555557e93ac <exec_byte_code+1166>, 0x5555557e93ae <exec_byte_code+1168>, 0x5555557e93b0 <exec_byte_code+1170>, 0x5555557e93b2 <exec_byte_code+1172>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93ba <exec_byte_code+1180>, 0x5555557e937b <exec_byte_code+1117>, 0x5555557e972a <exec_byte_code+2060>, 0x5555557e972c <exec_byte_code+2062>, 0x5555557e972e <exec_byte_code+2064>, 0x5555557e9730 <exec_byte_code+2066>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9767 <exec_byte_code+2121>, 0x5555557e9738 <exec_byte_code+2074>, 0x5555557e9918 <exec_byte_code+2554>, 0x5555557e991a <exec_byte_code+2556>, 0x5555557e991c <exec_byte_code+2558>, 0x5555557e991e <exec_byte_code+2560>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e98d2 <exec_byte_code+2484>, 0x5555557e98e9 <exec_byte_code+2507>, 0x5555557e99cd <exec_byte_code+2735>, 0x5555557e99cf <exec_byte_code+2737>, 0x5555557e99d1 <exec_byte_code+2739>, 0x5555557e99d3 <exec_byte_code+2741>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e9987 <exec_byte_code+2665>, 0x5555557e999e <exec_byte_code+2688>, 0x5555557e9a7f <exec_byte_code+2913>, 0x5555557e9a81 <exec_byte_code+2915>, 0x5555557e9a83 <exec_byte_code+2917>, 0x5555557e9a85 <exec_byte_code+2919>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a39 <exec_byte_code+2843>, 0x5555557e9a50 <exec_byte_code+2866>, 0x5555557ea2e7 <exec_byte_code+5065>, 0x5555557ea1ca <exec_byte_code+4780>, 0x5555557ea1c1 <exec_byte_code+4771>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ea521 <exec_byte_code+5635>, 0x5555557ea602 <exec_byte_code+5860>, 0x5555557ea65f <exec_byte_code+5953>, 0x5555557ea6bf <exec_byte_code+6049>, 0x5555557ea721 <exec_byte_code+6147>, 0x5555557e95b7 <exec_byte_code+1689>, 0x5555557e9632 <exec_byte_code+1812>, 0x5555557ea79a <exec_byte_code+6268>, 0x5555557e9528 <exec_byte_code+1546>, 0x5555557e969a <exec_byte_code+1916>, 0x5555557ea802 <exec_byte_code+6372>, 0x5555557ea86a <exec_byte_code+6476>, 0x5555557ea8b2 <exec_byte_code+6548>, 0x5555557ea91a <exec_byte_code+6652>, 0x5555557ea980 <exec_byte_code+6754>, 0x5555557eaa66 <exec_byte_code+6984>, 0x5555557eaaae <exec_byte_code+7056>, 0x5555557eab16 <exec_byte_code+7160>, 0x5555557eab9b <exec_byte_code+7293>, 0x5555557eabe3 <exec_byte_code+7365>, 0x5555557eac2b <exec_byte_code+7437>, 0x5555557eac93 <exec_byte_code+7541>, 0x5555557eacfb <exec_byte_code+7645>, 0x5555557ead63 <exec_byte_code+7749>, 0x5555557eade8 <exec_byte_code+7882>, 0x5555557eae37 <exec_byte_code+7961>, 0x5555557eae86 <exec_byte_code+8040>, 0x5555557eaf4d <exec_byte_code+8239>, 0x5555557eafef <exec_byte_code+8401>, 0x5555557eb091 <exec_byte_code+8563>, 0x5555557eb0fe <exec_byte_code+8672>, 0x5555557eb16b <exec_byte_code+8781>, 0x5555557eb1d8 <exec_byte_code+8890>, 0x5555557eb245 <exec_byte_code+8999>, 0x5555557eb2b2 <exec_byte_code+9108>, 0x5555557eb301 <exec_byte_code+9187>, 0x5555557eb3a4 <exec_byte_code+9350>, 0x5555557eb3f3 <exec_byte_code+9429>, 0x5555557eb442 <exec_byte_code+9508>, 0x5555557eb491 <exec_byte_code+9587>, 0x5555557eb597 <exec_byte_code+9849>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557eb5f2 <exec_byte_code+9940>, 0x5555557eb63a <exec_byte_code+10012>, 0x5555557eb6fc <exec_byte_code+10206>, 0x5555557eb765 <exec_byte_code+10311>, 0x5555557eb7c0 <exec_byte_code+10402>, 0x5555557eb808 <exec_byte_code+10474>, 0x5555557eb84b <exec_byte_code+10541>, 0x5555557eb88e <exec_byte_code+10608>, 0x5555557eb8d9 <exec_byte_code+10683>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557eb931 <exec_byte_code+10771>, 0x5555557eb974 <exec_byte_code+10838>, 0x5555557eb9b7 <exec_byte_code+10905>, 0x5555557eb9fa <exec_byte_code+10972>, 0x5555557eba3d <exec_byte_code+11039>, 0x5555557eba80 <exec_byte_code+11106>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ebac8 <exec_byte_code+11178>, 0x5555557ebb1a <exec_byte_code+11260>, 0x5555557ebb62 <exec_byte_code+11332>, 0x5555557ebbaa <exec_byte_code+11404>, 0x5555557ebc12 <exec_byte_code+11508>, 0x5555557ebc7a <exec_byte_code+11612>, 0x5555557ebcc2 <exec_byte_code+11684>, 0x5555557ebd7f <exec_byte_code+11873>, 0x5555557ebde7 <exec_byte_code+11977>, 0x5555557ebe4f <exec_byte_code+12081>, 0x5555557ebeb7 <exec_byte_code+12185>, 0x5555557ebefa <exec_byte_code+12252>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9f87 <exec_byte_code+4201>, 0x5555557e9b31 <exec_byte_code+3091>, 0x5555557e9496 <exec_byte_code+1400>, 0x5555557e9be2 <exec_byte_code+3268>, 0x5555557e9c66 <exec_byte_code+3400>, 0x5555557e9ce7 <exec_byte_code+3529>, 0x5555557e9f3b <exec_byte_code+4125>, 0x5555557e9f50 <exec_byte_code+4146>, 0x5555557e987f <exec_byte_code+2401>, 0x5555557ea00a <exec_byte_code+4332>, 0x5555557ea078 <exec_byte_code+4442>, 0x5555557ea109 <exec_byte_code+4587>, 0x5555557ea152 <exec_byte_code+4660>, 0x5555557ea333 <exec_byte_code+5141>, 0x5555557ea3b0 <exec_byte_code+5266>, 0x5555557ea435 <exec_byte_code+5399>, 0x5555557ea49b <exec_byte_code+5501>, 0x5555557e9ae3 <exec_byte_code+3013>, 0x5555557ebf42 <exec_byte_code+12324>, 0x5555557ebfc7 <exec_byte_code+12457>, 0x5555557ec00f <exec_byte_code+12529>, 0x5555557ec057 <exec_byte_code+12601>, 0x5555557ec09f <exec_byte_code+12673>, 0x5555557ec0e7 <exec_byte_code+12745>, 0x5555557ec14f <exec_byte_code+12849>, 0x5555557ec1b7 <exec_byte_code+12953>, 0x5555557ec21f <exec_byte_code+13057>, 0x5555557ec287 <exec_byte_code+13161>, 0x5555557ec398 <exec_byte_code+13434>, 0x5555557ec400 <exec_byte_code+13538>, 0x5555557ec468 <exec_byte_code+13642>, 0x5555557ec4b0 <exec_byte_code+13714>, 0x5555557ec518 <exec_byte_code+13818>, 0x5555557ec580 <exec_byte_code+13922>, 0x5555557ec5c8 <exec_byte_code+13994>, 0x5555557ec610 <exec_byte_code+14066>, 0x5555557eb4e0 <exec_byte_code+9666>, 0x5555557eb52f <exec_byte_code+9745>, 0x5555557ec65f <exec_byte_code+14145>, 0x5555557ec6c1 <exec_byte_code+14243>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9d68 <exec_byte_code+3658>, 0x5555557e9d85 <exec_byte_code+3687>, 0x5555557e9df4 <exec_byte_code+3798>, 0x5555557e9e63 <exec_byte_code+3909>, 0x5555557e9ecf <exec_byte_code+4017>, 0x5555557ea9ee <exec_byte_code+6864>, 0x5555557eaed5 <exec_byte_code+8119>, 0x5555557eb684 <exec_byte_code+10086>, 0x5555557ec8ba <exec_byte_code+14748>, 0x5555557ec92f <exec_byte_code+14865>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec9c5 <exec_byte_code+15015>, 0x5555557eca4c <exec_byte_code+15150>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ecb9a <exec_byte_code+15484> <repeats 64 times>} const_length = 13 bytestr_length = 46 vectorp = 0x555556db15f8 quitcounter = 1 '\001' stack_items = 9 sa_avail = 16266 sa_count = 11 alloc = 0x7fffffffa960 stack_base = 0x7fffffffa960 top = 0x7fffffffa968 stack_lim = 0x7fffffffa9a8 bytestr_data = 0x7fffffffa9a8 "r\310\016\v!q\210Ţ\203\030" pc = 0x7fffffffa9d4 "*\207" count = 11 result = XIL(0x555556d18793) #40 0x000055555579ec21 in fetch_and_exec_byte_code (fun=XIL(0x555556dff405), syms_left=make_fixnum(0), nargs=0, args=0x7fffffffae80) at ../../master/src/eval.c:3036 #41 0x000055555579efae in funcall_lambda (fun=XIL(0x555556dff405), nargs=0, arg_vector=0x7fffffffae80) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffadf0) syms_left = make_fixnum(0) next = XIL(0x7fffffffae20) lexenv = XIL(0x1800000000) count = 11 i = 93824994606300 optional = false rest = false #42 0x000055555579e5c6 in Ffuncall (nargs=1, args=0x7fffffffae78) at ../../master/src/eval.c:2916 fun = XIL(0x555556dff405) original_fun = XIL(0x555556dff405) funcar = XIL(0x5555557e84a5) numargs = 0 val = XIL(0x100000000) count = 10 #43 0x00005555557e9a00 in exec_byte_code (bytestr=XIL(0x55555653adb4), vector=XIL(0x5555565006ed), maxdepth=make_fixnum(6), args_template=make_fixnum(257), nargs=1, args=0x7fffffffb3e8) at ../../master/src/bytecode.c:632 op = 0 type = CONDITION_CASE targets = {0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec748 <exec_byte_code+14378>, 0x5555557ec74a <exec_byte_code+14380>, 0x5555557ec74c <exec_byte_code+14382>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec7b3 <exec_byte_code+14485>, 0x5555557ec827 <exec_byte_code+14601>, 0x5555557e93ac <exec_byte_code+1166>, 0x5555557e93ae <exec_byte_code+1168>, 0x5555557e93b0 <exec_byte_code+1170>, 0x5555557e93b2 <exec_byte_code+1172>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93ba <exec_byte_code+1180>, 0x5555557e937b <exec_byte_code+1117>, 0x5555557e972a <exec_byte_code+2060>, 0x5555557e972c <exec_byte_code+2062>, 0x5555557e972e <exec_byte_code+2064>, 0x5555557e9730 <exec_byte_code+2066>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9767 <exec_byte_code+2121>, 0x5555557e9738 <exec_byte_code+2074>, 0x5555557e9918 <exec_byte_code+2554>, 0x5555557e991a <exec_byte_code+2556>, 0x5555557e991c <exec_byte_code+2558>, 0x5555557e991e <exec_byte_code+2560>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e98d2 <exec_byte_code+2484>, 0x5555557e98e9 <exec_byte_code+2507>, 0x5555557e99cd <exec_byte_code+2735>, 0x5555557e99cf <exec_byte_code+2737>, 0x5555557e99d1 <exec_byte_code+2739>, 0x5555557e99d3 <exec_byte_code+2741>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e9987 <exec_byte_code+2665>, 0x5555557e999e <exec_byte_code+2688>, 0x5555557e9a7f <exec_byte_code+2913>, 0x5555557e9a81 <exec_byte_code+2915>, 0x5555557e9a83 <exec_byte_code+2917>, 0x5555557e9a85 <exec_byte_code+2919>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a39 <exec_byte_code+2843>, 0x5555557e9a50 <exec_byte_code+2866>, 0x5555557ea2e7 <exec_byte_code+5065>, 0x5555557ea1ca <exec_byte_code+4780>, 0x5555557ea1c1 <exec_byte_code+4771>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ea521 <exec_byte_code+5635>, 0x5555557ea602 <exec_byte_code+5860>, 0x5555557ea65f <exec_byte_code+5953>, 0x5555557ea6bf <exec_byte_code+6049>, 0x5555557ea721 <exec_byte_code+6147>, 0x5555557e95b7 <exec_byte_code+1689>, 0x5555557e9632 <exec_byte_code+1812>, 0x5555557ea79a <exec_byte_code+6268>, 0x5555557e9528 <exec_byte_code+1546>, 0x5555557e969a <exec_byte_code+1916>, 0x5555557ea802 <exec_byte_code+6372>, 0x5555557ea86a <exec_byte_code+6476>, 0x5555557ea8b2 <exec_byte_code+6548>, 0x5555557ea91a <exec_byte_code+6652>, 0x5555557ea980 <exec_byte_code+6754>, 0x5555557eaa66 <exec_byte_code+6984>, 0x5555557eaaae <exec_byte_code+7056>, 0x5555557eab16 <exec_byte_code+7160>, 0x5555557eab9b <exec_byte_code+7293>, 0x5555557eabe3 <exec_byte_code+7365>, 0x5555557eac2b <exec_byte_code+7437>, 0x5555557eac93 <exec_byte_code+7541>, 0x5555557eacfb <exec_byte_code+7645>, 0x5555557ead63 <exec_byte_code+7749>, 0x5555557eade8 <exec_byte_code+7882>, 0x5555557eae37 <exec_byte_code+7961>, 0x5555557eae86 <exec_byte_code+8040>, 0x5555557eaf4d <exec_byte_code+8239>, 0x5555557eafef <exec_byte_code+8401>, 0x5555557eb091 <exec_byte_code+8563>, 0x5555557eb0fe <exec_byte_code+8672>, 0x5555557eb16b <exec_byte_code+8781>, 0x5555557eb1d8 <exec_byte_code+8890>, 0x5555557eb245 <exec_byte_code+8999>, 0x5555557eb2b2 <exec_byte_code+9108>, 0x5555557eb301 <exec_byte_code+9187>, 0x5555557eb3a4 <exec_byte_code+9350>, 0x5555557eb3f3 <exec_byte_code+9429>, 0x5555557eb442 <exec_byte_code+9508>, 0x5555557eb491 <exec_byte_code+9587>, 0x5555557eb597 <exec_byte_code+9849>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557eb5f2 <exec_byte_code+9940>, 0x5555557eb63a <exec_byte_code+10012>, 0x5555557eb6fc <exec_byte_code+10206>, 0x5555557eb765 <exec_byte_code+10311>, 0x5555557eb7c0 <exec_byte_code+10402>, 0x5555557eb808 <exec_byte_code+10474>, 0x5555557eb84b <exec_byte_code+10541>, 0x5555557eb88e <exec_byte_code+10608>, 0x5555557eb8d9 <exec_byte_code+10683>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557eb931 <exec_byte_code+10771>, 0x5555557eb974 <exec_byte_code+10838>, 0x5555557eb9b7 <exec_byte_code+10905>, 0x5555557eb9fa <exec_byte_code+10972>, 0x5555557eba3d <exec_byte_code+11039>, 0x5555557eba80 <exec_byte_code+11106>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ebac8 <exec_byte_code+11178>, 0x5555557ebb1a <exec_byte_code+11260>, 0x5555557ebb62 <exec_byte_code+11332>, 0x5555557ebbaa <exec_byte_code+11404>, 0x5555557ebc12 <exec_byte_code+11508>, 0x5555557ebc7a <exec_byte_code+11612>, 0x5555557ebcc2 <exec_byte_code+11684>, 0x5555557ebd7f <exec_byte_code+11873>, 0x5555557ebde7 <exec_byte_code+11977>, 0x5555557ebe4f <exec_byte_code+12081>, 0x5555557ebeb7 <exec_byte_code+12185>, 0x5555557ebefa <exec_byte_code+12252>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9f87 <exec_byte_code+4201>, 0x5555557e9b31 <exec_byte_code+3091>, 0x5555557e9496 <exec_byte_code+1400>, 0x5555557e9be2 <exec_byte_code+3268>, 0x5555557e9c66 <exec_byte_code+3400>, 0x5555557e9ce7 <exec_byte_code+3529>, 0x5555557e9f3b <exec_byte_code+4125>, 0x5555557e9f50 <exec_byte_code+4146>, 0x5555557e987f <exec_byte_code+2401>, 0x5555557ea00a <exec_byte_code+4332>, 0x5555557ea078 <exec_byte_code+4442>, 0x5555557ea109 <exec_byte_code+4587>, 0x5555557ea152 <exec_byte_code+4660>, 0x5555557ea333 <exec_byte_code+5141>, 0x5555557ea3b0 <exec_byte_code+5266>, 0x5555557ea435 <exec_byte_code+5399>, 0x5555557ea49b <exec_byte_code+5501>, 0x5555557e9ae3 <exec_byte_code+3013>, 0x5555557ebf42 <exec_byte_code+12324>, 0x5555557ebfc7 <exec_byte_code+12457>, 0x5555557ec00f <exec_byte_code+12529>, 0x5555557ec057 <exec_byte_code+12601>, 0x5555557ec09f <exec_byte_code+12673>, 0x5555557ec0e7 <exec_byte_code+12745>, 0x5555557ec14f <exec_byte_code+12849>, 0x5555557ec1b7 <exec_byte_code+12953>, 0x5555557ec21f <exec_byte_code+13057>, 0x5555557ec287 <exec_byte_code+13161>, 0x5555557ec398 <exec_byte_code+13434>, 0x5555557ec400 <exec_byte_code+13538>, 0x5555557ec468 <exec_byte_code+13642>, 0x5555557ec4b0 <exec_byte_code+13714>, 0x5555557ec518 <exec_byte_code+13818>, 0x5555557ec580 <exec_byte_code+13922>, 0x5555557ec5c8 <exec_byte_code+13994>, 0x5555557ec610 <exec_byte_code+14066>, 0x5555557eb4e0 <exec_byte_code+9666>, 0x5555557eb52f <exec_byte_code+9745>, 0x5555557ec65f <exec_byte_code+14145>, 0x5555557ec6c1 <exec_byte_code+14243>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9d68 <exec_byte_code+3658>, 0x5555557e9d85 <exec_byte_code+3687>, 0x5555557e9df4 <exec_byte_code+3798>, 0x5555557e9e63 <exec_byte_code+3909>, 0x5555557e9ecf <exec_byte_code+4017>, 0x5555557ea9ee <exec_byte_code+6864>, 0x5555557eaed5 <exec_byte_code+8119>, 0x5555557eb684 <exec_byte_code+10086>, 0x5555557ec8ba <exec_byte_code+14748>, 0x5555557ec92f <exec_byte_code+14865>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec9c5 <exec_byte_code+15015>, 0x5555557eca4c <exec_byte_code+15150>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ecb9a <exec_byte_code+15484> <repeats 64 times>} const_length = 5 bytestr_length = 25 vectorp = 0x5555565006f0 quitcounter = 1 '\001' stack_items = 7 sa_avail = 16303 sa_count = 10 alloc = 0x7fffffffae60 stack_base = 0x7fffffffae60 top = 0x7fffffffae78 stack_lim = 0x7fffffffae98 bytestr_data = 0x7fffffffae98 "\300\001\301\"\302\002\301\303#\210\211\205\030" pc = 0x7fffffffaeac "0\207\210Ç\262\377\377\377\177" count = 10 result = XIL(0) #44 0x000055555579ec21 in fetch_and_exec_byte_code (fun=XIL(0x55555650071d), syms_left=make_fixnum(257), nargs=1, args=0x7fffffffb3e0) at ../../master/src/eval.c:3036 #45 0x000055555579efae in funcall_lambda (fun=XIL(0x55555650071d), nargs=1, arg_vector=0x7fffffffb3e0) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffb2d0) syms_left = make_fixnum(257) next = XIL(0x5555557a301c) lexenv = XIL(0x1800000000) count = 10 i = 93824994606300 optional = false rest = false #46 0x000055555579e5c6 in Ffuncall (nargs=2, args=0x7fffffffb3d8) at ../../master/src/eval.c:2916 fun = XIL(0x55555650071d) original_fun = XIL(0x8735c0) funcar = XIL(0x555556d8c365) numargs = 1 val = XIL(0) count = 9 #47 0x00005555557e9a00 in exec_byte_code (bytestr=XIL(0x55555653add4), vector=XIL(0x5555564f6b7d), maxdepth=make_fixnum(31), args_template=make_fixnum(514), nargs=2, args=0x7fffffffbca8) at ../../master/src/bytecode.c:632 op = 1 type = CONDITION_CASE targets = {0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec748 <exec_byte_code+14378>, 0x5555557ec74a <exec_byte_code+14380>, 0x5555557ec74c <exec_byte_code+14382>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec74e <exec_byte_code+14384>, 0x5555557ec7b3 <exec_byte_code+14485>, 0x5555557ec827 <exec_byte_code+14601>, 0x5555557e93ac <exec_byte_code+1166>, 0x5555557e93ae <exec_byte_code+1168>, 0x5555557e93b0 <exec_byte_code+1170>, 0x5555557e93b2 <exec_byte_code+1172>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93b4 <exec_byte_code+1174>, 0x5555557e93ba <exec_byte_code+1180>, 0x5555557e937b <exec_byte_code+1117>, 0x5555557e972a <exec_byte_code+2060>, 0x5555557e972c <exec_byte_code+2062>, 0x5555557e972e <exec_byte_code+2064>, 0x5555557e9730 <exec_byte_code+2066>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9732 <exec_byte_code+2068>, 0x5555557e9767 <exec_byte_code+2121>, 0x5555557e9738 <exec_byte_code+2074>, 0x5555557e9918 <exec_byte_code+2554>, 0x5555557e991a <exec_byte_code+2556>, 0x5555557e991c <exec_byte_code+2558>, 0x5555557e991e <exec_byte_code+2560>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e9920 <exec_byte_code+2562>, 0x5555557e98d2 <exec_byte_code+2484>, 0x5555557e98e9 <exec_byte_code+2507>, 0x5555557e99cd <exec_byte_code+2735>, 0x5555557e99cf <exec_byte_code+2737>, 0x5555557e99d1 <exec_byte_code+2739>, 0x5555557e99d3 <exec_byte_code+2741>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e99d5 <exec_byte_code+2743>, 0x5555557e9987 <exec_byte_code+2665>, 0x5555557e999e <exec_byte_code+2688>, 0x5555557e9a7f <exec_byte_code+2913>, 0x5555557e9a81 <exec_byte_code+2915>, 0x5555557e9a83 <exec_byte_code+2917>, 0x5555557e9a85 <exec_byte_code+2919>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a87 <exec_byte_code+2921>, 0x5555557e9a39 <exec_byte_code+2843>, 0x5555557e9a50 <exec_byte_code+2866>, 0x5555557ea2e7 <exec_byte_code+5065>, 0x5555557ea1ca <exec_byte_code+4780>, 0x5555557ea1c1 <exec_byte_code+4771>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ea521 <exec_byte_code+5635>, 0x5555557ea602 <exec_byte_code+5860>, 0x5555557ea65f <exec_byte_code+5953>, 0x5555557ea6bf <exec_byte_code+6049>, 0x5555557ea721 <exec_byte_code+6147>, 0x5555557e95b7 <exec_byte_code+1689>, 0x5555557e9632 <exec_byte_code+1812>, 0x5555557ea79a <exec_byte_code+6268>, 0x5555557e9528 <exec_byte_code+1546>, 0x5555557e969a <exec_byte_code+1916>, 0x5555557ea802 <exec_byte_code+6372>, 0x5555557ea86a <exec_byte_code+6476>, 0x5555557ea8b2 <exec_byte_code+6548>, 0x5555557ea91a <exec_byte_code+6652>, 0x5555557ea980 <exec_byte_code+6754>, 0x5555557eaa66 <exec_byte_code+6984>, 0x5555557eaaae <exec_byte_code+7056>, 0x5555557eab16 <exec_byte_code+7160>, 0x5555557eab9b <exec_byte_code+7293>, 0x5555557eabe3 <exec_byte_code+7365>, 0x5555557eac2b <exec_byte_code+7437>, 0x5555557eac93 <exec_byte_code+7541>, 0x5555557eacfb <exec_byte_code+7645>, 0x5555557ead63 <exec_byte_code+7749>, 0x5555557eade8 <exec_byte_code+7882>, 0x5555557eae37 <exec_byte_code+7961>, 0x5555557eae86 <exec_byte_code+8040>, 0x5555557eaf4d <exec_byte_code+8239>, 0x5555557eafef <exec_byte_code+8401>, 0x5555557eb091 <exec_byte_code+8563>, 0x5555557eb0fe <exec_byte_code+8672>, 0x5555557eb16b <exec_byte_code+8781>, 0x5555557eb1d8 <exec_byte_code+8890>, 0x5555557eb245 <exec_byte_code+8999>, 0x5555557eb2b2 <exec_byte_code+9108>, 0x5555557eb301 <exec_byte_code+9187>, 0x5555557eb3a4 <exec_byte_code+9350>, 0x5555557eb3f3 <exec_byte_code+9429>, 0x5555557eb442 <exec_byte_code+9508>, 0x5555557eb491 <exec_byte_code+9587>, 0x5555557eb597 <exec_byte_code+9849>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557eb5f2 <exec_byte_code+9940>, 0x5555557eb63a <exec_byte_code+10012>, 0x5555557eb6fc <exec_byte_code+10206>, 0x5555557eb765 <exec_byte_code+10311>, 0x5555557eb7c0 <exec_byte_code+10402>, 0x5555557eb808 <exec_byte_code+10474>, 0x5555557eb84b <exec_byte_code+10541>, 0x5555557eb88e <exec_byte_code+10608>, 0x5555557eb8d9 <exec_byte_code+10683>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557eb931 <exec_byte_code+10771>, 0x5555557eb974 <exec_byte_code+10838>, 0x5555557eb9b7 <exec_byte_code+10905>, 0x5555557eb9fa <exec_byte_code+10972>, 0x5555557eba3d <exec_byte_code+11039>, 0x5555557eba80 <exec_byte_code+11106>, 0x5555557ea041 <exec_byte_code+4387>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ebac8 <exec_byte_code+11178>, 0x5555557ebb1a <exec_byte_code+11260>, 0x5555557ebb62 <exec_byte_code+11332>, 0x5555557ebbaa <exec_byte_code+11404>, 0x5555557ebc12 <exec_byte_code+11508>, 0x5555557ebc7a <exec_byte_code+11612>, 0x5555557ebcc2 <exec_byte_code+11684>, 0x5555557ebd7f <exec_byte_code+11873>, 0x5555557ebde7 <exec_byte_code+11977>, 0x5555557ebe4f <exec_byte_code+12081>, 0x5555557ebeb7 <exec_byte_code+12185>, 0x5555557ebefa <exec_byte_code+12252>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9f87 <exec_byte_code+4201>, 0x5555557e9b31 <exec_byte_code+3091>, 0x5555557e9496 <exec_byte_code+1400>, 0x5555557e9be2 <exec_byte_code+3268>, 0x5555557e9c66 <exec_byte_code+3400>, 0x5555557e9ce7 <exec_byte_code+3529>, 0x5555557e9f3b <exec_byte_code+4125>, 0x5555557e9f50 <exec_byte_code+4146>, 0x5555557e987f <exec_byte_code+2401>, 0x5555557ea00a <exec_byte_code+4332>, 0x5555557ea078 <exec_byte_code+4442>, 0x5555557ea109 <exec_byte_code+4587>, 0x5555557ea152 <exec_byte_code+4660>, 0x5555557ea333 <exec_byte_code+5141>, 0x5555557ea3b0 <exec_byte_code+5266>, 0x5555557ea435 <exec_byte_code+5399>, 0x5555557ea49b <exec_byte_code+5501>, 0x5555557e9ae3 <exec_byte_code+3013>, 0x5555557ebf42 <exec_byte_code+12324>, 0x5555557ebfc7 <exec_byte_code+12457>, 0x5555557ec00f <exec_byte_code+12529>, 0x5555557ec057 <exec_byte_code+12601>, 0x5555557ec09f <exec_byte_code+12673>, 0x5555557ec0e7 <exec_byte_code+12745>, 0x5555557ec14f <exec_byte_code+12849>, 0x5555557ec1b7 <exec_byte_code+12953>, 0x5555557ec21f <exec_byte_code+13057>, 0x5555557ec287 <exec_byte_code+13161>, 0x5555557ec398 <exec_byte_code+13434>, 0x5555557ec400 <exec_byte_code+13538>, 0x5555557ec468 <exec_byte_code+13642>, 0x5555557ec4b0 <exec_byte_code+13714>, 0x5555557ec518 <exec_byte_code+13818>, 0x5555557ec580 <exec_byte_code+13922>, 0x5555557ec5c8 <exec_byte_code+13994>, 0x5555557ec610 <exec_byte_code+14066>, 0x5555557eb4e0 <exec_byte_code+9666>, 0x5555557eb52f <exec_byte_code+9745>, 0x5555557ec65f <exec_byte_code+14145>, 0x5555557ec6c1 <exec_byte_code+14243>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557e9d68 <exec_byte_code+3658>, 0x5555557e9d85 <exec_byte_code+3687>, 0x5555557e9df4 <exec_byte_code+3798>, 0x5555557e9e63 <exec_byte_code+3909>, 0x5555557e9ecf <exec_byte_code+4017>, 0x5555557ea9ee <exec_byte_code+6864>, 0x5555557eaed5 <exec_byte_code+8119>, 0x5555557eb684 <exec_byte_code+10086>, 0x5555557ec8ba <exec_byte_code+14748>, 0x5555557ec92f <exec_byte_code+14865>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec9c5 <exec_byte_code+15015>, 0x5555557eca4c <exec_byte_code+15150>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ec723 <exec_byte_code+14341>, 0x5555557ecb9a <exec_byte_code+15484> <repeats 64 times>} const_length = 83 bytestr_length = 967 vectorp = 0x5555564f6b80 quitcounter = 45 '-' stack_items = 32 sa_avail = 15161 sa_count = 9 alloc = 0x7fffffffb340 stack_base = 0x7fffffffb340 top = 0x7fffffffb3d8 stack_lim = 0x7fffffffb440 bytestr_data = 0x7fffffffb440 "\305\062\306\003\306\307\002P\003\"\210\310\002\311\"\204U" pc = 0x7fffffffb7f7 "\266\220\060\202\305\003\201R" count = 9 result = XIL(0x7fffffffb8a8) #48 0x000055555579ec21 in fetch_and_exec_byte_code (fun=XIL(0x5555564f6e1d), syms_left=make_fixnum(514), nargs=2, args=0x7fffffffbc98) at ../../master/src/eval.c:3036 #49 0x000055555579efae in funcall_lambda (fun=XIL(0x5555564f6e1d), nargs=2, arg_vector=0x7fffffffbc98) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffbc20) syms_left = make_fixnum(514) next = XIL(0x1) lexenv = XIL(0x1800000000) count = 9 i = 93824994606300 optional = false rest = false #50 0x000055555579e5c6 in Ffuncall (nargs=3, args=0x7fffffffbc90) at ../../master/src/eval.c:2916 fun = XIL(0x5555564f6e1d) original_fun = XIL(0x873290) funcar = XIL(0) numargs = 2 val = XIL(0) count = 8 #51 0x000055555579d89f in Fapply (nargs=2, args=0x7fffffffbd40) at ../../master/src/eval.c:2544 i = 3 funcall_nargs = 3 funcall_args = 0x7fffffffbc90 spread_arg = XIL(0) fun = XIL(0x5555564f6e1d) sa_avail = 16360 sa_count = 8 numargs = 2 retval = XIL(0) #52 0x000055555579de09 in apply1 (fn=XIL(0x873290), arg=XIL(0x555556d186f3)) at ../../master/src/eval.c:2760 #53 0x00005555557fa958 in read_process_output_call (fun_and_args=XIL(0x555556d186e3)) at ../../master/src/process.c:5930 #54 0x000055555579ad70 in internal_condition_case_1 (bfun=0x5555557fa92a <read_process_output_call>, arg=XIL(0x555556d186e3), handlers=XIL(0x90), hfun=0x5555557fa95a <read_process_output_error_handler>) at ../../master/src/eval.c:1463 val = XIL(0x555556da8c1d) c = 0x555555dc0550 #55 0x00005555557fb24a in read_and_dispose_of_process_output (p=0x555556da8c18, chars=0x7fffffffbe50 "-env GJS_DEBUG_TOPICS=JS&_ERROR;JS&_LOG -env USER=md5i -env XDG_SESSION_TYPE=wayland -env SHLVL=0 -env HOME=/home/md5i -env DESKTOP_SESSION=gnome -env GIO_LAUNCHED_DESKTOP_FILE=/home/md5i/.local/share"..., nbytes=1383, coding=0x555555eccd50) at ../../master/src/process.c:6153 outstream = XIL(0x873290) text = XIL(0x555556db8a84) outer_running_asynch_code = false waiting = -1 #56 0x00005555557fae68 in read_process_output (proc=XIL(0x555556da8c1d), channel=4) at ../../master/src/process.c:6063 nbytes = 1383 p = 0x555556da8c18 coding = 0x555555eccd50 carryover = 0 readmax = 4096 count = 5 odeactivate = XIL(0) chars = 0x7fffffffbe50 "-env GJS_DEBUG_TOPICS=JS&_ERROR;JS&_LOG -env USER=md5i -env XDG_SESSION_TYPE=wayland -env SHLVL=0 -env HOME=/home/md5i -env DESKTOP_SESSION=gnome -env GIO_LAUNCHED_DESKTOP_FILE=/home/md5i/.local/share"... sa_avail = 12224 sa_count = 5 #57 0x00005555557fa1a3 in wait_reading_process_output (time_limit=0, nsecs=0, read_kbd=-1, do_display=true, wait_for_cell=XIL(0), wait_proc=0x0, just_wait_proc=0) at ../../master/src/process.c:5749 nread = -2011028988 process_skipped = false child_fd = 6 channel = 4 nfds = 1 Available = { fds_bits = {16, 0 <repeats 15 times>} } Writeok = { fds_bits = {0 <repeats 16 times>} } check_write = true check_delay = 0 no_avail = false xerrno = 2 proc = XIL(0x555556da8c1d) timeout = { tv_sec = 40, tv_nsec = 613408153 } end_time = { tv_sec = 140737488343328, tv_nsec = 93824994634785 } timer_delay = { tv_sec = 40, tv_nsec = 613408153 } got_output_end_time = { tv_sec = 1616263190, tv_nsec = 619007247 } wait = FOREVER got_some_output = -1 prev_wait_proc_nbytes_read = 0 retry_for_async = false count = 4 now = { tv_sec = 0, tv_nsec = -1 } #58 0x00005555556ecbfd in kbd_buffer_get_event (kbp=0x7fffffffd478, used_mouse_menu=0x7fffffffdabf, end_time=0x0) at ../../master/src/keyboard.c:3869 do_display = true obj = XIL(0x24e5275c) #59 0x00005555556e8f68 in read_event_from_main_queue (end_time=0x0, local_getcjmp=0x7fffffffd850, used_mouse_menu=0x7fffffffdabf) at ../../master/src/keyboard.c:2159 c = XIL(0) save_jump = {{ __jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = { __val = {0 <repeats 16 times>} } }} kb = 0x3a352944002 count = 3 #60 0x00005555556e9201 in read_decoded_event_from_main_queue (end_time=0x0, local_getcjmp=0x7fffffffd850, prev_event=XIL(0), used_mouse_menu=0x7fffffffdabf) at ../../master/src/keyboard.c:2223 nextevt = XIL(0) frame = 0x0 terminal = 0x1556ff75f events = {XIL(0x555556ae1d5d), XIL(0x555555cc4f80), XIL(0), XIL(0), XIL(0x7fffffffd668), XIL(0x5555556e3c40), XIL(0), XIL(0x7fffffffd690), XIL(0x5555556e685b), XIL(0x555556d18eb3), XIL(0), XIL(0), XIL(0x7fffffffd6c0), make_fixnum(23456248475707), XIL(0), XIL(0x1ffffd6c0)} n = 0 #61 0x00005555556ea809 in read_char (commandflag=1, map=XIL(0x555556d18ed3), prev_event=XIL(0), used_mouse_menu=0x7fffffffdabf, end_time=0x0) at ../../master/src/keyboard.c:2833 c = XIL(0) jmpcount = 3 local_getcjmp = {{ __jmpbuf = {0, -8377641525854313018, 93824992490624, 0, 0, 0, -8377641526313589306, -2384103731268917818}, __mask_was_saved = 0, __saved_mask = { __val = {93824994503983, 140737259836008, 140737259835960, 0, 46912259801784, 0, 140737259836008, 93825000034176, 0, 0, 140737488345344, 93824993978237, 4066447928, 93825000034176, 0, 0} } }} save_jump = {{ __jmpbuf = {0, 32880, 140737488345232, 140737266328160, 140737488345200, 140737259226872, 140737259226872, 0}, __mask_was_saved = 0, __saved_mask = { __val = {93825000067056, 93824994486998, 0, 140737488345184, 93824994508583, 140737266328160, 12884891664, 0, 32880, 140737259226872, 140737266328160, 93824995129573, 51539607552, 140737259226877, 140737259226872, 93824995130016} } }} tem = XIL(0) save = XIL(0x5555556fe77d) previous_echo_area_message = XIL(0) also_record = XIL(0) reread = false recorded = false polling_stopped_here = true orig_kboard = 0x555555d07730 #62 0x00005555556f8848 in read_key_sequence (keybuf=0x7fffffffdcc0, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at ../../master/src/keyboard.c:9491 interrupted_kboard = 0x555555d07730 interrupted_frame = 0x555555d61a00 key = XIL(0) used_mouse_menu = false echo_local_start = 0 last_real_key_start = 0 keys_local_start = 0 new_binding = XIL(0) count = 3 t = 0 echo_start = 0 keys_start = 0 current_binding = XIL(0x555556d18ed3) first_unbound = 31 mock_input = 0 used_mouse_menu_history = {false <repeats 30 times>} fkey = { parent = XIL(0x555555d65f43), map = XIL(0x555555d65f43), start = 0, end = 0 } keytran = { parent = XIL(0x7ffff2c29383), map = XIL(0x7ffff2c29383), start = 0, end = 0 } indec = { parent = XIL(0x555555d65f33), map = XIL(0x555555d65f33), start = 0, end = 0 } shift_translated = false delayed_switch_frame = XIL(0) original_uppercase = XIL(0) original_uppercase_position = -1 dummyflag = false starting_buffer = 0x7ffff257c6f8 fake_prefixed_keys = XIL(0) first_event = XIL(0) second_event = XIL(0) #63 0x00005555556e6d1f in command_loop_1 () at ../../master/src/keyboard.c:1353 cmd = XIL(0x7fffffffde10) keybuf = {XIL(0x7fffffffdd40), XIL(0x7ffff2c42290), XIL(0x100000000), XIL(0), XIL(0), XIL(0x8520), XIL(0x130), XIL(0x555555ccd4a0), XIL(0x555555ccd4a0), XIL(0), XIL(0x7fffffffdd60), make_fixnum(23456248660141), make_fixnum(1073741824), XIL(0x7fffffffdd80), XIL(0x555555cc4f80), XIL(0), XIL(0), XIL(0x7fffffffdd60), XIL(0x5555557979dd), XIL(0xf257c6fd), XIL(0x7fffffffddc0), XIL(0x5555557a0538), XIL(0x555555cc4f80), XIL(0), XIL(0), XIL(0x7fffffffdda0), XIL(0x5555557979dd), XIL(0xf257c6fd), XIL(0x7fffffffdde0), make_fixnum(23456248654899)} i = 0 prev_modiff = 0 prev_buffer = 0x0 already_adjusted = false #64 0x000055555579acc9 in internal_condition_case (bfun=0x5555556e68d9 <command_loop_1>, handlers=XIL(0x90), hfun=0x5555556e6075 <cmd_error>) at ../../master/src/eval.c:1439 val = XIL(0x5555556e3c40) c = 0x555555dc03e0 #65 0x00005555556e65a1 in command_loop_2 (ignore=XIL(0)) at ../../master/src/keyboard.c:1094 val = XIL(0) #66 0x000055555579a4d7 in internal_catch (tag=XIL(0xd9e0), func=0x5555556e6574 <command_loop_2>, arg=XIL(0)) at ../../master/src/eval.c:1189 val = XIL(0xd9e0) c = 0x555555da9710 #67 0x00005555556e6540 in command_loop () at ../../master/src/keyboard.c:1073 #68 0x00005555556e5c46 in recursive_edit_1 () at ../../master/src/keyboard.c:720 count = 1 val = XIL(0x7fffffffdf50) #69 0x00005555556e5dc9 in Frecursive_edit () at ../../master/src/keyboard.c:789 count = 0 buffer = XIL(0) #70 0x00005555556e27f6 in main (argc=2, argv=0x7fffffffe1b8) at ../../master/src/emacs.c:2050 stack_bottom_variable = 0x7ffff617e053 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 1 temacs = 0x0 attempt_load_pdump = true rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = 0x0 sockfd = -1 module_assertions = false Lisp Backtrace: "kill-buffer" (0xfffeca60) 0x56e58d70 PVEC_COMPILED "substitute-command-keys" (0xfffed728) "redisplay_internal (C function)" (0x0) "delete-process" (0xffff9dd8) "server-delete-client" (0xffffa3b0) "server-execute" (0xffffa970) 0x56dff400 PVEC_COMPILED "server-execute-continuation" (0xffffb3e0) "server-process-filter" (0xffffbc98) -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-19 14:21 ` Michael Welsh Duggan @ 2021-03-19 15:00 ` Eli Zaretskii 2021-03-19 15:14 ` Michael Welsh Duggan 2021-03-23 14:18 ` Michael Welsh Duggan 0 siblings, 2 replies; 160+ messages in thread From: Eli Zaretskii @ 2021-03-19 15:00 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Cc: Michael Welsh Duggan <mwd@md5i.com>, > "schwab@linux-m68k.org" > <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > Date: Fri, 19 Mar 2021 10:21:18 -0400 > > Lisp Backtrace: > "kill-buffer" (0xfffeca60) > 0x56e58d70 PVEC_COMPILED > "substitute-command-keys" (0xfffed728) > "redisplay_internal (C function)" (0x0) Thanks. This case isn't interesting, because this is a temporary buffer we don't display. So I guess we need to augment the breakpoint condition: break buffer.c:1840 if redisplaying_p != 0 && b->window_count > 0 ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-19 15:00 ` Eli Zaretskii @ 2021-03-19 15:14 ` Michael Welsh Duggan 2021-03-23 14:18 ` Michael Welsh Duggan 1 sibling, 0 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-19 15:14 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@cert.org> >> Cc: Michael Welsh Duggan <mwd@md5i.com>, >> "schwab@linux-m68k.org" >> <schwab@linux-m68k.org>, >> "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> >> Date: Fri, 19 Mar 2021 10:21:18 -0400 >> >> Lisp Backtrace: >> "kill-buffer" (0xfffeca60) >> 0x56e58d70 PVEC_COMPILED >> "substitute-command-keys" (0xfffed728) >> "redisplay_internal (C function)" (0x0) > > Thanks. This case isn't interesting, because this is a temporary > buffer we don't display. So I guess we need to augment the breakpoint > condition: > > break buffer.c:1840 if redisplaying_p != 0 && b->window_count > 0 Okay. I'll run with that for a while and see if I can't trigger the crash (or breakpoint) again. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-19 15:00 ` Eli Zaretskii 2021-03-19 15:14 ` Michael Welsh Duggan @ 2021-03-23 14:18 ` Michael Welsh Duggan 2021-03-23 15:02 ` Eli Zaretskii 2021-03-23 15:23 ` martin rudalics 1 sibling, 2 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-23 14:18 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@cert.org> >> Cc: Michael Welsh Duggan <mwd@md5i.com>, >> "schwab@linux-m68k.org" >> <schwab@linux-m68k.org>, >> "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> >> Date: Fri, 19 Mar 2021 10:21:18 -0400 >> >> Lisp Backtrace: >> "kill-buffer" (0xfffeca60) >> 0x56e58d70 PVEC_COMPILED >> "substitute-command-keys" (0xfffed728) >> "redisplay_internal (C function)" (0x0) > > Thanks. This case isn't interesting, because this is a temporary > buffer we don't display. So I guess we need to augment the breakpoint > condition: > > break buffer.c:1840 if redisplaying_p != 0 && b->window_count > 0 This triggered today. #0 0x00005555555e1b6d in redisplay_internal () at ../../master/src/xdisp.c:15789 w = 0x555557ef0018 sw = 0x555557ef0018 fr = 0x555556d8c360 pending = false must_finish = true match_p = true tlbufpos = { charpos = 127, bytepos = 127 } tlendpos = { charpos = 0, bytepos = 0 } number_of_visible_frames = 6 count = 3 sf = 0x555556d8c360 polling_stopped_here = false tail = XIL(0) frame = XIL(0x555555d61a05) hscroll_retries = 0 garbaged_frame_retries = 0 consider_all_windows_p = false update_miniwindow_p = true #1 0x00005555555e072a in redisplay () at ../../master/src/xdisp.c:15245 #2 0x00005555556e9a9d in read_char (commandflag=1, map=XIL(0x555559e15883), prev_event=XIL(0), used_mouse_menu=0x7fffffffdabf, end_time=0x0) at ../../master/src/keyboard.c:2496 echo_current = false c = XIL(0) jmpcount = 93825000034176 local_getcjmp = {{ __jmpbuf = {93825000067056, 0, 93825000034176, 0, 0, 140737488345232, 93824994486998, 93825057660325}, __mask_was_saved = -10032, __saved_mask = { __val = {93824994503983, 140737259836008, 140737259835960, 0, 46912259801784, 0, 140737259836008, 93825000034176, 0, 0, 140737488345344, 93824993978237, 4066447928, 93825000034176, 0, 0} } }} save_jump = {{ __jmpbuf = {0, 32880, 0, 140737266328160, 0, 0, 93825057660320, 0}, __mask_was_saved = 0, __saved_mask = { __val = {93825000067056, 93824994486998, 0, 140737488345184, 93824994508583, 140737266328160, 12884891664, 0, 32880, 93825057660320, 140737266328160, 93824995129573, 51539607552, 93825057660325, 93825057660320, 93824995130016} } }} tem = XIL(0) save = XIL(0x5555556fe77d) previous_echo_area_message = XIL(0) also_record = XIL(0) reread = false recorded = false polling_stopped_here = false orig_kboard = 0x555555df8ad0 #3 0x00005555556f8848 in read_key_sequence (keybuf=0x7fffffffdcc0, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at ../../master/src/keyboard.c:9491 interrupted_kboard = 0x555555df8ad0 interrupted_frame = 0x555556d8c360 key = XIL(0x555555713fdd) used_mouse_menu = false echo_local_start = 0 last_real_key_start = 0 keys_local_start = 0 new_binding = XIL(0x555556e620a0) count = 3 t = 0 echo_start = 0 keys_start = 0 current_binding = XIL(0x555559e15883) first_unbound = 31 mock_input = 0 used_mouse_menu_history = {false <repeats 30 times>} fkey = { parent = XIL(0x555556b8de53), map = XIL(0x555556b8de53), start = 0, end = 0 } keytran = { parent = XIL(0x7ffff2c29383), map = XIL(0x7ffff2c29383), start = 0, end = 0 } indec = { parent = XIL(0x555556b8de43), map = XIL(0x555556b8de43), start = 0, end = 0 } shift_translated = false delayed_switch_frame = XIL(0) original_uppercase = XIL(0) original_uppercase_position = -1 dummyflag = false starting_buffer = 0x5555593b9da0 fake_prefixed_keys = XIL(0) first_event = XIL(0) second_event = XIL(0) #4 0x00005555556e6d1f in command_loop_1 () at ../../master/src/keyboard.c:1353 cmd = XIL(0x7fffffffde10) keybuf = {XIL(0), XIL(0x7ffff2c2932d), make_fixnum(23456248600171), XIL(0x15665d0), XIL(0x7fffffffdd70), XIL(0x55555579dee5), XIL(0x15665d0), XIL(0x7ffff25804c4), XIL(0x555559e15ae3), XIL(0x7ffff2c2932d), XIL(0x7ffff2c2932d), XIL(0x555559e15ae3), XIL(0x7ffff25804c4), XIL(0x15665d0), XIL(0), XIL(0), XIL(0x555555cc4f80), XIL(0), XIL(0), XIL(0x7fffffffdd70), XIL(0x5555556e3c40), XIL(0xffffddc0), XIL(0x555555cc4f80), XIL(0), XIL(0), XIL(0x7fffffffdda0), XIL(0x5555557979dd), make_fixnum(0), XIL(0x7fffffffdde0), make_fixnum(23456248654899)} i = 1 prev_modiff = 0 prev_buffer = 0x0 already_adjusted = false #5 0x000055555579acc9 in internal_condition_case (bfun=0x5555556e68d9 <command_loop_1>, handlers=XIL(0x90), hfun=0x5555556e6075 <cmd_error>) at ../../master/src/eval.c:1439 val = XIL(0x5555556e3c40) c = 0x555555dc03e0 #6 0x00005555556e65a1 in command_loop_2 (ignore=XIL(0)) at ../../master/src/keyboard.c:1094 val = make_fixnum(0) #7 0x000055555579a4d7 in internal_catch (tag=XIL(0xd9e0), func=0x5555556e6574 <command_loop_2>, arg=XIL(0)) at ../../master/src/eval.c:1189 val = XIL(0xd9e0) c = 0x555555da9710 #8 0x00005555556e6540 in command_loop () at ../../master/src/keyboard.c:1073 #9 0x00005555556e5c46 in recursive_edit_1 () at ../../master/src/keyboard.c:720 count = 1 val = XIL(0x7fffffffdf50) #10 0x00005555556e5dc9 in Frecursive_edit () at ../../master/src/keyboard.c:789 count = 0 buffer = XIL(0) #11 0x00005555556e27f6 in main (argc=2, argv=0x7fffffffe1b8) at ../../master/src/emacs.c:2050 stack_bottom_variable = 0x7ffff617e053 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 1 temacs = 0x0 attempt_load_pdump = true rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = 0x0 sockfd = -1 module_assertions = false Lisp Backtrace: "redisplay_internal (C function)" (0x0) -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-23 14:18 ` Michael Welsh Duggan @ 2021-03-23 15:02 ` Eli Zaretskii 2021-03-23 15:08 ` Michael Welsh Duggan 2021-03-23 15:23 ` martin rudalics 1 sibling, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-23 15:02 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Cc: "mwd@md5i.com" <mwd@md5i.com>, > "schwab@linux-m68k.org" > <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > Date: Tue, 23 Mar 2021 10:18:25 -0400 > > > break buffer.c:1840 if redisplaying_p != 0 && b->window_count > 0 > > This triggered today. > > #0 0x00005555555e1b6d in redisplay_internal () > at ../../master/src/xdisp.c:15789 I don't understand: the breakpoint was supposed to be on line 1840 in buffer.c, so why does frame #0 show line 15789 in xdisp.c? What am I missing here? Is this the right backtrace? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-23 15:02 ` Eli Zaretskii @ 2021-03-23 15:08 ` Michael Welsh Duggan 2021-03-23 16:42 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-23 15:08 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@cert.org> >> Cc: "mwd@md5i.com" <mwd@md5i.com>, >> "schwab@linux-m68k.org" >> <schwab@linux-m68k.org>, >> "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> >> Date: Tue, 23 Mar 2021 10:18:25 -0400 >> >> > break buffer.c:1840 if redisplaying_p != 0 && b->window_count > 0 >> >> This triggered today. >> >> #0 0x00005555555e1b6d in redisplay_internal () >> at ../../master/src/xdisp.c:15789 > > I don't understand: the breakpoint was supposed to be on line 1840 in > buffer.c, so why does frame #0 show line 15789 in xdisp.c? What am I > missing here? Is this the right backtrace? My mistake. It was a segfault. The breakpoint did not trigger. Here's the breakpoint in question: 5 breakpoint keep y 0x0000555555713580 in Fkill_buffer at ../../master/src/buffer.c:1840 inf 1, 2 stop only if redisplaying_p != 0 && b->window_count > 0 -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-23 15:08 ` Michael Welsh Duggan @ 2021-03-23 16:42 ` Eli Zaretskii 0 siblings, 0 replies; 160+ messages in thread From: Eli Zaretskii @ 2021-03-23 16:42 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Cc: "mwd@md5i.com" <mwd@md5i.com>, > "schwab@linux-m68k.org" > <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > Date: Tue, 23 Mar 2021 11:08:36 -0400 > > >> #0 0x00005555555e1b6d in redisplay_internal () > >> at ../../master/src/xdisp.c:15789 > > > > I don't understand: the breakpoint was supposed to be on line 1840 in > > buffer.c, so why does frame #0 show line 15789 in xdisp.c? What am I > > missing here? Is this the right backtrace? > > My mistake. It was a segfault. The breakpoint did not trigger. Here's > the breakpoint in question: > > 5 breakpoint keep y 0x0000555555713580 in Fkill_buffer > at ../../master/src/buffer.c:1840 inf 1, 2 > stop only if redisplaying_p != 0 && b->window_count > 0 Then I guess the hypothesis about the scenario which causes the crash was wrong. Let's see if Martin's suggestion has better luck. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-23 14:18 ` Michael Welsh Duggan 2021-03-23 15:02 ` Eli Zaretskii @ 2021-03-23 15:23 ` martin rudalics 2021-03-23 15:53 ` Michael Welsh Duggan 1 sibling, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-03-23 15:23 UTC (permalink / raw) To: Michael Welsh Duggan, Eli Zaretskii Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org >> break buffer.c:1840 if redisplaying_p != 0 && b->window_count > 0 > > This triggered today. Could you try running Emacs inserting before the last two lines of `switch-to-prev-buffer' ;; Return new-buffer. new-buffer)) a check so this stretch appears as (when (and (eq bury-or-kill 'kill) (eq new-buffer old-buffer)) (error "Could not replace buffer %s in window %s" old-buffer window)) ;; Return new-buffer. new-buffer)) If `replace-buffer-in-windows' is the culprit, this should trigger the bug sooner. Thanks, martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-23 15:23 ` martin rudalics @ 2021-03-23 15:53 ` Michael Welsh Duggan 2021-03-23 16:45 ` Eli Zaretskii 2021-03-24 6:53 ` martin rudalics 0 siblings, 2 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-23 15:53 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > >> break buffer.c:1840 if redisplaying_p != 0 && b->window_count > 0 > > > > This triggered today. > > Could you try running Emacs inserting before the last two lines of > `switch-to-prev-buffer' > > ;; Return new-buffer. > new-buffer)) > > a check so this stretch appears as > > (when (and (eq bury-or-kill 'kill) (eq new-buffer old-buffer)) > (error "Could not replace buffer %s in window %s" > old-buffer window)) > > ;; Return new-buffer. > new-buffer)) > > If `replace-buffer-in-windows' is the culprit, this should trigger the > bug sooner. > > Thanks, martin Okay. Running with this. I still have the other emacs that segfaulted in gdb if you want/need anything else from it. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-23 15:53 ` Michael Welsh Duggan @ 2021-03-23 16:45 ` Eli Zaretskii 2021-03-24 6:53 ` martin rudalics 1 sibling, 0 replies; 160+ messages in thread From: Eli Zaretskii @ 2021-03-23 16:45 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Cc: Eli Zaretskii <eliz@gnu.org>, "mwd@md5i.com" <mwd@md5i.com>, > "schwab@linux-m68k.org" <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" > <47244@debbugs.gnu.org> > Date: Tue, 23 Mar 2021 11:53:52 -0400 > > I still have the other emacs that segfaulted in gdb if you want/need > anything else from it. It's identical to the original one, so I think you can close that session. Thanks. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-23 15:53 ` Michael Welsh Duggan 2021-03-23 16:45 ` Eli Zaretskii @ 2021-03-24 6:53 ` martin rudalics 2021-03-24 14:14 ` Michael Welsh Duggan 1 sibling, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-03-24 6:53 UTC (permalink / raw) To: Michael Welsh Duggan Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org [-- Attachment #1: Type: text/plain, Size: 231 bytes --] > Okay. Running with this. The attached one should make more sense. Please use that. > I still have the other emacs that segfaulted > in gdb if you want/need anything else from it. I think you can close it. Thanks, martin [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: window.el.diff --] [-- Type: text/x-patch; name="window.el.diff", Size: 543 bytes --] diff --git a/lisp/window.el b/lisp/window.el index cfd9876ed0..7a636bb039 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -4686,6 +4686,12 @@ switch-to-prev-buffer (set-window-next-buffers window (delq buffer (window-next-buffers window))))) + (when (and (eq bury-or-kill 'kill) + (window-live-p window) + (eq (window-buffer window) old-buffer)) + (error "Could not replace buffer %s in window %s" + old-buffer window)) + ;; Return new-buffer. new-buffer)) ^ permalink raw reply related [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-24 6:53 ` martin rudalics @ 2021-03-24 14:14 ` Michael Welsh Duggan 2021-03-24 16:09 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-24 14:14 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > Okay. Running with this. > > The attached one should make more sense. Please use that. I did, and the SEGFAULT happened fairly shortly afterward. The error did not trigger, so the cause is still unknown. I'll keep the gdb session around, but that backtrace is pretty much the same. > > I still have the other emacs that segfaulted > > in gdb if you want/need anything else from it. > > I think you can close it. > > Thanks, martin > -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-24 14:14 ` Michael Welsh Duggan @ 2021-03-24 16:09 ` martin rudalics 2021-03-25 2:19 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-03-24 16:09 UTC (permalink / raw) To: Michael Welsh Duggan Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org >> The attached one should make more sense. Please use that. > > I did, and the SEGFAULT happened fairly shortly afterward. The error > did not trigger, so the cause is still unknown. I'll keep the gdb > session around, but that backtrace is pretty much the same. I'm not surprised. The check for `replace-buffer-in-windows' does pretty much the same as Eli's approach. You just don't have to run Emacs in the debugger in order to use it. Maybe try now: diff --git a/src/buffer.c b/src/buffer.c index 8e33162989..9ca5731bcf 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -2151,6 +2151,9 @@ set_buffer_internal_1 (register struct buffer *b) BUFFER_CHECK_INDIRECTION (b); + if (!BUFFER_LIVE_P (b)) + error ("Selecting deleted buffer"); + old_buf = current_buffer; current_buffer = b; last_known_column_point = -1; /* Invalidate indentation cache. */ martin ^ permalink raw reply related [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-24 16:09 ` martin rudalics @ 2021-03-25 2:19 ` Michael Welsh Duggan 2021-03-25 6:25 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-25 2:19 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org, Michael Welsh Duggan martin rudalics <rudalics@gmx.at> writes: >>> The attached one should make more sense. Please use that. >> >> I did, and the SEGFAULT happened fairly shortly afterward. The error >> did not trigger, so the cause is still unknown. I'll keep the gdb >> session around, but that backtrace is pretty much the same. > > I'm not surprised. The check for `replace-buffer-in-windows' does > pretty much the same as Eli's approach. You just don't have to run > Emacs in the debugger in order to use it. > > Maybe try now: > > diff --git a/src/buffer.c b/src/buffer.c > index 8e33162989..9ca5731bcf 100644 > --- a/src/buffer.c > +++ b/src/buffer.c > @@ -2151,6 +2151,9 @@ set_buffer_internal_1 (register struct buffer *b) > > BUFFER_CHECK_INDIRECTION (b); > > + if (!BUFFER_LIVE_P (b)) > + error ("Selecting deleted buffer"); > + > old_buf = current_buffer; > current_buffer = b; > last_known_column_point = -1; /* Invalidate indentation cache. */ Okay. Building now and will run until...something happens? Should I be expecting an Emacs error from this? Should I breakpoint the error() clause? -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-25 2:19 ` Michael Welsh Duggan @ 2021-03-25 6:25 ` Eli Zaretskii 2021-03-29 14:06 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-25 6:25 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244, mwd > From: Michael Welsh Duggan <mwd@md5i.com> > Cc: Michael Welsh Duggan <mwd@cert.org>, Eli Zaretskii <eliz@gnu.org>, > "mwd@md5i.com" <mwd@md5i.com>, "schwab@linux-m68k.org" > <schwab@linux-m68k.org>, "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > Date: Wed, 24 Mar 2021 22:19:35 -0400 > > > --- a/src/buffer.c > > +++ b/src/buffer.c > > @@ -2151,6 +2151,9 @@ set_buffer_internal_1 (register struct buffer *b) > > > > BUFFER_CHECK_INDIRECTION (b); > > > > + if (!BUFFER_LIVE_P (b)) > > + error ("Selecting deleted buffer"); > > + > > old_buf = current_buffer; > > current_buffer = b; > > last_known_column_point = -1; /* Invalidate indentation cache. */ > > Okay. Building now and will run until...something happens? Should I be > expecting an Emacs error from this? Yes. > Should I breakpoint the error() clause? Better put a breakpoint on this call to 'error' instead, because 'error' could be called for unrelated reasons, and it could be caught -- you don't want those cases. Thanks. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-25 6:25 ` Eli Zaretskii @ 2021-03-29 14:06 ` Michael Welsh Duggan 2021-03-29 14:28 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-29 14:06 UTC (permalink / raw) To: Eli Zaretskii Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org [-- Attachment #1: Type: text/plain, Size: 1210 bytes --] Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@md5i.com> >> Cc: Michael Welsh Duggan <mwd@cert.org>, Eli Zaretskii <eliz@gnu.org>, >> "mwd@md5i.com" <mwd@md5i.com>, "schwab@linux-m68k.org" >> <schwab@linux-m68k.org>, "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> >> Date: Wed, 24 Mar 2021 22:19:35 -0400 >> >> > --- a/src/buffer.c >> > +++ b/src/buffer.c >> > @@ -2151,6 +2151,9 @@ set_buffer_internal_1 (register struct buffer *b) >> > >> > BUFFER_CHECK_INDIRECTION (b); >> > >> > + if (!BUFFER_LIVE_P (b)) >> > + error ("Selecting deleted buffer"); >> > + >> > old_buf = current_buffer; >> > current_buffer = b; >> > last_known_column_point = -1; /* Invalidate indentation cache. */ >> >> Okay. Building now and will run until...something happens? Should I be >> expecting an Emacs error from this? > > Yes. > >> Should I breakpoint the error() clause? > > Better put a breakpoint on this call to 'error' instead, because > 'error' could be called for unrelated reasons, and it could be caught > -- you don't want those cases. I have now hit this breakpoint. Backtrace included. xbacktrace was empty. I'll leave the gdb session up for forensics. [-- Attachment #2: Type: text/plain, Size: 2540 bytes --] #0 set_buffer_internal_2 (b=0x5555578f43d8) at ../../master/src/buffer.c:2155 old_buf = 0x555555593480 <_start> tail = XIL(0) #1 0x0000555555713f28 in set_buffer_internal_1 (b=0x1) at ../../master/src/buffer.c:2141 #2 0x00005555556e4ec6 in set_buffer_internal (b=0x5555578f43d8) at ../../master/src/buffer.h:1184 #3 0x00005555556e6b21 in command_loop_1 () at ../../master/src/keyboard.c:1289 cmd = XIL(0x7fffffffde10) keybuf = {XIL(0), XIL(0x7ffff2c27c1d), XIL(0x555555765cd4), XIL(0x11cf6b0), XIL(0x7fffffffdd70), XIL(0x55555579e20b), XIL(0x11cf6b0), XIL(0x7ffff257e4c4), XIL(0x555559de7123), XIL(0x7ffff2c27c1d), XIL(0x7ffff2c27c1d), XIL(0x555559de7123), XIL(0x7ffff257e4c4), XIL(0x11cf6b0), XIL(0), XIL(0), XIL(0x555555cc5f80), XIL(0), XIL(0), XIL(0x7fffffffdd70), XIL(0x5555556e3c73), XIL(0xffffddc0), XIL(0x555555cc5f80), XIL(0), XIL(0), XIL(0x7fffffffdda0), XIL(0x555555797d03), make_fixnum(0), XIL(0x7fffffffdde0), XIL(0x55555579b3f4)} i = 1 prev_modiff = 0 prev_buffer = 0x0 already_adjusted = false #4 0x000055555579afef in internal_condition_case (bfun=0x5555556e690c <command_loop_1>, handlers=XIL(0x90), hfun=0x5555556e60a8 <cmd_error>) at ../../master/src/eval.c:1439 val = XIL(0x5555556e3c73) c = 0x555555dc13e0 #5 0x00005555556e65d4 in command_loop_2 (ignore=XIL(0)) at ../../master/src/keyboard.c:1094 val = make_fixnum(0) #6 0x000055555579a7fd in internal_catch (tag=XIL(0xd9e0), func=0x5555556e65a7 <command_loop_2>, arg=XIL(0)) at ../../master/src/eval.c:1189 val = XIL(0xd9e0) c = 0x555555daa710 #7 0x00005555556e6573 in command_loop () at ../../master/src/keyboard.c:1073 #8 0x00005555556e5c79 in recursive_edit_1 () at ../../master/src/keyboard.c:720 count = 1 val = XIL(0x7fffffffdf50) #9 0x00005555556e5dfc in Frecursive_edit () at ../../master/src/keyboard.c:789 count = 0 buffer = XIL(0) #10 0x00005555556e2829 in main (argc=2, argv=0x7fffffffe1b8) at ../../master/src/emacs.c:2050 stack_bottom_variable = 0x7ffff617e053 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 1 temacs = 0x0 attempt_load_pdump = true rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = 0x0 sockfd = -1 module_assertions = false [-- Attachment #3: Type: text/plain, Size: 41 bytes --] -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 14:06 ` Michael Welsh Duggan @ 2021-03-29 14:28 ` Eli Zaretskii 2021-03-29 14:39 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-29 14:28 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Cc: Michael Welsh Duggan <mwd@md5i.com>, "rudalics@gmx.at" > <rudalics@gmx.at>, > "schwab@linux-m68k.org" <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > Date: Mon, 29 Mar 2021 10:06:43 -0400 > > #0 set_buffer_internal_2 (b=0x5555578f43d8) at ../../master/src/buffer.c:2155 > old_buf = 0x555555593480 <_start> > tail = XIL(0) > #1 0x0000555555713f28 in set_buffer_internal_1 (b=0x1) > at ../../master/src/buffer.c:2141 > #2 0x00005555556e4ec6 in set_buffer_internal (b=0x5555578f43d8) > at ../../master/src/buffer.h:1184 > #3 0x00005555556e6b21 in command_loop_1 () at ../../master/src/keyboard.c:1289 > cmd = XIL(0x7fffffffde10) > keybuf = > {XIL(0), XIL(0x7ffff2c27c1d), XIL(0x555555765cd4), XIL(0x11cf6b0), XIL(0x7fffffffdd70), XIL(0x55555579e20b), XIL(0x11cf6b0), XIL(0x7ffff257e4c4), XIL(0x555559de7123), XIL(0x7ffff2c27c1d), XIL(0x7ffff2c27c1d), XIL(0x555559de7123), XIL(0x7ffff257e4c4), XIL(0x11cf6b0), XIL(0), XIL(0), XIL(0x555555cc5f80), XIL(0), XIL(0), XIL(0x7fffffffdd70), XIL(0x5555556e3c73), XIL(0xffffddc0), XIL(0x555555cc5f80), XIL(0), XIL(0), XIL(0x7fffffffdda0), XIL(0x555555797d03), make_fixnum(0), XIL(0x7fffffffdde0), XIL(0x55555579b3f4)} > i = 1 > prev_modiff = 0 > prev_buffer = 0x0 > already_adjusted = false OK, we are switching to the selected window's buffer, and that buffer was deleted. We still don't understand how this happens. Martin, any ideas? Please show the results of these commands: (gdb) p current_buffer->name_ (gdb) xstring (gdb) frame 3 (gdb) p cmd (gdb) xtype Thanks. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 14:28 ` Eli Zaretskii @ 2021-03-29 14:39 ` Michael Welsh Duggan 2021-03-29 15:02 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-29 14:39 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@cert.org> >> Cc: Michael Welsh Duggan <mwd@md5i.com>, "rudalics@gmx.at" >> <rudalics@gmx.at>, >> "schwab@linux-m68k.org" <schwab@linux-m68k.org>, >> "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> >> Date: Mon, 29 Mar 2021 10:06:43 -0400 >> >> #0 set_buffer_internal_2 (b=0x5555578f43d8) at ../../master/src/buffer.c:2155 >> old_buf = 0x555555593480 <_start> >> tail = XIL(0) >> #1 0x0000555555713f28 in set_buffer_internal_1 (b=0x1) >> at ../../master/src/buffer.c:2141 >> #2 0x00005555556e4ec6 in set_buffer_internal (b=0x5555578f43d8) >> at ../../master/src/buffer.h:1184 >> #3 0x00005555556e6b21 in command_loop_1 () at ../../master/src/keyboard.c:1289 >> cmd = XIL(0x7fffffffde10) >> keybuf = >> {XIL(0), XIL(0x7ffff2c27c1d), XIL(0x555555765cd4), XIL(0x11cf6b0), XIL(0x7fffffffdd70), XIL(0x55555579e20b), XIL(0x11cf6b0), XIL(0x7ffff257e4c4), XIL(0x555559de7123), XIL(0x7ffff2c27c1d), XIL(0x7ffff2c27c1d), XIL(0x555559de7123), XIL(0x7ffff257e4c4), XIL(0x11cf6b0), XIL(0), XIL(0), XIL(0x555555cc5f80), XIL(0), XIL(0), XIL(0x7fffffffdd70), XIL(0x5555556e3c73), XIL(0xffffddc0), XIL(0x555555cc5f80), XIL(0), XIL(0), XIL(0x7fffffffdda0), XIL(0x555555797d03), make_fixnum(0), XIL(0x7fffffffdde0), XIL(0x55555579b3f4)} >> i = 1 >> prev_modiff = 0 >> prev_buffer = 0x0 >> already_adjusted = false > > OK, we are switching to the selected window's buffer, and that buffer > was deleted. We still don't understand how this happens. Martin, any > ideas? > > Please show the results of these commands: > > (gdb) p current_buffer->name_ > (gdb) xstring > (gdb) frame 3 > (gdb) p cmd > (gdb) xtype (gdb) p current_buffer->name_ $4 = XIL(0x5555573519f4) (gdb) xstring $5 = (struct Lisp_String *) 0x5555573519f0 " *nntpd*" (gdb) frame 3 #3 0x00005555556e6b21 in command_loop_1 () at ../../master/src/keyboard.c:1289 1289 set_buffer_internal (XBUFFER (XWINDOW (selected_window)->contents)); (gdb) p cmd $6 = XIL(0x7fffffffde10) (gdb) xtype Lisp_Symbol I add also the following: (gdb) p cmd $7 = XIL(0x7fffffffde10) (gdb) xsymbol $8 = (struct Lisp_Symbol *) 0xd55555cc3d90 Cannot access memory at address 0xd55555cc3d98 -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 14:39 ` Michael Welsh Duggan @ 2021-03-29 15:02 ` Eli Zaretskii 2021-03-29 15:07 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-29 15:02 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Cc: "mwd@md5i.com" <mwd@md5i.com>, "rudalics@gmx.at" <rudalics@gmx.at>, > "schwab@linux-m68k.org" <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" > <47244@debbugs.gnu.org> > Date: Mon, 29 Mar 2021 10:39:35 -0400 > > (gdb) p current_buffer->name_ > $4 = XIL(0x5555573519f4) > (gdb) xstring > $5 = (struct Lisp_String *) 0x5555573519f0 > " *nntpd*" Any idea where could be the Lisp code that switches from " *nntpd*" to the buffer in the currently selected window? Perhaps some with-current-buffer thing somewhere? Since " *nntpd*" is probably a buffer where Gnus fetches articles, or otherwise communicates with an NNTP server, does this per chance happen in a separate thread in your session? (AFAIR, Gnus can fetch articles in a separate Lisp thread.) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 15:02 ` Eli Zaretskii @ 2021-03-29 15:07 ` Eli Zaretskii 2021-03-29 15:21 ` Michael Welsh Duggan 2021-03-29 15:21 ` Eli Zaretskii 0 siblings, 2 replies; 160+ messages in thread From: Eli Zaretskii @ 2021-03-29 15:07 UTC (permalink / raw) To: mwd; +Cc: mwd, schwab, 47244 > Date: Mon, 29 Mar 2021 18:02:24 +0300 > From: Eli Zaretskii <eliz@gnu.org> > Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org > > Any idea where could be the Lisp code that switches from " *nntpd*" to > the buffer in the currently selected window? Perhaps some > with-current-buffer thing somewhere? Actually, no, I don't think it can be with-current-buffer, it must be something else. I wonder how we ended up being at top-level with current buffer being " *nntpd*" and the selected window's buffer being something else, which was killed? Hmm... ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 15:07 ` Eli Zaretskii @ 2021-03-29 15:21 ` Michael Welsh Duggan 2021-03-29 15:26 ` Michael Welsh Duggan 2021-03-29 15:27 ` Eli Zaretskii 2021-03-29 15:21 ` Eli Zaretskii 1 sibling, 2 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-29 15:21 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> Date: Mon, 29 Mar 2021 18:02:24 +0300 >> From: Eli Zaretskii <eliz@gnu.org> >> Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org >> >> Any idea where could be the Lisp code that switches from " *nntpd*" to >> the buffer in the currently selected window? Perhaps some >> with-current-buffer thing somewhere? > > Actually, no, I don't think it can be with-current-buffer, it must be > something else. I wonder how we ended up being at top-level with > current buffer being " *nntpd*" and the selected window's buffer being > something else, which was killed? Hmm... I'm far from certain myself. I have no options specifically set regarding threads and I run Gnus from Emacs sources. What I can say is that every time I can remember this happening, the following is the sequence of events: 1) Emacs has locked up. This is presumably because: a) I have switched my work VPN on, and b) Gnus uses my existing IMAP connection to attempt to check for new articles due to this clause in my .gnus file: (gnus-demon-add-handler 'gnus-demon-scan-news 5 nil) 2) From the *Group* buffer I hit `C-g` to cancel its attempt, and `^` to switch to the Gnus *Sever* buffer. 3) In that buffer I go to the imap connection and type `C O`, which runs `gnus-server-close-server` and `gnus-server-open-server`, respectively. 4) I type `q` to exit the server buffer. This is when the breakpoint triggers. `g` calls the following function: (defun gnus-server-exit () "Return to the group buffer." (interactive nil gnus-server-mode) (gnus-run-hooks 'gnus-server-exit-hook) (gnus-kill-buffer (current-buffer)) (gnus-configure-windows 'group t)) `gnus-sever-exit-hook` is nil. The definition of `gnus-kill-buffer` is as follows: (defmacro gnus-kill-buffer (buffer) "Kill BUFFER and remove from the list of Gnus buffers." `(let ((buf ,buffer)) (when (gnus-buffer-live-p buf) (kill-buffer buf) (gnus-prune-buffers)))) (defun gnus-buffers () "Return a list of live Gnus buffers." (setq gnus-buffers (seq-filter #'buffer-live-p gnus-buffers))) (defalias 'gnus-prune-buffers #'gnus-buffers) `gnus-configure-windows` is a quite complex function that I'm not going to attach to this email, as it is easier to look at it in-situ from the sources (gnus-win.el). -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 15:21 ` Michael Welsh Duggan @ 2021-03-29 15:26 ` Michael Welsh Duggan 2021-03-29 15:27 ` Eli Zaretskii 1 sibling, 0 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-29 15:26 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org Michael Welsh Duggan <mwd@cert.org> writes: > Eli Zaretskii <eliz@gnu.org> writes: > >>> Date: Mon, 29 Mar 2021 18:02:24 +0300 >>> From: Eli Zaretskii <eliz@gnu.org> >>> Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org >>> >>> Any idea where could be the Lisp code that switches from " *nntpd*" to >>> the buffer in the currently selected window? Perhaps some >>> with-current-buffer thing somewhere? >> >> Actually, no, I don't think it can be with-current-buffer, it must be >> something else. I wonder how we ended up being at top-level with >> current buffer being " *nntpd*" and the selected window's buffer being >> something else, which was killed? Hmm... > > I'm far from certain myself. I have no options specifically set > regarding threads and I run Gnus from Emacs sources. What I can say is > that every time I can remember this happening, the following is the > sequence of events: > > 1) Emacs has locked up. This is presumably because: > a) I have switched my work VPN on, and > b) Gnus uses my existing IMAP connection to attempt to check for new > articles due to this clause in my .gnus file: > > (gnus-demon-add-handler 'gnus-demon-scan-news 5 nil) > 2) From the *Group* buffer I hit `C-g` to cancel its attempt, and `^` to > switch to the Gnus *Sever* buffer. > 3) In that buffer I go to the imap connection and type `C O`, which runs > `gnus-server-close-server` and `gnus-server-open-server`, > respectively. > 4) I type `q` to exit the server buffer. This is when the breakpoint > triggers. `g` calls the following function: > > (defun gnus-server-exit () > "Return to the group buffer." > (interactive nil gnus-server-mode) > (gnus-run-hooks 'gnus-server-exit-hook) > (gnus-kill-buffer (current-buffer)) > (gnus-configure-windows 'group t)) > > `gnus-sever-exit-hook` is nil. The definition of `gnus-kill-buffer` is > as follows: > > (defmacro gnus-kill-buffer (buffer) > "Kill BUFFER and remove from the list of Gnus buffers." > `(let ((buf ,buffer)) > (when (gnus-buffer-live-p buf) > (kill-buffer buf) > (gnus-prune-buffers)))) > > (defun gnus-buffers () > "Return a list of live Gnus buffers." > (setq gnus-buffers (seq-filter #'buffer-live-p gnus-buffers))) > > (defalias 'gnus-prune-buffers #'gnus-buffers) > > `gnus-configure-windows` is a quite complex function that I'm not going > to attach to this email, as it is easier to look at it in-situ from the > sources (gnus-win.el). A further point of information. I do have an nntp connection as well as the imap connection. It's an ntp connection to "news.gmane.io". In the sequence of events above, I do not specifically attempt to reset the nntp connection, but it may to be affected by the VPN switch. I do not know what mechanism might have killed that buffer. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 15:21 ` Michael Welsh Duggan 2021-03-29 15:26 ` Michael Welsh Duggan @ 2021-03-29 15:27 ` Eli Zaretskii 2021-03-29 15:33 ` Michael Welsh Duggan 1 sibling, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-29 15:27 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Cc: "mwd@md5i.com" <mwd@md5i.com>, > "schwab@linux-m68k.org" > <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > Date: Mon, 29 Mar 2021 11:21:05 -0400 > > 2) From the *Group* buffer I hit `C-g` to cancel its attempt, and `^` to > switch to the Gnus *Sever* buffer. > 3) In that buffer I go to the imap connection and type `C O`, which runs > `gnus-server-close-server` and `gnus-server-open-server`, > respectively. > 4) I type `q` to exit the server buffer. This is when the breakpoint > triggers. Breakpoint or segfault? > `g` calls the following function: > > (defun gnus-server-exit () > "Return to the group buffer." > (interactive nil gnus-server-mode) > (gnus-run-hooks 'gnus-server-exit-hook) > (gnus-kill-buffer (current-buffer)) What is current-buffer at this point? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 15:27 ` Eli Zaretskii @ 2021-03-29 15:33 ` Michael Welsh Duggan 2021-03-29 15:34 ` Michael Welsh Duggan 2021-03-29 15:41 ` Eli Zaretskii 0 siblings, 2 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-29 15:33 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@cert.org> >> Cc: "mwd@md5i.com" <mwd@md5i.com>, >> "schwab@linux-m68k.org" >> <schwab@linux-m68k.org>, >> "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> >> Date: Mon, 29 Mar 2021 11:21:05 -0400 >> >> 2) From the *Group* buffer I hit `C-g` to cancel its attempt, and `^` to >> switch to the Gnus *Sever* buffer. >> 3) In that buffer I go to the imap connection and type `C O`, which runs >> `gnus-server-close-server` and `gnus-server-open-server`, >> respectively. >> 4) I type `q` to exit the server buffer. This is when the breakpoint >> triggers. > > Breakpoint or segfault? Breakpoint on the `error` clause that Martin asked me to add to `set_buffer_internal_2`. >> `g` calls the following function: >> >> (defun gnus-server-exit () >> "Return to the group buffer." >> (interactive nil gnus-server-mode) >> (gnus-run-hooks 'gnus-server-exit-hook) >> (gnus-kill-buffer (current-buffer)) > > What is current-buffer at this point? #<buffer *Server*> -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 15:33 ` Michael Welsh Duggan @ 2021-03-29 15:34 ` Michael Welsh Duggan 2021-03-29 15:41 ` Eli Zaretskii 1 sibling, 0 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-29 15:34 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org Michael Welsh Duggan <mwd@cert.org> writes: > Eli Zaretskii <eliz@gnu.org> writes: > >>> From: Michael Welsh Duggan <mwd@cert.org> >>> Cc: "mwd@md5i.com" <mwd@md5i.com>, >>> "schwab@linux-m68k.org" >>> <schwab@linux-m68k.org>, >>> "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> >>> Date: Mon, 29 Mar 2021 11:21:05 -0400 >>> >>> 2) From the *Group* buffer I hit `C-g` to cancel its attempt, and `^` to >>> switch to the Gnus *Sever* buffer. >>> 3) In that buffer I go to the imap connection and type `C O`, which runs >>> `gnus-server-close-server` and `gnus-server-open-server`, >>> respectively. >>> 4) I type `q` to exit the server buffer. This is when the breakpoint >>> triggers. >> >> Breakpoint or segfault? > > Breakpoint on the `error` clause that Martin asked me to add to > `set_buffer_internal_2`. To clarify, this is where the breakpoint triggered this time. In this identical scenario in past runs, this is when the segfault happened. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 15:33 ` Michael Welsh Duggan 2021-03-29 15:34 ` Michael Welsh Duggan @ 2021-03-29 15:41 ` Eli Zaretskii 2021-03-29 16:23 ` Michael Welsh Duggan 1 sibling, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-29 15:41 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Cc: "mwd@md5i.com" <mwd@md5i.com>, > "schwab@linux-m68k.org" > <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > Date: Mon, 29 Mar 2021 11:33:02 -0400 > > >> `g` calls the following function: > >> > >> (defun gnus-server-exit () > >> "Return to the group buffer." > >> (interactive nil gnus-server-mode) > >> (gnus-run-hooks 'gnus-server-exit-hook) > >> (gnus-kill-buffer (current-buffer)) > > > > What is current-buffer at this point? > > #<buffer *Server*> I guess this means kill-buffer replaced "*Server*" with " *nntpd*", but the selected-window's buffer is still "*Server*", which is being killed? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 15:41 ` Eli Zaretskii @ 2021-03-29 16:23 ` Michael Welsh Duggan 0 siblings, 0 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-29 16:23 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@cert.org> >> Cc: "mwd@md5i.com" <mwd@md5i.com>, >> "schwab@linux-m68k.org" >> <schwab@linux-m68k.org>, >> "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> >> Date: Mon, 29 Mar 2021 11:33:02 -0400 >> >> >> `g` calls the following function: >> >> >> >> (defun gnus-server-exit () >> >> "Return to the group buffer." >> >> (interactive nil gnus-server-mode) >> >> (gnus-run-hooks 'gnus-server-exit-hook) >> >> (gnus-kill-buffer (current-buffer)) >> > >> > What is current-buffer at this point? >> >> #<buffer *Server*> > > I guess this means kill-buffer replaced "*Server*" with " *nntpd*", > but the selected-window's buffer is still "*Server*", which is being > killed? Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@cert.org> >> Cc: "mwd@md5i.com" <mwd@md5i.com>, >> "schwab@linux-m68k.org" >> <schwab@linux-m68k.org>, >> "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> >> Date: Mon, 29 Mar 2021 11:33:02 -0400 >> >> >> `g` calls the following function: >> >> >> >> (defun gnus-server-exit () >> >> "Return to the group buffer." >> >> (interactive nil gnus-server-mode) >> >> (gnus-run-hooks 'gnus-server-exit-hook) >> >> (gnus-kill-buffer (current-buffer)) >> > >> > What is current-buffer at this point? >> >> #<buffer *Server*> > > I guess this means kill-buffer replaced "*Server*" with " *nntpd*", > but the selected-window's buffer is still "*Server*", which is being > killed? No idea. Here's the few places I can see things going wrong, though I don't know how or why. kill-buffer calls `replace-buffer-in-windows`, which does a lot of stuff that I can't account for one way or another. Hmm... Maybe the `(gnus-configure-windows 'group t)` call is important. Tracing through it, it's trying to set it to the `group` setting, which is: (group (vertical 1.0 (group 1.0 point))) This is from `gnus-buffer-configuration`. When I debug `gnus-all-windows-visible-p` from this `gnus-configure-windows` in a session that does *not* hit the breakpoint, this function does return a frame that has the ` *nntpd*` name in its print representation. But frankly, I'll stick with my original "no idea" statement. -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 15:07 ` Eli Zaretskii 2021-03-29 15:21 ` Michael Welsh Duggan @ 2021-03-29 15:21 ` Eli Zaretskii 2021-03-29 16:05 ` martin rudalics 1 sibling, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-29 15:21 UTC (permalink / raw) To: martin rudalics; +Cc: mwd, schwab, 47244, mwd > Date: Mon, 29 Mar 2021 18:07:18 +0300 > From: Eli Zaretskii <eliz@gnu.org> > Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org > > Actually, no, I don't think it can be with-current-buffer, it must be > something else. I wonder how we ended up being at top-level with > current buffer being " *nntpd*" and the selected window's buffer being > something else, which was killed? Hmm... Martin, could it be that replace-buffer-in-windows fails to replace a buffer? Suppose kill-buffer is called to kill a buffer that is shown in the selected window, but replace-buffer-in-windows fails to replace it -- can that happen? And another question: can a window be selected if its buffer is dead? Or is it possible to set a dead buffer as a window's buffer? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 15:21 ` Eli Zaretskii @ 2021-03-29 16:05 ` martin rudalics 2021-03-29 16:26 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-03-29 16:05 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd, schwab, 47244, mwd > Martin, could it be that replace-buffer-in-windows fails to replace a > buffer? Suppose kill-buffer is called to kill a buffer that is shown > in the selected window, but replace-buffer-in-windows fails to replace > it -- can that happen? That's what we tried earlier with the check in `switch-to-prev-buffer'. Michael did you run with that check this time or did you remove it? If the latter, please reinsert it for the next time. But let's recall that at the time of the last segfault that particular check did not trigger. > And another question: can a window be selected if its buffer is dead? > Or is it possible to set a dead buffer as a window's buffer? From what we can say now one of these must have happened. The dead buffer comes from the selected window. It does not come from the attempt to restore the current buffer from a temporarily saved one. One thing I'm not even sure about is whether the selected window is still "live" when were trying to make its buffer current. Michael is this "window" supposed to be the only one on its frame? Are we sure that it is not the minibuffer window? In either case we could try to investigate its parent and geometry: What do p XWINDOW (selected_window)->parent p XWINDOW (selected_window)->prev p XWINDOW (selected_window)->next p XWINDOW (selected_window)->top_line p XWINDOW (selected_window)->pixel_height print? Thanks, martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 16:05 ` martin rudalics @ 2021-03-29 16:26 ` Michael Welsh Duggan 2021-03-29 17:33 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-29 16:26 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > Martin, could it be that replace-buffer-in-windows fails to replace a > > buffer? Suppose kill-buffer is called to kill a buffer that is shown > > in the selected window, but replace-buffer-in-windows fails to replace > > it -- can that happen? > > That's what we tried earlier with the check in `switch-to-prev-buffer'. > Michael did you run with that check this time or did you remove it? If > the latter, please reinsert it for the next time. But let's recall that > at the time of the last segfault that particular check did not trigger. I had removed it, sorry. I'll put it in for the next time. > > And another question: can a window be selected if its buffer is dead? > > Or is it possible to set a dead buffer as a window's buffer? > > From what we can say now one of these must have happened. The dead > buffer comes from the selected window. It does not come from the > attempt to restore the current buffer from a temporarily saved one. > > One thing I'm not even sure about is whether the selected window is > still "live" when were trying to make its buffer current. Michael is > this "window" supposed to be the only one on its frame? Are we sure > that it is not the minibuffer window? In either case we could try to > investigate its parent and geometry: What do I think so. Both the *Server* window and the *Group* window will, under normal circumstances, be the only window on the frame. > p XWINDOW (selected_window)->parent > p XWINDOW (selected_window)->prev > p XWINDOW (selected_window)->next > p XWINDOW (selected_window)->top_line > p XWINDOW (selected_window)->pixel_height > > print? (gdb) p XWINDOW (selected_window)->parent $15 = XIL(0) (gdb) p XWINDOW (selected_window)->prev $16 = XIL(0) (gdb) p XWINDOW (selected_window)->next $17 = XIL(0x555556e96635) (gdb) p XWINDOW (selected_window)->top_line $18 = 0 (gdb) p XWINDOW (selected_window)->pixel_height $19 = 995 -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 16:26 ` Michael Welsh Duggan @ 2021-03-29 17:33 ` martin rudalics 2021-03-29 19:12 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-03-29 17:33 UTC (permalink / raw) To: Michael Welsh Duggan Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org > I had removed it, sorry. I'll put it in for the next time. Don't. I completely forgot that we do replace_buffer_in_windows_safely when that fails which even recreates *scratch* when no other buffer is found. > I think so. Both the *Server* window and the *Group* window will, under > normal circumstances, be the only window on the frame. > >> p XWINDOW (selected_window)->parent >> p XWINDOW (selected_window)->prev >> p XWINDOW (selected_window)->next >> p XWINDOW (selected_window)->top_line >> p XWINDOW (selected_window)->pixel_height >> >> print? > > (gdb) p XWINDOW (selected_window)->parent > $15 = XIL(0) > (gdb) p XWINDOW (selected_window)->prev > $16 = XIL(0) > (gdb) p XWINDOW (selected_window)->next > $17 = XIL(0x555556e96635) > (gdb) p XWINDOW (selected_window)->top_line > $18 = 0 > (gdb) p XWINDOW (selected_window)->pixel_height > $19 = 995 These confirm what you say above. Maybe we get that dead buffer via `set-window-configuration'? Could else if (!NILP (w->start)) /* Leaf window has no live buffer, get one. */ have failed? Can a "live window" have w->start equal nil? martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 17:33 ` martin rudalics @ 2021-03-29 19:12 ` Michael Welsh Duggan 2021-03-30 7:30 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-29 19:12 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > I had removed it, sorry. I'll put it in for the next time. > > Don't. I completely forgot that we do replace_buffer_in_windows_safely > when that fails which even recreates *scratch* when no other buffer is > found. > > > I think so. Both the *Server* window and the *Group* window will, under > > normal circumstances, be the only window on the frame. > > > >> p XWINDOW (selected_window)->parent > >> p XWINDOW (selected_window)->prev > >> p XWINDOW (selected_window)->next > >> p XWINDOW (selected_window)->top_line > >> p XWINDOW (selected_window)->pixel_height > >> > >> print? > > > > (gdb) p XWINDOW (selected_window)->parent > > $15 = XIL(0) > > (gdb) p XWINDOW (selected_window)->prev > > $16 = XIL(0) > > (gdb) p XWINDOW (selected_window)->next > > $17 = XIL(0x555556e96635) > > (gdb) p XWINDOW (selected_window)->top_line > > $18 = 0 > > (gdb) p XWINDOW (selected_window)->pixel_height > > $19 = 995 > > These confirm what you say above. Maybe we get that dead buffer via > `set-window-configuration'? Could > > else if (!NILP (w->start)) > /* Leaf window has no live buffer, get one. */ > > have failed? Can a "live window" have w->start equal nil? I sincerely hope that question is more addressed to Eli than to me, as I have no idea. I'm more than happy to run with different breakpoints and/or debugging code inserted. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-29 19:12 ` Michael Welsh Duggan @ 2021-03-30 7:30 ` martin rudalics 2021-03-30 13:39 ` Michael Welsh Duggan 2021-03-30 14:13 ` Michael Welsh Duggan 0 siblings, 2 replies; 160+ messages in thread From: martin rudalics @ 2021-03-30 7:30 UTC (permalink / raw) To: Michael Welsh Duggan Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org [-- Attachment #1: Type: text/plain, Size: 626 bytes --] > I sincerely hope that question is more addressed to Eli than to me, as I > have no idea. Don't worry, it was only a rhetoric question. > I'm more than happy to run with different breakpoints > and/or debugging code inserted. The attached is an attempt to catch the condition where the selected window's buffer is dead in a couple of strategic places. Please run with it in an unoptimized Emacs and wait till an assertion triggers. Yet another shot in the dark but I have no better idea. And if you still have the old session in the debugger, please tell us what the value of old_selected_window is. Thanks, martin [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: selected_window_contents.diff --] [-- Type: text/x-patch; name="selected_window_contents.diff", Size: 4392 bytes --] diff --git a/src/buffer.c b/src/buffer.c index 8e33162989..9ad1e1d4d8 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1991,6 +1991,8 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", run_buffer_list_update_hook (b); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qt; } \f @@ -2151,6 +2153,9 @@ set_buffer_internal_1 (register struct buffer *b) BUFFER_CHECK_INDIRECTION (b); + if (!BUFFER_LIVE_P (b)) + error ("Selecting deleted buffer"); + old_buf = current_buffer; current_buffer = b; last_known_column_point = -1; /* Invalidate indentation cache. */ diff --git a/src/window.c b/src/window.c index eb16e2a433..539297c8fd 100644 --- a/src/window.c +++ b/src/window.c @@ -594,6 +594,8 @@ select_window_1 (Lisp_Object window, bool inhibit_point_swap) selected_window = window; + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Go to the point recorded in the window. This is important when the buffer is in more than one window. It also matters when @@ -3411,6 +3413,8 @@ DEFUN ("delete-other-windows-internal", Fdelete_other_windows_internal, replace_buffer_in_windows (Lisp_Object buffer) { call1 (Qreplace_buffer_in_windows, buffer); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* If BUFFER is shown in a window, safely replace it with some other @@ -3960,6 +3964,8 @@ run_window_change_functions (void) /* Record changes for all frames (if asked for), selected window and frame. */ unbind_to (count, Qnil); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Make WINDOW display BUFFER. RUN_HOOKS_P means it's allowed @@ -4054,6 +4060,9 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer, if (!samebuf && !MINI_WINDOW_P (w) && !WINDOW_PSEUDO_P (w)) FRAME_WINDOW_CHANGE (XFRAME (w->frame)) = true; + if (WINDOWP (selected_window)) + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + unbind_to (count, Qnil); } @@ -5174,6 +5183,8 @@ DEFUN ("delete-window-internal", Fdelete_window_internal, Sdelete_window_interna error ("Deletion failed"); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qnil; } \f diff --git a/src/xdisp.c b/src/xdisp.c index cc0a689ba3..ea64e5037a 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -12980,6 +12980,8 @@ restore_selected_window (Lisp_Object window) /* Abort if we cannot find a live frame. */ emacs_abort (); } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Restore WINDOW, if live, as its frame's selected window. */ @@ -12997,6 +12999,8 @@ restore_frame_selected_window (Lisp_Object window) if (EQ (frame, selected_frame)) selected_window = window; } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Update the tab-bar item list for frame F. This has to be done @@ -13074,6 +13078,8 @@ update_tab_bar (struct frame *f, bool save_match_data) XSETFRAME (frame, f); selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); #endif /* Build desired tab-bar items from keymaps. */ @@ -14010,6 +14016,8 @@ update_tool_bar (struct frame *f, bool save_match_data) selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Build desired tool-bar items from keymaps. */ new_tool_bar = tool_bar_items (Fcopy_sequence (f->tool_bar_items), @@ -17246,6 +17254,8 @@ run_window_scroll_functions (Lisp_Object window, struct text_pos startp) set_buffer_internal (XBUFFER (w->contents)); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return startp; } @@ -25450,6 +25460,8 @@ display_mode_lines (struct window *w) unbind_to (count, Qnil); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + if (n > 0) w->must_be_updated_p = true; return n; ^ permalink raw reply related [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-30 7:30 ` martin rudalics @ 2021-03-30 13:39 ` Michael Welsh Duggan 2021-03-30 14:36 ` martin rudalics 2021-03-30 14:13 ` Michael Welsh Duggan 1 sibling, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-30 13:39 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org, Michael Welsh Duggan martin rudalics <rudalics@gmx.at> writes: > And if you still have the old session in the debugger, please tell us > what the value of old_selected_window is. (gdb) p old_selected_window $20 = XIL(0x5555587e9065) (gdb) xtype Lisp_Vectorlike PVEC_WINDOW (gdb) xwindow $21 = (struct window *) 0x5555587e9060 84x59+0+0 (gdb) p *$21 $22 = { header = { size = 4611686018595323929 }, frame = XIL(0x555556e24f95), next = XIL(0x555556e96635), prev = XIL(0), parent = XIL(0), normal_lines = XIL(0x5555569f93cf), normal_cols = XIL(0x5555569f93c7), new_total = make_fixnum(14), new_normal = XIL(0x555557529fb7), new_pixel = make_fixnum(238), contents = XIL(0x5555578f43dd), old_buffer = XIL(0x5555578f43dd), start = XIL(0x5555587e9275), pointm = XIL(0x5555587e92a5), old_pointm = XIL(0x5555587e92d5), temslot = make_fixnum(0), vertical_scroll_bar = XIL(0x555556d55735), vertical_scroll_bar_type = XIL(0x30), horizontal_scroll_bar = XIL(0), horizontal_scroll_bar_type = XIL(0), display_table = XIL(0), dedicated = XIL(0), redisplay_end_trigger = XIL(0), combination_limit = XIL(0), window_parameters = XIL(0x555558f54443), mode_line_help_echo = XIL(0), current_matrix = 0x55555829bf90, desired_matrix = 0x55555944e010, prev_buffers = XIL(0x5555593f8003), next_buffers = XIL(0), use_time = 10045, sequence_number = 179, change_stamp = 759, pixel_left = 0, pixel_top = 0, left_col = 0, top_line = 0, pixel_width = 672, pixel_height = 995, old_pixel_width = 672, old_pixel_height = 995, old_body_pixel_width = 640, old_body_pixel_height = 978, total_cols = 84, total_lines = 59, hscroll = 0, min_hscroll = 0, hscroll_whole = 0, last_modified = 60, last_overlay_modified = 1, last_point = 127, base_line_number = 1, base_line_pos = 1, column_number_displayed = -1, nrows_scale_factor = 1, ncols_scale_factor = 1, cursor = { x = 0, y = 68, hpos = 0, vpos = 4 }, phys_cursor = { x = 0, y = 68, hpos = 0, vpos = 4 }, output_cursor = { x = 0, y = 68, hpos = 0, vpos = 4 }, last_cursor_vpos = 4, phys_cursor_type = FILLED_BOX_CURSOR, phys_cursor_width = 8, phys_cursor_ascent = 13, phys_cursor_height = 17, left_fringe_width = -1, right_fringe_width = -1, left_margin_cols = 0, right_margin_cols = 0, scroll_bar_width = -1, scroll_bar_height = -1, mode_line_height = 17, header_line_height = -1, tab_line_height = -1, window_end_pos = 0, window_end_vpos = 3, mini = false, horizontal = false, update_mode_line = false, last_had_star = true, start_at_line_beg = true, force_start = false, optional_new_start = false, phys_cursor_on_p = true, cursor_off_p = false, last_cursor_off_p = false, must_be_updated_p = false, pseudo_window_p = false, fringes_outside_margins = false, fringes_persistent = false, scroll_bars_persistent = false, window_end_valid = true, redisplay = false, suspend_auto_hscroll = false, vscroll = 0, window_end_bytepos = 0 } -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-30 13:39 ` Michael Welsh Duggan @ 2021-03-30 14:36 ` martin rudalics 2021-03-30 14:51 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-03-30 14:36 UTC (permalink / raw) To: Michael Welsh Duggan Cc: schwab@linux-m68k.org, 47244@debbugs.gnu.org, Michael Welsh Duggan > contents = XIL(0x5555578f43dd), So the selected window has not changed IIUC. Can you please verify by comparing the values of selected_window and old_selected_window? And what gives p XBUFFER (XWINDOW (selected_window)->old_buffer)->name_ martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-30 14:36 ` martin rudalics @ 2021-03-30 14:51 ` Michael Welsh Duggan 2021-03-30 15:05 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-30 14:51 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > contents = XIL(0x5555578f43dd), > > So the selected window has not changed IIUC. Can you please verify by > comparing the values of selected_window and old_selected_window? And > what gives > > p XBUFFER (XWINDOW (selected_window)->old_buffer)->name_ (gdb) p selected_window $1 = XIL(0x555556e7b645) (gdb) p old_selected_window $2 = XIL(0x555556e7b645) (gdb) p XBUFFER (XWINDOW (selected_window)->old_buffer)->name_ $3 = XIL(0) -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-30 14:51 ` Michael Welsh Duggan @ 2021-03-30 15:05 ` martin rudalics 0 siblings, 0 replies; 160+ messages in thread From: martin rudalics @ 2021-03-30 15:05 UTC (permalink / raw) To: Michael Welsh Duggan Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org > (gdb) p selected_window > $1 = XIL(0x555556e7b645) > (gdb) p old_selected_window > $2 = XIL(0x555556e7b645) > (gdb) p XBUFFER (XWINDOW (selected_window)->old_buffer)->name_ > $3 = XIL(0) Thanks. So this was the buffer as of last redisplay and was killed since then. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-30 7:30 ` martin rudalics 2021-03-30 13:39 ` Michael Welsh Duggan @ 2021-03-30 14:13 ` Michael Welsh Duggan 2021-03-30 14:36 ` martin rudalics 1 sibling, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-30 14:13 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > I sincerely hope that question is more addressed to Eli than to me, as I > > have no idea. > > Don't worry, it was only a rhetoric question. > > > I'm more than happy to run with different breakpoints > > and/or debugging code inserted. > > The attached is an attempt to catch the condition where the selected > window's buffer is dead in a couple of strategic places. Please run > with it in an unoptimized Emacs and wait till an assertion triggers. > Yet another shot in the dark but I have no better idea. The breakpoint I put on the error() clause added to buffer.c triggered again in the new build without touching any of the easserts. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-30 14:13 ` Michael Welsh Duggan @ 2021-03-30 14:36 ` martin rudalics 2021-03-30 14:48 ` Eli Zaretskii ` (2 more replies) 0 siblings, 3 replies; 160+ messages in thread From: martin rudalics @ 2021-03-30 14:36 UTC (permalink / raw) To: Michael Welsh Duggan Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org > The breakpoint I put on the error() clause added to buffer.c triggered > again in the new build without touching any of the easserts. And I thought I was overdoing with them. This error is a bit too elusive for my brain. Are the buffer names the same as last time? martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-30 14:36 ` martin rudalics @ 2021-03-30 14:48 ` Eli Zaretskii 2021-03-30 15:05 ` martin rudalics 2021-03-30 15:03 ` Michael Welsh Duggan 2021-03-31 13:23 ` Michael Welsh Duggan 2 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-30 14:48 UTC (permalink / raw) To: martin rudalics; +Cc: mwd, schwab, 47244, mwd > Cc: Eli Zaretskii <eliz@gnu.org>, "mwd@md5i.com" <mwd@md5i.com>, > "schwab@linux-m68k.org" <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > From: martin rudalics <rudalics@gmx.at> > Date: Tue, 30 Mar 2021 16:36:50 +0200 > > > The breakpoint I put on the error() clause added to buffer.c triggered > > again in the new build without touching any of the easserts. > > And I thought I was overdoing with them. This error is a bit too elusive > for my brain. Maybe instead of trying to find the exact culprit, we should simply protect this code: /* Make sure the current window's buffer is selected. */ set_buffer_internal (XBUFFER (XWINDOW (selected_window)->contents)); from selecting a dead buffer? For example, by using other_buffer_safely if the selected-window's buffer is dead. After all the code in question, viz.: (gnus-kill-buffer (current-buffer)) is already quite crazy: who in their right mind kills the current buffer in the middle of a Lisp program? What were they thinking? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-30 14:48 ` Eli Zaretskii @ 2021-03-30 15:05 ` martin rudalics 2021-03-30 15:13 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-03-30 15:05 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd, schwab, 47244, mwd > Maybe instead of trying to find the exact culprit, we should simply > protect this code: > > /* Make sure the current window's buffer is selected. */ > set_buffer_internal (XBUFFER (XWINDOW (selected_window)->contents)); > > from selecting a dead buffer? For example, by using > other_buffer_safely if the selected-window's buffer is dead. The problem is that we already detect this situation too late in order to tell who the real culprit is. For example, a dead buffer stored in the selected_window's contents field could have been a dead current_buffer before. So for some time we could have been already running with a dead buffer in that filed. Long enough maybe to cause havoc elsewhere. And what happened in between might not have used set_buffer_internal but accessed that buffer more directly. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-30 15:05 ` martin rudalics @ 2021-03-30 15:13 ` Eli Zaretskii 2021-03-30 16:52 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-30 15:13 UTC (permalink / raw) To: martin rudalics; +Cc: mwd, schwab, 47244, mwd > Cc: mwd@cert.org, mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org > From: martin rudalics <rudalics@gmx.at> > Date: Tue, 30 Mar 2021 17:05:14 +0200 > > > Maybe instead of trying to find the exact culprit, we should simply > > protect this code: > > > > /* Make sure the current window's buffer is selected. */ > > set_buffer_internal (XBUFFER (XWINDOW (selected_window)->contents)); > > > > from selecting a dead buffer? For example, by using > > other_buffer_safely if the selected-window's buffer is dead. > > The problem is that we already detect this situation too late in order > to tell who the real culprit is. For example, a dead buffer stored in > the selected_window's contents field could have been a dead > current_buffer before. So for some time we could have been already > running with a dead buffer in that filed. Long enough maybe to cause > havoc elsewhere. And what happened in between might not have used > set_buffer_internal but accessed that buffer more directly. The above code runs every iteration through the main loop, so fixing it there will go along way towards avoiding the havoc. Or are you saying it could cause harm in some situation? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-30 15:13 ` Eli Zaretskii @ 2021-03-30 16:52 ` martin rudalics 2021-03-30 17:05 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-03-30 16:52 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd, schwab, 47244, mwd > The above code runs every iteration through the main loop, so fixing > it there will go along way towards avoiding the havoc. Or are you > saying it could cause harm in some situation? No. If worse comes to worst, it should improve the situation. But we then are sweeping the real problem under the carpet. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-30 16:52 ` martin rudalics @ 2021-03-30 17:05 ` Eli Zaretskii 2021-03-31 6:41 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-30 17:05 UTC (permalink / raw) To: martin rudalics; +Cc: mwd, schwab, 47244, mwd > Cc: mwd@cert.org, mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org > From: martin rudalics <rudalics@gmx.at> > Date: Tue, 30 Mar 2021 18:52:24 +0200 > > > The above code runs every iteration through the main loop, so fixing > > it there will go along way towards avoiding the havoc. Or are you > > saying it could cause harm in some situation? > > No. If worse comes to worst, it should improve the situation. But we > then are sweeping the real problem under the carpet. IME, there's any number of "real problems" out there, and the hope to find them all is ... too optimistic. There's nothing wrong with being defensive against unknown factors. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-30 17:05 ` Eli Zaretskii @ 2021-03-31 6:41 ` martin rudalics 2021-03-31 7:09 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-03-31 6:41 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd, schwab, 47244, mwd > IME, there's any number of "real problems" out there, and the hope to > find them all is ... too optimistic. I'd be already happy to find just the one we talk about here. > There's nothing wrong with being > defensive against unknown factors. Agreed. What I meant was that if, as we suppose, the mischief happens at time T1 somewhere in redisplay and is detected (by chance) and corrected at time T2 in the main loop, any side effects that mischief causes between T1 and T2 still go undetected and may cause arbitrary harm. In either case whatever you want to do here - set the selected window's buffer or just the current buffer in the main loop - would not interfere with finding the real culprit. So I certainly won't object to your fix. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-31 6:41 ` martin rudalics @ 2021-03-31 7:09 ` Eli Zaretskii 0 siblings, 0 replies; 160+ messages in thread From: Eli Zaretskii @ 2021-03-31 7:09 UTC (permalink / raw) To: martin rudalics; +Cc: mwd, schwab, 47244, mwd > Cc: mwd@cert.org, mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org > From: martin rudalics <rudalics@gmx.at> > Date: Wed, 31 Mar 2021 08:41:52 +0200 > > > IME, there's any number of "real problems" out there, and the hope to > > find them all is ... too optimistic. > > I'd be already happy to find just the one we talk about here. > > > There's nothing wrong with being > > defensive against unknown factors. > > Agreed. What I meant was that if, as we suppose, the mischief happens > at time T1 somewhere in redisplay and is detected (by chance) and > corrected at time T2 in the main loop, any side effects that mischief > causes between T1 and T2 still go undetected and may cause arbitrary > harm. I think it's the other way around: we set the dead buffer as the current one in the main loop, and then redisplay tries to redisplay that window. > In either case whatever you want to do here - set the selected window's > buffer or just the current buffer in the main loop - would not interfere > with finding the real culprit. So I certainly won't object to your fix. I will wait for a few days in the hope that the culprit is found. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-30 14:36 ` martin rudalics 2021-03-30 14:48 ` Eli Zaretskii @ 2021-03-30 15:03 ` Michael Welsh Duggan 2021-03-30 16:52 ` martin rudalics 2021-03-31 13:23 ` Michael Welsh Duggan 2 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-30 15:03 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > The breakpoint I put on the error() clause added to buffer.c triggered > > again in the new build without touching any of the easserts. > > And I thought I was overdoing with them. This error is a bit too elusive > for my brain. Are the buffer names the same as last time? Yes. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-30 15:03 ` Michael Welsh Duggan @ 2021-03-30 16:52 ` martin rudalics 0 siblings, 0 replies; 160+ messages in thread From: martin rudalics @ 2021-03-30 16:52 UTC (permalink / raw) To: Michael Welsh Duggan Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org [-- Attachment #1: Type: text/plain, Size: 207 bytes --] >> Are the buffer names the same as last time? > > Yes. It all sounds so easily reproducible and I have no idea where to start. Please bear with me and run with the attached from now on. Thanks, martin [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: selected_window_contents.diff --] [-- Type: text/x-patch; name="selected_window_contents.diff", Size: 5336 bytes --] diff --git a/src/buffer.c b/src/buffer.c index 8e33162989..9ad1e1d4d8 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1991,6 +1991,8 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", run_buffer_list_update_hook (b); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qt; } \f @@ -2151,6 +2153,9 @@ set_buffer_internal_1 (register struct buffer *b) BUFFER_CHECK_INDIRECTION (b); + if (!BUFFER_LIVE_P (b)) + error ("Selecting deleted buffer"); + old_buf = current_buffer; current_buffer = b; last_known_column_point = -1; /* Invalidate indentation cache. */ diff --git a/src/window.c b/src/window.c index eb16e2a433..8cea0af8ab 100644 --- a/src/window.c +++ b/src/window.c @@ -307,7 +307,11 @@ wset_buffer (struct window *w, Lisp_Object val) if (BUFFERP (val)) /* Make sure that we do not assign the buffer to an internal window. */ - eassert (MARKERP (w->start) && MARKERP (w->pointm)); + { + eassert (BUFFER_LIVE_P (XBUFFER (val))); + eassert (MARKERP (w->start) && MARKERP (w->pointm)); + } + w->contents = val; adjust_window_count (w, 1); } @@ -315,6 +319,7 @@ wset_buffer (struct window *w, Lisp_Object val) static void wset_old_buffer (struct window *w, Lisp_Object val) { + eassert (BUFFER_LIVE_P (XBUFFER (val))); w->old_buffer = val; } @@ -594,6 +599,8 @@ select_window_1 (Lisp_Object window, bool inhibit_point_swap) selected_window = window; + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Go to the point recorded in the window. This is important when the buffer is in more than one window. It also matters when @@ -3411,6 +3418,8 @@ DEFUN ("delete-other-windows-internal", Fdelete_other_windows_internal, replace_buffer_in_windows (Lisp_Object buffer) { call1 (Qreplace_buffer_in_windows, buffer); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* If BUFFER is shown in a window, safely replace it with some other @@ -3960,6 +3969,8 @@ run_window_change_functions (void) /* Record changes for all frames (if asked for), selected window and frame. */ unbind_to (count, Qnil); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Make WINDOW display BUFFER. RUN_HOOKS_P means it's allowed @@ -4054,6 +4065,9 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer, if (!samebuf && !MINI_WINDOW_P (w) && !WINDOW_PSEUDO_P (w)) FRAME_WINDOW_CHANGE (XFRAME (w->frame)) = true; + if (WINDOWP (selected_window)) + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + unbind_to (count, Qnil); } @@ -5174,6 +5188,8 @@ DEFUN ("delete-window-internal", Fdelete_window_internal, Sdelete_window_interna error ("Deletion failed"); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qnil; } \f @@ -7233,6 +7249,9 @@ DEFUN ("set-window-configuration", Fset_window_configuration, minibuf_selected_window = data->minibuf_selected_window; SAFE_FREE (); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return FRAME_LIVE_P (f) ? Qt : Qnil; } diff --git a/src/xdisp.c b/src/xdisp.c index cc0a689ba3..ea64e5037a 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -12980,6 +12980,8 @@ restore_selected_window (Lisp_Object window) /* Abort if we cannot find a live frame. */ emacs_abort (); } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Restore WINDOW, if live, as its frame's selected window. */ @@ -12997,6 +12999,8 @@ restore_frame_selected_window (Lisp_Object window) if (EQ (frame, selected_frame)) selected_window = window; } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Update the tab-bar item list for frame F. This has to be done @@ -13074,6 +13078,8 @@ update_tab_bar (struct frame *f, bool save_match_data) XSETFRAME (frame, f); selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); #endif /* Build desired tab-bar items from keymaps. */ @@ -14010,6 +14016,8 @@ update_tool_bar (struct frame *f, bool save_match_data) selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Build desired tool-bar items from keymaps. */ new_tool_bar = tool_bar_items (Fcopy_sequence (f->tool_bar_items), @@ -17246,6 +17254,8 @@ run_window_scroll_functions (Lisp_Object window, struct text_pos startp) set_buffer_internal (XBUFFER (w->contents)); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return startp; } @@ -25450,6 +25460,8 @@ display_mode_lines (struct window *w) unbind_to (count, Qnil); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + if (n > 0) w->must_be_updated_p = true; return n; ^ permalink raw reply related [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-30 14:36 ` martin rudalics 2021-03-30 14:48 ` Eli Zaretskii 2021-03-30 15:03 ` Michael Welsh Duggan @ 2021-03-31 13:23 ` Michael Welsh Duggan 2021-03-31 13:53 ` Michael Welsh Duggan 2 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-31 13:23 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > The breakpoint I put on the error() clause added to buffer.c triggered > > again in the new build without touching any of the easserts. > > And I thought I was overdoing with them. This error is a bit too elusive > for my brain. Are the buffer names the same as last time? I realized this morning that the easserts probably wouldn't trigger because I hadn't compiled with --enable-checking. I've recompiled and will see if anything triggers in the next couple of days. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-31 13:23 ` Michael Welsh Duggan @ 2021-03-31 13:53 ` Michael Welsh Duggan 2021-03-31 14:01 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-31 13:53 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org And, trapped! Backtrace is included. Maybe unfortunately, it isn't one of the new easserts, but at least we now have a different backtrace. Hopefully that will lead to new insights. I will note that, in this instance, the reproducer did not follow the same formula, as you can see in the Lisp backtrace. #0 raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:50 set = { __val = {402653184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268435456, 0, 0, 93824994300624, 18446744067266838271} } pid = <optimized out> tid = <optimized out> #1 0x00005555557197a1 in terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at ../../master/src/emacs.c:416 #2 0x00005555557c4858 in die (msg=0x55555594f2a0 "b->window_count == 0", file=0x55555594da8a "../../master/src/buffer.c", line=1969) at ../../master/src/alloc.c:7420 #3 0x0000555555759190 in Fkill_buffer (buffer_or_name=XIL(0x555557888814)) at ../../master/src/buffer.c:1969 buffer = XIL(0x555557889325) b = 0x555557889320 tem = XIL(0) m = 0x0 #4 0x00005555557fd881 in funcall_subr (subr=0x555555dd8ce0 <Skill_buffer>, numargs=1, args=0x7fffffffcbf0) at ../../master/src/eval.c:2987 internal_argbuf = {XIL(0x7fffffffcb10), XIL(0x1000000000), XIL(0x555555dd8ce0), XIL(0x7fffffffcb18), XIL(0x5555557f44c4), XIL(0x10557f3f8b), XIL(0x555555dd8ce5), XIL(0x7fffffffcb30)} internal_args = 0x7fffffffcbf0 #5 0x00005555557fd349 in Ffuncall (nargs=2, args=0x7fffffffcbe8) at ../../master/src/eval.c:2914 fun = XIL(0x555555dd8ce5) original_fun = XIL(0x2aaa9c7157e0) funcar = XIL(0x555557d5a980) numargs = 1 val = XIL(0x7fffffffcbb0) count = 12 #6 0x0000555555856a0c in exec_byte_code (bytestr=XIL(0x5555575d6464), vector=XIL(0x5555575d5985), maxdepth=make_fixnum(9), args_template=make_fixnum(256), nargs=0, args=0x7fffffffd390) at ../../master/src/bytecode.c:632 op = 1 type = (CONDITION_CASE | CATCHER_ALL | unknown: 0x55855e08) targets = {0x5555558598a1 <exec_byte_code+15219>, 0x5555558598c6 <exec_byte_code+15256>, 0x5555558598c8 <exec_byte_code+15258>, 0x5555558598ca <exec_byte_code+15260>, 0x5555558598cc <exec_byte_code+15262>, 0x5555558598cc <exec_byte_code+15262>, 0x555555859931 <exec_byte_code+15363>, 0x5555558599a5 <exec_byte_code+15479>, 0x5555558562cc <exec_byte_code+1438>, 0x5555558562ce <exec_byte_code+1440>, 0x5555558562d0 <exec_byte_code+1442>, 0x5555558562d2 <exec_byte_code+1444>, 0x5555558562d4 <exec_byte_code+1446>, 0x5555558562d4 <exec_byte_code+1446>, 0x5555558562da <exec_byte_code+1452>, 0x55555585629b <exec_byte_code+1389>, 0x5555558566f2 <exec_byte_code+2500>, 0x5555558566f4 <exec_byte_code+2502>, 0x5555558566f6 <exec_byte_code+2504>, 0x5555558566f8 <exec_byte_code+2506>, 0x5555558566fa <exec_byte_code+2508>, 0x5555558566fa <exec_byte_code+2508>, 0x55555585672f <exec_byte_code+2561>, 0x555555856700 <exec_byte_code+2514>, 0x555555856924 <exec_byte_code+3062>, 0x555555856926 <exec_byte_code+3064>, 0x555555856928 <exec_byte_code+3066>, 0x55555585692a <exec_byte_code+3068>, 0x55555585692c <exec_byte_code+3070>, 0x55555585692c <exec_byte_code+3070>, 0x5555558568de <exec_byte_code+2992>, 0x5555558568f5 <exec_byte_code+3015>, 0x5555558569d9 <exec_byte_code+3243>, 0x5555558569db <exec_byte_code+3245>, 0x5555558569dd <exec_byte_code+3247>, 0x5555558569df <exec_byte_code+3249>, 0x5555558569e1 <exec_byte_code+3251>, 0x5555558569e1 <exec_byte_code+3251>, 0x555555856993 <exec_byte_code+3173>, 0x5555558569aa <exec_byte_code+3196>, 0x555555856a8b <exec_byte_code+3421>, 0x555555856a8d <exec_byte_code+3423>, 0x555555856a8f <exec_byte_code+3425>, 0x555555856a91 <exec_byte_code+3427>, 0x555555856a93 <exec_byte_code+3429>, 0x555555856a93 <exec_byte_code+3429>, 0x555555856a45 <exec_byte_code+3351>, 0x555555856a5c <exec_byte_code+3374>, 0x5555558572f3 <exec_byte_code+5573>, 0x5555558571d6 <exec_byte_code+5288>, 0x5555558571cd <exec_byte_code+5279>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x55555585752d <exec_byte_code+6143>, 0x555555857643 <exec_byte_code+6421>, 0x5555558576a0 <exec_byte_code+6514>, 0x555555857700 <exec_byte_code+6610>, 0x555555857762 <exec_byte_code+6708>, 0x55555585654b <exec_byte_code+2077>, 0x5555558565c6 <exec_byte_code+2200>, 0x5555558577db <exec_byte_code+6829>, 0x555555856488 <exec_byte_code+1882>, 0x55555585662e <exec_byte_code+2304>, 0x555555857843 <exec_byte_code+6933>, 0x5555558578ab <exec_byte_code+7037>, 0x5555558578f3 <exec_byte_code+7109>, 0x55555585795b <exec_byte_code+7213>, 0x5555558579c1 <exec_byte_code+7315>, 0x555555857aa7 <exec_byte_code+7545>, 0x555555857aef <exec_byte_code+7617>, 0x555555857b57 <exec_byte_code+7721>, 0x555555857bdc <exec_byte_code+7854>, 0x555555857c24 <exec_byte_code+7926>, 0x555555857c6c <exec_byte_code+7998>, 0x555555857cd4 <exec_byte_code+8102>, 0x555555857d3c <exec_byte_code+8206>, 0x555555857da4 <exec_byte_code+8310>, 0x555555857e29 <exec_byte_code+8443>, 0x555555857e78 <exec_byte_code+8522>, 0x555555857ec7 <exec_byte_code+8601>, 0x555555857f8e <exec_byte_code+8800>, 0x555555858087 <exec_byte_code+9049>, 0x555555858180 <exec_byte_code+9298>, 0x5555558581ed <exec_byte_code+9407>, 0x55555585825a <exec_byte_code+9516>, 0x5555558582c7 <exec_byte_code+9625>, 0x555555858334 <exec_byte_code+9734>, 0x5555558583a1 <exec_byte_code+9843>, 0x5555558583f0 <exec_byte_code+9922>, 0x5555558584ea <exec_byte_code+10172>, 0x555555858539 <exec_byte_code+10251>, 0x555555858588 <exec_byte_code+10330>, 0x5555558585d7 <exec_byte_code+10409>, 0x5555558586dd <exec_byte_code+10671>, 0x55555585704d <exec_byte_code+4895>, 0x555555858738 <exec_byte_code+10762>, 0x555555858780 <exec_byte_code+10834>, 0x555555858842 <exec_byte_code+11028>, 0x5555558588ab <exec_byte_code+11133>, 0x555555858906 <exec_byte_code+11224>, 0x55555585894e <exec_byte_code+11296>, 0x555555858991 <exec_byte_code+11363>, 0x5555558589d4 <exec_byte_code+11430>, 0x555555858a1f <exec_byte_code+11505>, 0x5555558598a1 <exec_byte_code+15219>, 0x555555858a77 <exec_byte_code+11593>, 0x555555858aba <exec_byte_code+11660>, 0x555555858afd <exec_byte_code+11727>, 0x555555858b40 <exec_byte_code+11794>, 0x555555858b83 <exec_byte_code+11861>, 0x555555858bc6 <exec_byte_code+11928>, 0x55555585704d <exec_byte_code+4895>, 0x5555558598a1 <exec_byte_code+15219>, 0x555555858c0e <exec_byte_code+12000>, 0x555555858c60 <exec_byte_code+12082>, 0x555555858ca8 <exec_byte_code+12154>, 0x555555858cf0 <exec_byte_code+12226>, 0x555555858d58 <exec_byte_code+12330>, 0x555555858dc0 <exec_byte_code+12434>, 0x555555858e08 <exec_byte_code+12506>, 0x555555858ec5 <exec_byte_code+12695>, 0x555555858f2d <exec_byte_code+12799>, 0x555555858f95 <exec_byte_code+12903>, 0x555555858ffd <exec_byte_code+13007>, 0x555555859040 <exec_byte_code+13074>, 0x5555558598a1 <exec_byte_code+15219>, 0x555555856f93 <exec_byte_code+4709>, 0x555555856b3d <exec_byte_code+3599>, 0x5555558563f6 <exec_byte_code+1736>, 0x555555856bee <exec_byte_code+3776>, 0x555555856c72 <exec_byte_code+3908>, 0x555555856cf3 <exec_byte_code+4037>, 0x555555856f47 <exec_byte_code+4633>, 0x555555856f5c <exec_byte_code+4654>, 0x55555585688b <exec_byte_code+2909>, 0x555555857016 <exec_byte_code+4840>, 0x555555857084 <exec_byte_code+4950>, 0x555555857115 <exec_byte_code+5095>, 0x55555585715e <exec_byte_code+5168>, 0x55555585733f <exec_byte_code+5649>, 0x5555558573bc <exec_byte_code+5774>, 0x555555857441 <exec_byte_code+5907>, 0x5555558574a7 <exec_byte_code+6009>, 0x555555856aef <exec_byte_code+3521>, 0x555555859088 <exec_byte_code+13146>, 0x55555585910d <exec_byte_code+13279>, 0x555555859155 <exec_byte_code+13351>, 0x55555585919d <exec_byte_code+13423>, 0x5555558591e5 <exec_byte_code+13495>, 0x55555585922d <exec_byte_code+13567>, 0x555555859295 <exec_byte_code+13671>, 0x5555558592fd <exec_byte_code+13775>, 0x555555859365 <exec_byte_code+13879>, 0x5555558593cd <exec_byte_code+13983>, 0x555555859516 <exec_byte_code+14312>, 0x55555585957e <exec_byte_code+14416>, 0x5555558595e6 <exec_byte_code+14520>, 0x55555585962e <exec_byte_code+14592>, 0x555555859696 <exec_byte_code+14696>, 0x5555558596fe <exec_byte_code+14800>, 0x555555859746 <exec_byte_code+14872>, 0x55555585978e <exec_byte_code+14944>, 0x555555858626 <exec_byte_code+10488>, 0x555555858675 <exec_byte_code+10567>, 0x5555558597dd <exec_byte_code+15023>, 0x55555585983f <exec_byte_code+15121>, 0x5555558598a1 <exec_byte_code+15219>, 0x555555856d74 <exec_byte_code+4166>, 0x555555856d91 <exec_byte_code+4195>, 0x555555856e00 <exec_byte_code+4306>, 0x555555856e6f <exec_byte_code+4417>, 0x555555856edb <exec_byte_code+4525>, 0x555555857a2f <exec_byte_code+7425>, 0x555555857f16 <exec_byte_code+8680>, 0x5555558587ca <exec_byte_code+10908>, 0x555555859a38 <exec_byte_code+15626>, 0x555555859aad <exec_byte_code+15743>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x555555859b43 <exec_byte_code+15893>, 0x555555859bca <exec_byte_code+16028>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x555555859d18 <exec_byte_code+16362> <repeats 64 times>} const_length = 42 bytestr_length = 271 vectorp = 0x5555575d5988 quitcounter = 1 '\001' stack_items = 10 sa_avail = 16033 sa_count = 10 alloc = 0x7fffffffcbc0 stack_base = 0x7fffffffcbc0 top = 0x7fffffffcbe8 stack_lim = 0x7fffffffcc10 bytestr_data = 0x7fffffffcc10 "\bƉ\031\032\307\001!\002\204\034" pc = 0x7fffffffcc7c "\210\325 \210\210\016%\211\211\205\204" count = 10 result = XIL(0x30) #7 0x00005555557fdb34 in fetch_and_exec_byte_code (fun=XIL(0x5555575d5af5), syms_left=make_fixnum(256), nargs=0, args=0x7fffffffd390) at ../../master/src/eval.c:3036 #8 0x00005555557fdfba in funcall_lambda (fun=XIL(0x5555575d5af5), nargs=0, arg_vector=0x7fffffffd390) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffd140) syms_left = make_fixnum(256) next = XIL(0x555555e62060) lexenv = XIL(0x1800000000) count = 10 i = 93824994985156 optional = false rest = false #9 0x00005555557fd38d in Ffuncall (nargs=1, args=0x7fffffffd388) at ../../master/src/eval.c:2916 fun = XIL(0x5555575d5af5) original_fun = XIL(0x17286d0) funcar = XIL(0xffffd1e0) numargs = 0 val = XIL(0) count = 9 #10 0x00005555557f1481 in Ffuncall_interactively (nargs=1, args=0x7fffffffd388) at ../../master/src/callint.c:260 speccount = 8 #11 0x00005555557fd772 in funcall_subr (subr=0x555555ddeca0 <Sfuncall_interactively>, numargs=1, args=0x7fffffffd388) at ../../master/src/eval.c:2967 #12 0x00005555557fd349 in Ffuncall (nargs=2, args=0x7fffffffd380) at ../../master/src/eval.c:2914 fun = XIL(0x555555ddeca5) original_fun = XIL(0x70b0) funcar = XIL(0x7fffffffd2b0) numargs = 1 val = XIL(0) count = 7 #13 0x00005555557fc032 in Fapply (nargs=3, args=0x7fffffffd380) at ../../master/src/eval.c:2497 i = 2582717749968 funcall_nargs = 0 funcall_args = 0x0 spread_arg = XIL(0) fun = XIL(0x70b0) sa_avail = 16384 sa_count = 7 numargs = 0 retval = XIL(0x5555557f01c1) #14 0x00005555557f18f6 in Fcall_interactively (function=XIL(0x17286d0), record_flag=XIL(0), keys=XIL(0x5555579ee805)) at ../../master/src/callint.c:353 funval = XIL(0x5555575d5af5) events = 794 input = XIL(0) speccount = 6 arg_from_tty = false key_count = 1 record_then_fail = false save_this_command = XIL(0x17286d0) save_this_original_command = XIL(0x17286d0) save_real_this_command = XIL(0x17286d0) save_last_command = XIL(0) prefix_arg = XIL(0) enable = XIL(0) up_event = XIL(0) form = XIL(0x555557520b53) specs = XIL(0) sa_avail = 93825001726048 sa_count = 0 string_len = 93824993913168 string = 0x5555575d5af5 "" string_end = 0x7fffffffd4e0 "" next_event = 93824994845205 nargs = 0 args = 0x0 visargs = 0x0 varies = 0x555555e62060 <lispsym> "\230\001" tem = 0x7fffffffd570 "\365Z]WUU" val = XIL(0) #15 0x00005555557fd8db in funcall_subr (subr=0x555555ddece0 <Scall_interactively>, numargs=3, args=0x7fffffffd720) at ../../master/src/eval.c:2992 internal_argbuf = {XIL(0x7fffffffd630), XIL(0x1000000000), XIL(0x555555ddece0), XIL(0x7fffffffd638), XIL(0x5555557f44c4), XIL(0x10557f3f8b), XIL(0x555555ddece5), XIL(0x7fffffffd650)} internal_args = 0x7fffffffd720 #16 0x00005555557fd349 in Ffuncall (nargs=4, args=0x7fffffffd718) at ../../master/src/eval.c:2914 fun = XIL(0x555555ddece5) original_fun = XIL(0x2aaa9c71a1f0) funcar = XIL(0x7fffffffd6b0) numargs = 3 val = XIL(0x7fffffffd6d0) count = 5 #17 0x0000555555856a0c in exec_byte_code (bytestr=XIL(0x7ffff26110fc), vector=XIL(0x7ffff2610d65), maxdepth=make_fixnum(13), args_template=make_fixnum(1025), nargs=1, args=0x7fffffffdc90) at ../../master/src/bytecode.c:632 op = 3 type = CATCHER targets = {0x5555558598a1 <exec_byte_code+15219>, 0x5555558598c6 <exec_byte_code+15256>, 0x5555558598c8 <exec_byte_code+15258>, 0x5555558598ca <exec_byte_code+15260>, 0x5555558598cc <exec_byte_code+15262>, 0x5555558598cc <exec_byte_code+15262>, 0x555555859931 <exec_byte_code+15363>, 0x5555558599a5 <exec_byte_code+15479>, 0x5555558562cc <exec_byte_code+1438>, 0x5555558562ce <exec_byte_code+1440>, 0x5555558562d0 <exec_byte_code+1442>, 0x5555558562d2 <exec_byte_code+1444>, 0x5555558562d4 <exec_byte_code+1446>, 0x5555558562d4 <exec_byte_code+1446>, 0x5555558562da <exec_byte_code+1452>, 0x55555585629b <exec_byte_code+1389>, 0x5555558566f2 <exec_byte_code+2500>, 0x5555558566f4 <exec_byte_code+2502>, 0x5555558566f6 <exec_byte_code+2504>, 0x5555558566f8 <exec_byte_code+2506>, 0x5555558566fa <exec_byte_code+2508>, 0x5555558566fa <exec_byte_code+2508>, 0x55555585672f <exec_byte_code+2561>, 0x555555856700 <exec_byte_code+2514>, 0x555555856924 <exec_byte_code+3062>, 0x555555856926 <exec_byte_code+3064>, 0x555555856928 <exec_byte_code+3066>, 0x55555585692a <exec_byte_code+3068>, 0x55555585692c <exec_byte_code+3070>, 0x55555585692c <exec_byte_code+3070>, 0x5555558568de <exec_byte_code+2992>, 0x5555558568f5 <exec_byte_code+3015>, 0x5555558569d9 <exec_byte_code+3243>, 0x5555558569db <exec_byte_code+3245>, 0x5555558569dd <exec_byte_code+3247>, 0x5555558569df <exec_byte_code+3249>, 0x5555558569e1 <exec_byte_code+3251>, 0x5555558569e1 <exec_byte_code+3251>, 0x555555856993 <exec_byte_code+3173>, 0x5555558569aa <exec_byte_code+3196>, 0x555555856a8b <exec_byte_code+3421>, 0x555555856a8d <exec_byte_code+3423>, 0x555555856a8f <exec_byte_code+3425>, 0x555555856a91 <exec_byte_code+3427>, 0x555555856a93 <exec_byte_code+3429>, 0x555555856a93 <exec_byte_code+3429>, 0x555555856a45 <exec_byte_code+3351>, 0x555555856a5c <exec_byte_code+3374>, 0x5555558572f3 <exec_byte_code+5573>, 0x5555558571d6 <exec_byte_code+5288>, 0x5555558571cd <exec_byte_code+5279>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x55555585752d <exec_byte_code+6143>, 0x555555857643 <exec_byte_code+6421>, 0x5555558576a0 <exec_byte_code+6514>, 0x555555857700 <exec_byte_code+6610>, 0x555555857762 <exec_byte_code+6708>, 0x55555585654b <exec_byte_code+2077>, 0x5555558565c6 <exec_byte_code+2200>, 0x5555558577db <exec_byte_code+6829>, 0x555555856488 <exec_byte_code+1882>, 0x55555585662e <exec_byte_code+2304>, 0x555555857843 <exec_byte_code+6933>, 0x5555558578ab <exec_byte_code+7037>, 0x5555558578f3 <exec_byte_code+7109>, 0x55555585795b <exec_byte_code+7213>, 0x5555558579c1 <exec_byte_code+7315>, 0x555555857aa7 <exec_byte_code+7545>, 0x555555857aef <exec_byte_code+7617>, 0x555555857b57 <exec_byte_code+7721>, 0x555555857bdc <exec_byte_code+7854>, 0x555555857c24 <exec_byte_code+7926>, 0x555555857c6c <exec_byte_code+7998>, 0x555555857cd4 <exec_byte_code+8102>, 0x555555857d3c <exec_byte_code+8206>, 0x555555857da4 <exec_byte_code+8310>, 0x555555857e29 <exec_byte_code+8443>, 0x555555857e78 <exec_byte_code+8522>, 0x555555857ec7 <exec_byte_code+8601>, 0x555555857f8e <exec_byte_code+8800>, 0x555555858087 <exec_byte_code+9049>, 0x555555858180 <exec_byte_code+9298>, 0x5555558581ed <exec_byte_code+9407>, 0x55555585825a <exec_byte_code+9516>, 0x5555558582c7 <exec_byte_code+9625>, 0x555555858334 <exec_byte_code+9734>, 0x5555558583a1 <exec_byte_code+9843>, 0x5555558583f0 <exec_byte_code+9922>, 0x5555558584ea <exec_byte_code+10172>, 0x555555858539 <exec_byte_code+10251>, 0x555555858588 <exec_byte_code+10330>, 0x5555558585d7 <exec_byte_code+10409>, 0x5555558586dd <exec_byte_code+10671>, 0x55555585704d <exec_byte_code+4895>, 0x555555858738 <exec_byte_code+10762>, 0x555555858780 <exec_byte_code+10834>, 0x555555858842 <exec_byte_code+11028>, 0x5555558588ab <exec_byte_code+11133>, 0x555555858906 <exec_byte_code+11224>, 0x55555585894e <exec_byte_code+11296>, 0x555555858991 <exec_byte_code+11363>, 0x5555558589d4 <exec_byte_code+11430>, 0x555555858a1f <exec_byte_code+11505>, 0x5555558598a1 <exec_byte_code+15219>, 0x555555858a77 <exec_byte_code+11593>, 0x555555858aba <exec_byte_code+11660>, 0x555555858afd <exec_byte_code+11727>, 0x555555858b40 <exec_byte_code+11794>, 0x555555858b83 <exec_byte_code+11861>, 0x555555858bc6 <exec_byte_code+11928>, 0x55555585704d <exec_byte_code+4895>, 0x5555558598a1 <exec_byte_code+15219>, 0x555555858c0e <exec_byte_code+12000>, 0x555555858c60 <exec_byte_code+12082>, 0x555555858ca8 <exec_byte_code+12154>, 0x555555858cf0 <exec_byte_code+12226>, 0x555555858d58 <exec_byte_code+12330>, 0x555555858dc0 <exec_byte_code+12434>, 0x555555858e08 <exec_byte_code+12506>, 0x555555858ec5 <exec_byte_code+12695>, 0x555555858f2d <exec_byte_code+12799>, 0x555555858f95 <exec_byte_code+12903>, 0x555555858ffd <exec_byte_code+13007>, 0x555555859040 <exec_byte_code+13074>, 0x5555558598a1 <exec_byte_code+15219>, 0x555555856f93 <exec_byte_code+4709>, 0x555555856b3d <exec_byte_code+3599>, 0x5555558563f6 <exec_byte_code+1736>, 0x555555856bee <exec_byte_code+3776>, 0x555555856c72 <exec_byte_code+3908>, 0x555555856cf3 <exec_byte_code+4037>, 0x555555856f47 <exec_byte_code+4633>, 0x555555856f5c <exec_byte_code+4654>, 0x55555585688b <exec_byte_code+2909>, 0x555555857016 <exec_byte_code+4840>, 0x555555857084 <exec_byte_code+4950>, 0x555555857115 <exec_byte_code+5095>, 0x55555585715e <exec_byte_code+5168>, 0x55555585733f <exec_byte_code+5649>, 0x5555558573bc <exec_byte_code+5774>, 0x555555857441 <exec_byte_code+5907>, 0x5555558574a7 <exec_byte_code+6009>, 0x555555856aef <exec_byte_code+3521>, 0x555555859088 <exec_byte_code+13146>, 0x55555585910d <exec_byte_code+13279>, 0x555555859155 <exec_byte_code+13351>, 0x55555585919d <exec_byte_code+13423>, 0x5555558591e5 <exec_byte_code+13495>, 0x55555585922d <exec_byte_code+13567>, 0x555555859295 <exec_byte_code+13671>, 0x5555558592fd <exec_byte_code+13775>, 0x555555859365 <exec_byte_code+13879>, 0x5555558593cd <exec_byte_code+13983>, 0x555555859516 <exec_byte_code+14312>, 0x55555585957e <exec_byte_code+14416>, 0x5555558595e6 <exec_byte_code+14520>, 0x55555585962e <exec_byte_code+14592>, 0x555555859696 <exec_byte_code+14696>, 0x5555558596fe <exec_byte_code+14800>, 0x555555859746 <exec_byte_code+14872>, 0x55555585978e <exec_byte_code+14944>, 0x555555858626 <exec_byte_code+10488>, 0x555555858675 <exec_byte_code+10567>, 0x5555558597dd <exec_byte_code+15023>, 0x55555585983f <exec_byte_code+15121>, 0x5555558598a1 <exec_byte_code+15219>, 0x555555856d74 <exec_byte_code+4166>, 0x555555856d91 <exec_byte_code+4195>, 0x555555856e00 <exec_byte_code+4306>, 0x555555856e6f <exec_byte_code+4417>, 0x555555856edb <exec_byte_code+4525>, 0x555555857a2f <exec_byte_code+7425>, 0x555555857f16 <exec_byte_code+8680>, 0x5555558587ca <exec_byte_code+10908>, 0x555555859a38 <exec_byte_code+15626>, 0x555555859aad <exec_byte_code+15743>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x555555859b43 <exec_byte_code+15893>, 0x555555859bca <exec_byte_code+16028>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x5555558598a1 <exec_byte_code+15219>, 0x555555859d18 <exec_byte_code+16362> <repeats 64 times>} const_length = 24 bytestr_length = 138 vectorp = 0x7ffff2610d68 quitcounter = 1 '\001' stack_items = 14 sa_avail = 16134 sa_count = 5 alloc = 0x7fffffffd6e0 stack_base = 0x7fffffffd6e0 top = 0x7fffffffd718 stack_lim = 0x7fffffffd750 bytestr_data = 0x7fffffffd750 "\304\020\211?\205\023" pc = 0x7fffffffd7b2 "\006\006\071\203\211" count = 5 result = XIL(0x30) #18 0x00005555557fdb34 in fetch_and_exec_byte_code (fun=XIL(0x7ffff2610d35), syms_left=make_fixnum(1025), nargs=1, args=0x7fffffffdc88) at ../../master/src/eval.c:3036 #19 0x00005555557fdfba in funcall_lambda (fun=XIL(0x7ffff2610d35), nargs=1, arg_vector=0x7fffffffdc88) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffdc00) syms_left = make_fixnum(1025) next = XIL(0x555555e62060) lexenv = XIL(0x1800000000) count = 5 i = 93824994985156 optional = false rest = false #20 0x00005555557fd38d in Ffuncall (nargs=2, args=0x7fffffffdc80) at ../../master/src/eval.c:2916 fun = XIL(0x7ffff2610d35) original_fun = XIL(0x4470) funcar = XIL(0) numargs = 1 val = XIL(0x7fffffffdca8) count = 4 #21 0x00005555557fcb57 in call1 (fn=XIL(0x4470), arg1=XIL(0x17286d0)) at ../../master/src/eval.c:2774 #22 0x000055555572150e in command_loop_1 () at ../../master/src/keyboard.c:1466 scount = 3 cmd = XIL(0x17286d0) keybuf = {make_fixnum(81), XIL(0x7ffff2c1d0d5), XIL(0), XIL(0), XIL(0x7fffffffdd70), XIL(0x5555557fcbe1), XIL(0), XIL(0x7ffff25734c4), XIL(0x5555586b9583), XIL(0), XIL(0x555555e62060), XIL(0), XIL(0x7fffffffdd50), make_fixnum(23456248526024), XIL(0), XIL(0), XIL(0x555555e62060), XIL(0), XIL(0x7fffffffdd80), XIL(0x5555557f3f8b), XIL(0), XIL(0x555555e62060), XIL(0), XIL(0), XIL(0x7fffffffdda0), XIL(0x5555557f3fdf), make_fixnum(2), make_fixnum(0), XIL(0x7fffffffdde0), XIL(0x5555557f9645)} i = 1 prev_modiff = 262 prev_buffer = 0x555557376798 already_adjusted = false #23 0x00005555557f9105 in internal_condition_case (bfun=0x555555720cb8 <command_loop_1>, handlers=XIL(0x90), hfun=0x5555557202db <cmd_error>) at ../../master/src/eval.c:1439 val = XIL(0x5555560c2983) c = 0x555555f5d3e0 #24 0x00005555557208a8 in command_loop_2 (ignore=XIL(0)) at ../../master/src/keyboard.c:1094 val = make_fixnum(0) #25 0x00005555557f8515 in internal_catch (tag=XIL(0xd9e0), func=0x55555572087b <command_loop_2>, arg=XIL(0)) at ../../master/src/eval.c:1189 val = XIL(0xd9e0) c = 0x555555f46710 #26 0x0000555555720847 in command_loop () at ../../master/src/keyboard.c:1073 #27 0x000055555571fdc4 in recursive_edit_1 () at ../../master/src/keyboard.c:720 count = 1 val = XIL(0x7fffffffdf50) #28 0x000055555571ffbb in Frecursive_edit () at ../../master/src/keyboard.c:789 count = 0 buffer = XIL(0) #29 0x000055555571bea0 in main (argc=2, argv=0x7fffffffe1b8) at ../../master/src/emacs.c:2050 stack_bottom_variable = 0x7ffff617e053 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 1 temacs = 0x0 attempt_load_pdump = true rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = 0x0 sockfd = -1 module_assertions = false Lisp Backtrace: "kill-buffer" (0xffffcbf0) "gnus-summary-exit-no-update" (0xffffd390) "funcall-interactively" (0xffffd388) "call-interactively" (0xffffd720) "command-execute" (0xffffdc88) -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-31 13:53 ` Michael Welsh Duggan @ 2021-03-31 14:01 ` Eli Zaretskii 2021-03-31 14:32 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-31 14:01 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Cc: Eli Zaretskii <eliz@gnu.org>, "mwd@md5i.com" <mwd@md5i.com>, > "schwab@linux-m68k.org" <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" > <47244@debbugs.gnu.org> > Date: Wed, 31 Mar 2021 09:53:56 -0400 > > And, trapped! Backtrace is included. Maybe unfortunately, it isn't one > of the new easserts, but at least we now have a different backtrace. > Hopefully that will lead to new insights. I will note that, in this > instance, the reproducer did not follow the same formula, as you can see > in the Lisp backtrace. > > #0 raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:50 > set = { > __val = {402653184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268435456, 0, 0, 93824994300624, 18446744067266838271} > } > pid = <optimized out> > tid = <optimized out> > #1 0x00005555557197a1 in terminate_due_to_signal > (sig=6, backtrace_limit=2147483647) at ../../master/src/emacs.c:416 > #2 0x00005555557c4858 in die > (msg=0x55555594f2a0 "b->window_count == 0", file=0x55555594da8a "../../master/src/buffer.c", line=1969) at ../../master/src/alloc.c:7420 > #3 0x0000555555759190 in Fkill_buffer (buffer_or_name=XIL(0x555557888814)) > at ../../master/src/buffer.c:1969 > buffer = XIL(0x555557889325) > b = 0x555557889320 > tem = XIL(0) > m = 0x0 So replace_buffer_in_windows didn't do its job? Unfortunately, this assertion is _after_ we make the buffer's name nil, so no way of knowing for sure which buffer is that, except by looking at the Lisp which triggered that. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-31 14:01 ` Eli Zaretskii @ 2021-03-31 14:32 ` martin rudalics 2021-03-31 14:48 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-03-31 14:32 UTC (permalink / raw) To: Eli Zaretskii, Michael Welsh Duggan; +Cc: mwd, schwab, 47244 >> #0 raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:50 >> set = { >> __val = {402653184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268435456, 0, 0, 93824994300624, 18446744067266838271} >> } >> pid = <optimized out> >> tid = <optimized out> >> #1 0x00005555557197a1 in terminate_due_to_signal >> (sig=6, backtrace_limit=2147483647) at ../../master/src/emacs.c:416 >> #2 0x00005555557c4858 in die >> (msg=0x55555594f2a0 "b->window_count == 0", file=0x55555594da8a "../../master/src/buffer.c", line=1969) at ../../master/src/alloc.c:7420 >> #3 0x0000555555759190 in Fkill_buffer (buffer_or_name=XIL(0x555557888814)) >> at ../../master/src/buffer.c:1969 >> buffer = XIL(0x555557889325) >> b = 0x555557889320 >> tem = XIL(0) >> m = 0x0 > > So replace_buffer_in_windows didn't do its job? Why did replace_buffer_in_windows_safely then apparently fail too? What is the value of b->window_count here? Unless we managed to botch that's buffer's window count, I can't see how replace_buffer_in_windows_safely could have possibly failed. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-31 14:32 ` martin rudalics @ 2021-03-31 14:48 ` Michael Welsh Duggan 2021-03-31 15:49 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-31 14:48 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > >> #0 raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:50 > >> set = { > >> __val = {402653184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268435456, 0, 0, 93824994300624, 18446744067266838271} > >> } > >> pid = <optimized out> > >> tid = <optimized out> > >> #1 0x00005555557197a1 in terminate_due_to_signal > >> (sig=6, backtrace_limit=2147483647) at ../../master/src/emacs.c:416 > >> #2 0x00005555557c4858 in die > >> (msg=0x55555594f2a0 "b->window_count == 0", file=0x55555594da8a "../../master/src/buffer.c", line=1969) at ../../master/src/alloc.c:7420 > >> #3 0x0000555555759190 in Fkill_buffer (buffer_or_name=XIL(0x555557888814)) > >> at ../../master/src/buffer.c:1969 > >> buffer = XIL(0x555557889325) > >> b = 0x555557889320 > >> tem = XIL(0) > >> m = 0x0 > > > > So replace_buffer_in_windows didn't do its job? > > Why did replace_buffer_in_windows_safely then apparently fail too? What > is the value of b->window_count here? Unless we managed to botch that's > buffer's window count, I can't see how replace_buffer_in_windows_safely > could have possibly failed. b->window_count is 1. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-31 14:48 ` Michael Welsh Duggan @ 2021-03-31 15:49 ` martin rudalics 2021-03-31 17:01 ` Michael Welsh Duggan 2021-04-01 13:54 ` Michael Welsh Duggan 0 siblings, 2 replies; 160+ messages in thread From: martin rudalics @ 2021-03-31 15:49 UTC (permalink / raw) To: Michael Welsh Duggan Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org [-- Attachment #1: Type: text/plain, Size: 175 bytes --] > b->window_count is 1. What else should I have expected? I attach yet another diff. When the same assertion triggers we'll at least know which buffer got killed. martin [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: selected_window_contents.diff --] [-- Type: text/x-patch; name="selected_window_contents.diff", Size: 6925 bytes --] diff --git a/src/buffer.c b/src/buffer.c index 8e33162989..70b37e61a2 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1951,6 +1951,9 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", This gets rid of them for certain. */ reset_buffer_local_variables (b, 1); + if (!b->base_buffer) + eassert (b->window_count == 0); + bset_name (b, Qnil); block_input (); @@ -1991,6 +1994,8 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", run_buffer_list_update_hook (b); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qt; } \f @@ -2151,6 +2156,9 @@ set_buffer_internal_1 (register struct buffer *b) BUFFER_CHECK_INDIRECTION (b); + if (!BUFFER_LIVE_P (b)) + error ("Selecting deleted buffer"); + old_buf = current_buffer; current_buffer = b; last_known_column_point = -1; /* Invalidate indentation cache. */ diff --git a/src/window.c b/src/window.c index eb16e2a433..baf9ed2d90 100644 --- a/src/window.c +++ b/src/window.c @@ -307,7 +307,11 @@ wset_buffer (struct window *w, Lisp_Object val) if (BUFFERP (val)) /* Make sure that we do not assign the buffer to an internal window. */ - eassert (MARKERP (w->start) && MARKERP (w->pointm)); + { + eassert (BUFFER_LIVE_P (XBUFFER (val))); + eassert (MARKERP (w->start) && MARKERP (w->pointm)); + } + w->contents = val; adjust_window_count (w, 1); } @@ -315,6 +319,7 @@ wset_buffer (struct window *w, Lisp_Object val) static void wset_old_buffer (struct window *w, Lisp_Object val) { + eassert (BUFFER_LIVE_P (XBUFFER (val))); w->old_buffer = val; } @@ -594,6 +599,8 @@ select_window_1 (Lisp_Object window, bool inhibit_point_swap) selected_window = window; + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Go to the point recorded in the window. This is important when the buffer is in more than one window. It also matters when @@ -2950,6 +2957,8 @@ DEFUN ("window-list-1", Fwindow_list_1, Swindow_list_1, 0, 3, 0, CHECK_ALL_WINDOWS /* Arg is ignored */ }; +static int replace_buffer_in_windows_safely_count; + static Lisp_Object window_loop (enum window_loop type, Lisp_Object obj, bool mini, Lisp_Object frames) @@ -3048,6 +3057,8 @@ window_loop (enum window_loop type, Lisp_Object obj, bool mini, if (EQ (window, selected_window) && XBUFFER (w->contents) == current_buffer) Fset_buffer (w->contents); + + replace_buffer_in_windows_safely_count += 1; } break; @@ -3411,6 +3422,8 @@ DEFUN ("delete-other-windows-internal", Fdelete_other_windows_internal, replace_buffer_in_windows (Lisp_Object buffer) { call1 (Qreplace_buffer_in_windows, buffer); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* If BUFFER is shown in a window, safely replace it with some other @@ -3419,6 +3432,10 @@ replace_buffer_in_windows (Lisp_Object buffer) void replace_buffer_in_windows_safely (Lisp_Object buffer) { + int count = buffer_window_count (XBUFFER (buffer)); + + replace_buffer_in_windows_safely_count = 0; + if (buffer_window_count (XBUFFER (buffer))) { Lisp_Object tail, frame; @@ -3429,6 +3446,8 @@ replace_buffer_in_windows_safely (Lisp_Object buffer) FOR_EACH_FRAME (tail, frame) window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); } + + eassert (count == replace_buffer_in_windows_safely_count); } \f /* The following three routines are needed for running a window's @@ -3960,6 +3979,8 @@ run_window_change_functions (void) /* Record changes for all frames (if asked for), selected window and frame. */ unbind_to (count, Qnil); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Make WINDOW display BUFFER. RUN_HOOKS_P means it's allowed @@ -4054,6 +4075,9 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer, if (!samebuf && !MINI_WINDOW_P (w) && !WINDOW_PSEUDO_P (w)) FRAME_WINDOW_CHANGE (XFRAME (w->frame)) = true; + if (WINDOWP (selected_window)) + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + unbind_to (count, Qnil); } @@ -5174,6 +5198,8 @@ DEFUN ("delete-window-internal", Fdelete_window_internal, Sdelete_window_interna error ("Deletion failed"); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qnil; } \f @@ -7233,6 +7259,9 @@ DEFUN ("set-window-configuration", Fset_window_configuration, minibuf_selected_window = data->minibuf_selected_window; SAFE_FREE (); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return FRAME_LIVE_P (f) ? Qt : Qnil; } diff --git a/src/xdisp.c b/src/xdisp.c index cc0a689ba3..ea64e5037a 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -12980,6 +12980,8 @@ restore_selected_window (Lisp_Object window) /* Abort if we cannot find a live frame. */ emacs_abort (); } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Restore WINDOW, if live, as its frame's selected window. */ @@ -12997,6 +12999,8 @@ restore_frame_selected_window (Lisp_Object window) if (EQ (frame, selected_frame)) selected_window = window; } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Update the tab-bar item list for frame F. This has to be done @@ -13074,6 +13078,8 @@ update_tab_bar (struct frame *f, bool save_match_data) XSETFRAME (frame, f); selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); #endif /* Build desired tab-bar items from keymaps. */ @@ -14010,6 +14016,8 @@ update_tool_bar (struct frame *f, bool save_match_data) selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Build desired tool-bar items from keymaps. */ new_tool_bar = tool_bar_items (Fcopy_sequence (f->tool_bar_items), @@ -17246,6 +17254,8 @@ run_window_scroll_functions (Lisp_Object window, struct text_pos startp) set_buffer_internal (XBUFFER (w->contents)); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return startp; } @@ -25450,6 +25460,8 @@ display_mode_lines (struct window *w) unbind_to (count, Qnil); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + if (n > 0) w->must_be_updated_p = true; return n; ^ permalink raw reply related [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-31 15:49 ` martin rudalics @ 2021-03-31 17:01 ` Michael Welsh Duggan 2021-03-31 18:41 ` martin rudalics 2021-04-01 13:54 ` Michael Welsh Duggan 1 sibling, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-31 17:01 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: >> b->window_count is 1. > > What else should I have expected? I attach yet another diff. When the > same assertion triggers we'll at least know which buffer got killed. I have no idea what changed to cause this, but with this current patchset I can't actually start emacs. #0 set_buffer_internal_2 (b=0x7ffff2a3cb10) at ../../master/src/buffer.c:2157 old_buf = 0x0 tail = XIL(0x7ffff2a3cb15) #1 0x0000555555759834 in set_buffer_internal_1 (b=0x7ffff2a3cb10) at ../../master/src/buffer.c:2146 #2 0x0000555555753b93 in set_buffer_internal (b=0x7ffff2a3cb10) at ../../master/src/buffer.h:1184 #3 0x0000555555759b16 in Fset_buffer (buffer_or_name=XIL(0x7ffff2a3cb15)) at ../../master/src/buffer.c:2246 buffer = XIL(0x7ffff2a3cb15) #4 0x000055555564f0e4 in set_window_buffer (window=XIL(0x555555f06315), buffer=XIL(0x7ffff2a3cb15), run_hooks_p=false, keep_margins_p=false) at ../../master/src/window.c:4041 w = 0x555555f06310 b = 0x7ffff2a3cb10 count = 0 samebuf = false #5 0x00005555555a958f in make_frame (mini_p=true) at ../../master/src/frame.c:978 frame = XIL(0x555555efe9dd) f = 0x555555efe9d8 rw = 0x555555efec40 mw = 0x555555f06310 root_window = XIL(0x555555efec45) mini_window = XIL(0x555555f06315) #6 0x00005555555a9b5c in make_initial_frame () at ../../master/src/frame.c:1105 f = 0x7fffffffdbc0 terminal = 0x555555efe7c0 frame = make_fixnum(23456248299993) #7 0x000055555565cce3 in init_window_once_for_pdumper () at ../../master/src/window.c:8198 old_mode_line_in_non_selected_windows = true saved_dumped_with_pdumper = true f = 0x7fffffffdbd0 #8 0x00005555557d1f02 in pdumper_load (dump_filename=0x555555ec59f0 "/home/md5i/src/emacs/build/src/emacs.pdmp") at ../../master/src/pdumper.c:5402 i = 7 dump_size = 10671168 stat = { st_dev = 26, st_ino = 2932069, st_nlink = 2, st_mode = 33188, st_uid = 1000, st_gid = 1000, __pad0 = 0, st_rdev = 0, st_size = 10671168, st_blksize = 4096, st_blocks = 20848, st_atim = { tv_sec = 1617209633, tv_nsec = 635319963 }, st_mtim = { tv_sec = 1617209633, tv_nsec = 619319612 }, st_ctim = { tv_sec = 1617209633, tv_nsec = 619319612 }, __glibc_reserved = {0, 0, 0} } dump_base = 140737259114496 dump_page_size = 65536 adj_discardable_start = 7208960 mark_bits = {{ bits = 0x7ffff252a010, number_words = 13995 }, { bits = 0x7ffff2545568, number_words = 13995 }} mark_bits_needed = 895639 header_buf = { magic = "DUMPEDGNUEMACS\000", fingerprint = "\336xݮhP\231\005n\261\265\071\226\201&\267\017L\211\005J\212K\366\242\263\274\250)H\353m", dump_relocs = { offset = 8354696, nr_entries = 405189 }, object_starts = { offset = 9975456, nr_entries = 161879 }, emacs_relocs = { offset = 10622976, nr_entries = 3012 }, discardable_start = 7165112, cold_start = 7340032, hash_list = 7160960 } header = 0x7fffffffdd50 sections = {{ spec = { fd = 3, size = 7208960, offset = 0, protection = DUMP_MEMORY_ACCESS_READWRITE }, mapping = 0x0, release = 0x0, private = 0x0 }, { spec = { fd = 3, size = 131072, offset = 7208960, protection = DUMP_MEMORY_ACCESS_READWRITE }, mapping = 0x0, release = 0x0, private = 0x0 }, { spec = { fd = 3, size = 3331136, offset = 7340032, protection = DUMP_MEMORY_ACCESS_READWRITE }, mapping = 0x0, release = 0x0, private = 0x0 }} start_time = { tv_sec = 1617209923, tv_nsec = 161514409 } dump_filename_copy = 0x555555ec5a80 "/home/md5i/src/emacs/build/src/emacs.pdmp" err = 0 dump_fd = 3 desired = "\336xݮhP\231\005n\261\265\071\226\201&\267\017L\211\005J\212K\366\242\263\274\250)H\353m" hashes = XIL(0x7ffff2c35485) load_timespec = { tv_sec = 0, tv_nsec = 0 } #9 0x000055555571a568 in load_pdump (argc=1, argv=0x7fffffffe1c8) at ../../master/src/emacs.c:860 real_exename = 0x555555ec59f0 "/home/md5i/src/emacs/build/src/emacs.pdmp" exenamelen = 36 needed = 42 suffix = 0x555555946c46 ".pdmp" result = 124 strip_suffix = 0x0 path_exec = 0x555555946c78 "/usr/local/libexec/emacs/28.0.50/x86_64-pc-linux-gnu" dump_file = 0x555555ec59f0 "/home/md5i/src/emacs/build/src/emacs.pdmp" skip_args = 0 bufsize = 128 argv0_base = 0x7fffffffe010 "\251\221\234!" needed = 140737318400460 #10 0x000055555571aac9 in main (argc=1, argv=0x7fffffffe1c8) at ../../master/src/emacs.c:1068 stack_bottom_variable = 0x7ffff617e053 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 0 temacs = 0x0 attempt_load_pdump = true rlim = { rlim_cur = 140737323689568, rlim_max = 140737318407889 } lc_all = 0x687475410000001e <error: Cannot access memory at address 0x687475410000001e> sockfd = 0 module_assertions = false -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-31 17:01 ` Michael Welsh Duggan @ 2021-03-31 18:41 ` martin rudalics 2021-03-31 19:14 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-03-31 18:41 UTC (permalink / raw) To: Michael Welsh Duggan Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org > I have no idea what changed to cause this, but with this current > patchset I can't actually start emacs. > > #0 set_buffer_internal_2 (b=0x7ffff2a3cb10) at ../../master/src/buffer.c:2157 > old_buf = 0x0 > tail = XIL(0x7ffff2a3cb15) I doubt that my last additions can have cause that and line 2157 is BUFFER_CHECK_INDIRECTION (b); so I wonder what could have gone wrong here. Maybe some pdumper snafu? Does it start with emacs -Q? Does it start with --enable-checking=no? Does it start without the changeset applied? martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-31 18:41 ` martin rudalics @ 2021-03-31 19:14 ` Michael Welsh Duggan 2021-03-31 19:18 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-31 19:14 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > I have no idea what changed to cause this, but with this current > > patchset I can't actually start emacs. > > > > #0 set_buffer_internal_2 (b=0x7ffff2a3cb10) at > > ../../master/src/buffer.c:2157 > > old_buf = 0x0 > > tail = XIL(0x7ffff2a3cb15) > > I doubt that my last additions can have cause that and line 2157 is > > BUFFER_CHECK_INDIRECTION (b); > > so I wonder what could have gone wrong here. Maybe some pdumper snafu? > > Does it start with emacs -Q? Nope. It fails. > Does it start with --enable-checking=no? Yes. > Does it start without the changeset applied? Yes. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-31 19:14 ` Michael Welsh Duggan @ 2021-03-31 19:18 ` Michael Welsh Duggan 2021-04-01 7:14 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-03-31 19:18 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org Michael Welsh Duggan <mwd@cert.org> writes: > martin rudalics <rudalics@gmx.at> writes: > >> > I have no idea what changed to cause this, but with this current >> > patchset I can't actually start emacs. >> > >> > #0 set_buffer_internal_2 (b=0x7ffff2a3cb10) at >> > ../../master/src/buffer.c:2157 >> > old_buf = 0x0 >> > tail = XIL(0x7ffff2a3cb15) >> >> I doubt that my last additions can have cause that and line 2157 is >> >> BUFFER_CHECK_INDIRECTION (b); >> >> so I wonder what could have gone wrong here. Maybe some pdumper snafu? >> >> Does it start with emacs -Q? > > Nope. It fails. > >> Does it start with --enable-checking=no? > > Yes. > >> Does it start without the changeset applied? > > Yes. Also verified that using with the previous changeset with --enable-checking=yes still works. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-31 19:18 ` Michael Welsh Duggan @ 2021-04-01 7:14 ` martin rudalics 2021-04-01 7:45 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-01 7:14 UTC (permalink / raw) To: Michael Welsh Duggan Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org >>> Does it start with emacs -Q? >> >> Nope. It fails. Strange. I have no problems running the changeset with ... GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.16.0, Xaw3d scroll bars) of 2021-04-01 built on restno Repository revision: b4a125e5ad1de3eb770dff12017f1e0658c4c6a2 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12004000 System Description: Debian GNU/Linux 10 (buster) Configured using: 'configure --with-gif=ifavailable --with-tiff=ifavailable --with-gnutls=no --without-pop --enable-gcc-warnings=warn-only --with-x-toolkit=lucid --enable-checking=yes --enable-check-lisp-object-type=yes 'CFLAGS=-O0 -g3 -no-pie'' Configured features: CAIRO DBUS FREETYPE GIF GLIB GSETTINGS HARFBUZZ JPEG LIBSELINUX MODULES NOTIFY INOTIFY PDUMPER PNG SOUND THREADS TOOLKIT_SCROLL_BARS X11 XAW3D XDBE XIM XPM LUCID ZLIB ... which is almost yours but for a few missing features. > Also verified that using with the previous changeset with > --enable-checking=yes still works. Which of the two additions is responsible? Try to remove or comment out either the two lines in buffer.c if (!b->base_buffer) eassert (b->window_count == 0); or all four lines containing replace_buffer_in_windows_safely_count in window.c, as there are static int replace_buffer_in_windows_safely_count; replace_buffer_in_windows_safely_count += 1; replace_buffer_in_windows_safely_count = 0; eassert (count == replace_buffer_in_windows_safely_count); Otherwise I'm clueless. Maybe Eli has an idea. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-01 7:14 ` martin rudalics @ 2021-04-01 7:45 ` Eli Zaretskii 2021-04-01 13:20 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-04-01 7:45 UTC (permalink / raw) To: martin rudalics; +Cc: mwd, schwab, 47244, mwd > Cc: Eli Zaretskii <eliz@gnu.org>, "mwd@md5i.com" <mwd@md5i.com>, > "schwab@linux-m68k.org" <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > From: martin rudalics <rudalics@gmx.at> > Date: Thu, 1 Apr 2021 09:14:06 +0200 > > Otherwise I'm clueless. Maybe Eli has an idea. I would like first to understand what prevents Emacs from starting. Does it crash at that point, i.e. inside the call to BUFFER_CHECK_INDIRECTION? if so, can Michael please try to identify what is the immediate cause of the crash? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-01 7:45 ` Eli Zaretskii @ 2021-04-01 13:20 ` Michael Welsh Duggan 2021-04-01 13:22 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-01 13:20 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd, schwab, 47244, mwd Eli Zaretskii <eliz@gnu.org> writes: >> Cc: Eli Zaretskii <eliz@gnu.org>, "mwd@md5i.com" <mwd@md5i.com>, >> "schwab@linux-m68k.org" <schwab@linux-m68k.org>, >> "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> >> From: martin rudalics <rudalics@gmx.at> >> Date: Thu, 1 Apr 2021 09:14:06 +0200 >> >> Otherwise I'm clueless. Maybe Eli has an idea. > > I would like first to understand what prevents Emacs from starting. > Does it crash at that point, i.e. inside the call to > BUFFER_CHECK_INDIRECTION? if so, can Michael please try to identify > what is the immediate cause of the crash? And I find I can't ansswer the question. I rebuilt to give that information, and this time everything is working just fine with --enable-checking and the most recent debugging patch. No idea what happened yesterday. I will say that what happened yesterday was not a crash. It was a breakpoint on the error ("Selecting deleted buffer"); libe that was added to set_buffer_internal_2. I think maybe I overused that gdb session and it got confused. I'm running now with the latest patch and we'll see if the problem triggers today. -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-01 13:20 ` Michael Welsh Duggan @ 2021-04-01 13:22 ` Eli Zaretskii 0 siblings, 0 replies; 160+ messages in thread From: Eli Zaretskii @ 2021-04-01 13:22 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244, mwd > From: Michael Welsh Duggan <mwd@md5i.com> > Cc: martin rudalics <rudalics@gmx.at>, mwd@cert.org, mwd@md5i.com, > schwab@linux-m68k.org, 47244@debbugs.gnu.org > Date: Thu, 01 Apr 2021 09:20:48 -0400 > > Eli Zaretskii <eliz@gnu.org> writes: > > >> Cc: Eli Zaretskii <eliz@gnu.org>, "mwd@md5i.com" <mwd@md5i.com>, > >> "schwab@linux-m68k.org" <schwab@linux-m68k.org>, > >> "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > >> From: martin rudalics <rudalics@gmx.at> > >> Date: Thu, 1 Apr 2021 09:14:06 +0200 > >> > >> Otherwise I'm clueless. Maybe Eli has an idea. > > > > I would like first to understand what prevents Emacs from starting. > > Does it crash at that point, i.e. inside the call to > > BUFFER_CHECK_INDIRECTION? if so, can Michael please try to identify > > what is the immediate cause of the crash? > > And I find I can't ansswer the question. I rebuilt to give that > information, and this time everything is working just fine with > --enable-checking and the most recent debugging patch. No idea what > happened yesterday. Great, thanks. > I will say that what happened yesterday was not a crash. It was a > breakpoint on the > > error ("Selecting deleted buffer"); > > libe that was added to set_buffer_internal_2. I think maybe I overused > that gdb session and it got confused. I'm running now with the latest > patch and we'll see if the problem triggers today. There's no need to debug problems that cannot be reproduced. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-31 15:49 ` martin rudalics 2021-03-31 17:01 ` Michael Welsh Duggan @ 2021-04-01 13:54 ` Michael Welsh Duggan 2021-04-01 14:56 ` martin rudalics 1 sibling, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-01 13:54 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > b->window_count is 1. > > What else should I have expected? I attach yet another diff. When the > same assertion triggers we'll at least know which buffer got killed. > > martin > Okay. I got a nice trigger from this. I've added some extra debugging info after the backtrace. #0 terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at ../../master/src/emacs.c:379 #1 0x00005555557c48ef in die (msg=0x55555590f830 "count == replace_buffer_in_windows_safely_count", file=0x55555590e9cf "../../master/src/window.c", line=3450) at ../../master/src/alloc.c:7420 #2 0x000055555564d93a in replace_buffer_in_windows_safely (buffer=XIL(0x5555578531b5)) at ../../master/src/window.c:3450 count = 1 #3 0x0000555555758e1a in Fkill_buffer (buffer_or_name=XIL(0x5555578531b5)) at ../../master/src/buffer.c:1880 buffer = XIL(0x5555578531b5) b = 0x5555578531b0 tem = XIL(0) m = 0x7fffffffcbc0 #4 0x00005555557fd918 in funcall_subr (subr=0x555555dd8ce0 <Skill_buffer>, numargs=1, args=0x7fffffffcce8) at ../../master/src/eval.c:2987 internal_argbuf = {XIL(0x7fffffffcc20), XIL(0x1000000000), XIL(0x555555dd8ce0), XIL(0x7fffffffcc28), XIL(0x5555557f455b), make_fixnum(17538469896), XIL(0x555555dd8ce5), XIL(0x7fffffffcc40)} internal_args = 0x7fffffffcce8 #5 0x00005555557fd3e0 in Ffuncall (nargs=2, args=0x7fffffffcce0) at ../../master/src/eval.c:2914 fun = XIL(0x555555dd8ce5) original_fun = XIL(0x2aaa9c7157c0) funcar = XIL(0x5ffffcca0) numargs = 1 val = XIL(0x7fffffffccc0) count = 10 #6 0x0000555555856aa3 in exec_byte_code (bytestr=XIL(0x5555576cf5b4), vector=XIL(0x5555576e7d15), maxdepth=make_fixnum(5), args_template=make_fixnum(0), nargs=0, args=0x7fffffffd390) at ../../master/src/bytecode.c:632 op = 1 type = (CATCHER_ALL | unknown: 0x557d70b4) targets = {0x555555859938 <exec_byte_code+15219>, 0x55555585995d <exec_byte_code+15256>, 0x55555585995f <exec_byte_code+15258>, 0x555555859961 <exec_byte_code+15260>, 0x555555859963 <exec_byte_code+15262>, 0x555555859963 <exec_byte_code+15262>, 0x5555558599c8 <exec_byte_code+15363>, 0x555555859a3c <exec_byte_code+15479>, 0x555555856363 <exec_byte_code+1438>, 0x555555856365 <exec_byte_code+1440>, 0x555555856367 <exec_byte_code+1442>, 0x555555856369 <exec_byte_code+1444>, 0x55555585636b <exec_byte_code+1446>, 0x55555585636b <exec_byte_code+1446>, 0x555555856371 <exec_byte_code+1452>, 0x555555856332 <exec_byte_code+1389>, 0x555555856789 <exec_byte_code+2500>, 0x55555585678b <exec_byte_code+2502>, 0x55555585678d <exec_byte_code+2504>, 0x55555585678f <exec_byte_code+2506>, 0x555555856791 <exec_byte_code+2508>, 0x555555856791 <exec_byte_code+2508>, 0x5555558567c6 <exec_byte_code+2561>, 0x555555856797 <exec_byte_code+2514>, 0x5555558569bb <exec_byte_code+3062>, 0x5555558569bd <exec_byte_code+3064>, 0x5555558569bf <exec_byte_code+3066>, 0x5555558569c1 <exec_byte_code+3068>, 0x5555558569c3 <exec_byte_code+3070>, 0x5555558569c3 <exec_byte_code+3070>, 0x555555856975 <exec_byte_code+2992>, 0x55555585698c <exec_byte_code+3015>, 0x555555856a70 <exec_byte_code+3243>, 0x555555856a72 <exec_byte_code+3245>, 0x555555856a74 <exec_byte_code+3247>, 0x555555856a76 <exec_byte_code+3249>, 0x555555856a78 <exec_byte_code+3251>, 0x555555856a78 <exec_byte_code+3251>, 0x555555856a2a <exec_byte_code+3173>, 0x555555856a41 <exec_byte_code+3196>, 0x555555856b22 <exec_byte_code+3421>, 0x555555856b24 <exec_byte_code+3423>, 0x555555856b26 <exec_byte_code+3425>, 0x555555856b28 <exec_byte_code+3427>, 0x555555856b2a <exec_byte_code+3429>, 0x555555856b2a <exec_byte_code+3429>, 0x555555856adc <exec_byte_code+3351>, 0x555555856af3 <exec_byte_code+3374>, 0x55555585738a <exec_byte_code+5573>, 0x55555585726d <exec_byte_code+5288>, 0x555555857264 <exec_byte_code+5279>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x5555558575c4 <exec_byte_code+6143>, 0x5555558576da <exec_byte_code+6421>, 0x555555857737 <exec_byte_code+6514>, 0x555555857797 <exec_byte_code+6610>, 0x5555558577f9 <exec_byte_code+6708>, 0x5555558565e2 <exec_byte_code+2077>, 0x55555585665d <exec_byte_code+2200>, 0x555555857872 <exec_byte_code+6829>, 0x55555585651f <exec_byte_code+1882>, 0x5555558566c5 <exec_byte_code+2304>, 0x5555558578da <exec_byte_code+6933>, 0x555555857942 <exec_byte_code+7037>, 0x55555585798a <exec_byte_code+7109>, 0x5555558579f2 <exec_byte_code+7213>, 0x555555857a58 <exec_byte_code+7315>, 0x555555857b3e <exec_byte_code+7545>, 0x555555857b86 <exec_byte_code+7617>, 0x555555857bee <exec_byte_code+7721>, 0x555555857c73 <exec_byte_code+7854>, 0x555555857cbb <exec_byte_code+7926>, 0x555555857d03 <exec_byte_code+7998>, 0x555555857d6b <exec_byte_code+8102>, 0x555555857dd3 <exec_byte_code+8206>, 0x555555857e3b <exec_byte_code+8310>, 0x555555857ec0 <exec_byte_code+8443>, 0x555555857f0f <exec_byte_code+8522>, 0x555555857f5e <exec_byte_code+8601>, 0x555555858025 <exec_byte_code+8800>, 0x55555585811e <exec_byte_code+9049>, 0x555555858217 <exec_byte_code+9298>, 0x555555858284 <exec_byte_code+9407>, 0x5555558582f1 <exec_byte_code+9516>, 0x55555585835e <exec_byte_code+9625>, 0x5555558583cb <exec_byte_code+9734>, 0x555555858438 <exec_byte_code+9843>, 0x555555858487 <exec_byte_code+9922>, 0x555555858581 <exec_byte_code+10172>, 0x5555558585d0 <exec_byte_code+10251>, 0x55555585861f <exec_byte_code+10330>, 0x55555585866e <exec_byte_code+10409>, 0x555555858774 <exec_byte_code+10671>, 0x5555558570e4 <exec_byte_code+4895>, 0x5555558587cf <exec_byte_code+10762>, 0x555555858817 <exec_byte_code+10834>, 0x5555558588d9 <exec_byte_code+11028>, 0x555555858942 <exec_byte_code+11133>, 0x55555585899d <exec_byte_code+11224>, 0x5555558589e5 <exec_byte_code+11296>, 0x555555858a28 <exec_byte_code+11363>, 0x555555858a6b <exec_byte_code+11430>, 0x555555858ab6 <exec_byte_code+11505>, 0x555555859938 <exec_byte_code+15219>, 0x555555858b0e <exec_byte_code+11593>, 0x555555858b51 <exec_byte_code+11660>, 0x555555858b94 <exec_byte_code+11727>, 0x555555858bd7 <exec_byte_code+11794>, 0x555555858c1a <exec_byte_code+11861>, 0x555555858c5d <exec_byte_code+11928>, 0x5555558570e4 <exec_byte_code+4895>, 0x555555859938 <exec_byte_code+15219>, 0x555555858ca5 <exec_byte_code+12000>, 0x555555858cf7 <exec_byte_code+12082>, 0x555555858d3f <exec_byte_code+12154>, 0x555555858d87 <exec_byte_code+12226>, 0x555555858def <exec_byte_code+12330>, 0x555555858e57 <exec_byte_code+12434>, 0x555555858e9f <exec_byte_code+12506>, 0x555555858f5c <exec_byte_code+12695>, 0x555555858fc4 <exec_byte_code+12799>, 0x55555585902c <exec_byte_code+12903>, 0x555555859094 <exec_byte_code+13007>, 0x5555558590d7 <exec_byte_code+13074>, 0x555555859938 <exec_byte_code+15219>, 0x55555585702a <exec_byte_code+4709>, 0x555555856bd4 <exec_byte_code+3599>, 0x55555585648d <exec_byte_code+1736>, 0x555555856c85 <exec_byte_code+3776>, 0x555555856d09 <exec_byte_code+3908>, 0x555555856d8a <exec_byte_code+4037>, 0x555555856fde <exec_byte_code+4633>, 0x555555856ff3 <exec_byte_code+4654>, 0x555555856922 <exec_byte_code+2909>, 0x5555558570ad <exec_byte_code+4840>, 0x55555585711b <exec_byte_code+4950>, 0x5555558571ac <exec_byte_code+5095>, 0x5555558571f5 <exec_byte_code+5168>, 0x5555558573d6 <exec_byte_code+5649>, 0x555555857453 <exec_byte_code+5774>, 0x5555558574d8 <exec_byte_code+5907>, 0x55555585753e <exec_byte_code+6009>, 0x555555856b86 <exec_byte_code+3521>, 0x55555585911f <exec_byte_code+13146>, 0x5555558591a4 <exec_byte_code+13279>, 0x5555558591ec <exec_byte_code+13351>, 0x555555859234 <exec_byte_code+13423>, 0x55555585927c <exec_byte_code+13495>, 0x5555558592c4 <exec_byte_code+13567>, 0x55555585932c <exec_byte_code+13671>, 0x555555859394 <exec_byte_code+13775>, 0x5555558593fc <exec_byte_code+13879>, 0x555555859464 <exec_byte_code+13983>, 0x5555558595ad <exec_byte_code+14312>, 0x555555859615 <exec_byte_code+14416>, 0x55555585967d <exec_byte_code+14520>, 0x5555558596c5 <exec_byte_code+14592>, 0x55555585972d <exec_byte_code+14696>, 0x555555859795 <exec_byte_code+14800>, 0x5555558597dd <exec_byte_code+14872>, 0x555555859825 <exec_byte_code+14944>, 0x5555558586bd <exec_byte_code+10488>, 0x55555585870c <exec_byte_code+10567>, 0x555555859874 <exec_byte_code+15023>, 0x5555558598d6 <exec_byte_code+15121>, 0x555555859938 <exec_byte_code+15219>, 0x555555856e0b <exec_byte_code+4166>, 0x555555856e28 <exec_byte_code+4195>, 0x555555856e97 <exec_byte_code+4306>, 0x555555856f06 <exec_byte_code+4417>, 0x555555856f72 <exec_byte_code+4525>, 0x555555857ac6 <exec_byte_code+7425>, 0x555555857fad <exec_byte_code+8680>, 0x555555858861 <exec_byte_code+10908>, 0x555555859acf <exec_byte_code+15626>, 0x555555859b44 <exec_byte_code+15743>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15893>, 0x555555859c61 <exec_byte_code+16028>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859daf <exec_byte_code+16362> <repeats 64 times>} const_length = 9 bytestr_length = 40 vectorp = 0x5555576e7d18 quitcounter = 1 '\001' stack_items = 6 sa_avail = 16296 sa_count = 10 alloc = 0x7fffffffccd0 stack_base = 0x7fffffffccd0 top = 0x7fffffffcce0 stack_lim = 0x7fffffffcd00 bytestr_data = 0x7fffffffcd00 "\300\301!\210p\211\211\205\026" pc = 0x7fffffffcd1e "\210\305 \210\210\306\307\310\"\207\242^\205UUU" count = 10 result = XIL(0xe0d0) #7 0x00005555557fdbcb in fetch_and_exec_byte_code (fun=XIL(0x5555576e7d65), syms_left=make_fixnum(0), nargs=0, args=0x7fffffffd390) at ../../master/src/eval.c:3036 #8 0x00005555557fe051 in funcall_lambda (fun=XIL(0x5555576e7d65), nargs=0, arg_vector=0x7fffffffd390) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffd140) syms_left = make_fixnum(0) next = XIL(0x555555e62080) lexenv = XIL(0x1800000000) count = 10 i = 93824994985307 optional = false rest = false #9 0x00005555557fd424 in Ffuncall (nargs=1, args=0x7fffffffd388) at ../../master/src/eval.c:2916 fun = XIL(0x5555576e7d65) original_fun = XIL(0x18856b0) funcar = XIL(0xffffd1e0) numargs = 0 val = XIL(0) count = 9 #10 0x00005555557f1518 in Ffuncall_interactively (nargs=1, args=0x7fffffffd388) at ../../master/src/callint.c:260 speccount = 8 #11 0x00005555557fd809 in funcall_subr (subr=0x555555ddeca0 <Sfuncall_interactively>, numargs=1, args=0x7fffffffd388) at ../../master/src/eval.c:2967 #12 0x00005555557fd3e0 in Ffuncall (nargs=2, args=0x7fffffffd380) at ../../master/src/eval.c:2914 fun = XIL(0x555555ddeca5) original_fun = XIL(0x70b0) funcar = XIL(0x7fffffffd2b0) numargs = 1 val = XIL(0) count = 7 #13 0x00005555557fc0c9 in Fapply (nargs=3, args=0x7fffffffd380) at ../../master/src/eval.c:2497 i = 2582717749968 funcall_nargs = 25712400 funcall_args = 0x0 spread_arg = XIL(0) fun = XIL(0x70b0) sa_avail = 16384 sa_count = 7 numargs = 0 retval = XIL(0x5555557f0258) #14 0x00005555557f198d in Fcall_interactively (function=XIL(0x18856b0), record_flag=XIL(0), keys=XIL(0x5555582113c5)) at ../../master/src/callint.c:353 funval = XIL(0x5555576e7d65) events = 1433 input = XIL(0) speccount = 6 arg_from_tty = false key_count = 1 record_then_fail = false save_this_command = XIL(0x18856b0) save_this_original_command = XIL(0x18856b0) save_real_this_command = XIL(0x18856b0) save_last_command = XIL(0x1885710) prefix_arg = XIL(0) enable = XIL(0) up_event = XIL(0) form = XIL(0x555558b00b03) specs = XIL(0) sa_avail = 93825001726080 sa_count = 93824995577276 string_len = 93824993913254 string = 0x5555576e7d65 "" string_end = 0x7fffffffd4e0 "" next_event = 93824994845356 nargs = 0 args = 0x0 visargs = 0x0 varies = 0x555555e62080 <lispsym> "\230\001" tem = 0x7fffffffd570 "e}nWUU" val = XIL(0) #15 0x00005555557fd972 in funcall_subr (subr=0x555555ddece0 <Scall_interactively>, numargs=3, args=0x7fffffffd720) at ../../master/src/eval.c:2992 internal_argbuf = {XIL(0x7fffffffd630), XIL(0x1000000000), XIL(0x555555ddece0), XIL(0x7fffffffd638), XIL(0x5555557f455b), make_fixnum(17538469896), XIL(0x555555ddece5), XIL(0x7fffffffd650)} internal_args = 0x7fffffffd720 #16 0x00005555557fd3e0 in Ffuncall (nargs=4, args=0x7fffffffd718) at ../../master/src/eval.c:2914 fun = XIL(0x555555ddece5) original_fun = XIL(0x2aaa9c71a1d0) funcar = XIL(0x7fffffffd6b0) numargs = 3 val = XIL(0x7fffffffd6d0) count = 5 #17 0x0000555555856aa3 in exec_byte_code (bytestr=XIL(0x7ffff26110fc), vector=XIL(0x7ffff2610d65), maxdepth=make_fixnum(13), args_template=make_fixnum(1025), nargs=1, args=0x7fffffffdc90) at ../../master/src/bytecode.c:632 op = 3 type = CATCHER targets = {0x555555859938 <exec_byte_code+15219>, 0x55555585995d <exec_byte_code+15256>, 0x55555585995f <exec_byte_code+15258>, 0x555555859961 <exec_byte_code+15260>, 0x555555859963 <exec_byte_code+15262>, 0x555555859963 <exec_byte_code+15262>, 0x5555558599c8 <exec_byte_code+15363>, 0x555555859a3c <exec_byte_code+15479>, 0x555555856363 <exec_byte_code+1438>, 0x555555856365 <exec_byte_code+1440>, 0x555555856367 <exec_byte_code+1442>, 0x555555856369 <exec_byte_code+1444>, 0x55555585636b <exec_byte_code+1446>, 0x55555585636b <exec_byte_code+1446>, 0x555555856371 <exec_byte_code+1452>, 0x555555856332 <exec_byte_code+1389>, 0x555555856789 <exec_byte_code+2500>, 0x55555585678b <exec_byte_code+2502>, 0x55555585678d <exec_byte_code+2504>, 0x55555585678f <exec_byte_code+2506>, 0x555555856791 <exec_byte_code+2508>, 0x555555856791 <exec_byte_code+2508>, 0x5555558567c6 <exec_byte_code+2561>, 0x555555856797 <exec_byte_code+2514>, 0x5555558569bb <exec_byte_code+3062>, 0x5555558569bd <exec_byte_code+3064>, 0x5555558569bf <exec_byte_code+3066>, 0x5555558569c1 <exec_byte_code+3068>, 0x5555558569c3 <exec_byte_code+3070>, 0x5555558569c3 <exec_byte_code+3070>, 0x555555856975 <exec_byte_code+2992>, 0x55555585698c <exec_byte_code+3015>, 0x555555856a70 <exec_byte_code+3243>, 0x555555856a72 <exec_byte_code+3245>, 0x555555856a74 <exec_byte_code+3247>, 0x555555856a76 <exec_byte_code+3249>, 0x555555856a78 <exec_byte_code+3251>, 0x555555856a78 <exec_byte_code+3251>, 0x555555856a2a <exec_byte_code+3173>, 0x555555856a41 <exec_byte_code+3196>, 0x555555856b22 <exec_byte_code+3421>, 0x555555856b24 <exec_byte_code+3423>, 0x555555856b26 <exec_byte_code+3425>, 0x555555856b28 <exec_byte_code+3427>, 0x555555856b2a <exec_byte_code+3429>, 0x555555856b2a <exec_byte_code+3429>, 0x555555856adc <exec_byte_code+3351>, 0x555555856af3 <exec_byte_code+3374>, 0x55555585738a <exec_byte_code+5573>, 0x55555585726d <exec_byte_code+5288>, 0x555555857264 <exec_byte_code+5279>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x5555558575c4 <exec_byte_code+6143>, 0x5555558576da <exec_byte_code+6421>, 0x555555857737 <exec_byte_code+6514>, 0x555555857797 <exec_byte_code+6610>, 0x5555558577f9 <exec_byte_code+6708>, 0x5555558565e2 <exec_byte_code+2077>, 0x55555585665d <exec_byte_code+2200>, 0x555555857872 <exec_byte_code+6829>, 0x55555585651f <exec_byte_code+1882>, 0x5555558566c5 <exec_byte_code+2304>, 0x5555558578da <exec_byte_code+6933>, 0x555555857942 <exec_byte_code+7037>, 0x55555585798a <exec_byte_code+7109>, 0x5555558579f2 <exec_byte_code+7213>, 0x555555857a58 <exec_byte_code+7315>, 0x555555857b3e <exec_byte_code+7545>, 0x555555857b86 <exec_byte_code+7617>, 0x555555857bee <exec_byte_code+7721>, 0x555555857c73 <exec_byte_code+7854>, 0x555555857cbb <exec_byte_code+7926>, 0x555555857d03 <exec_byte_code+7998>, 0x555555857d6b <exec_byte_code+8102>, 0x555555857dd3 <exec_byte_code+8206>, 0x555555857e3b <exec_byte_code+8310>, 0x555555857ec0 <exec_byte_code+8443>, 0x555555857f0f <exec_byte_code+8522>, 0x555555857f5e <exec_byte_code+8601>, 0x555555858025 <exec_byte_code+8800>, 0x55555585811e <exec_byte_code+9049>, 0x555555858217 <exec_byte_code+9298>, 0x555555858284 <exec_byte_code+9407>, 0x5555558582f1 <exec_byte_code+9516>, 0x55555585835e <exec_byte_code+9625>, 0x5555558583cb <exec_byte_code+9734>, 0x555555858438 <exec_byte_code+9843>, 0x555555858487 <exec_byte_code+9922>, 0x555555858581 <exec_byte_code+10172>, 0x5555558585d0 <exec_byte_code+10251>, 0x55555585861f <exec_byte_code+10330>, 0x55555585866e <exec_byte_code+10409>, 0x555555858774 <exec_byte_code+10671>, 0x5555558570e4 <exec_byte_code+4895>, 0x5555558587cf <exec_byte_code+10762>, 0x555555858817 <exec_byte_code+10834>, 0x5555558588d9 <exec_byte_code+11028>, 0x555555858942 <exec_byte_code+11133>, 0x55555585899d <exec_byte_code+11224>, 0x5555558589e5 <exec_byte_code+11296>, 0x555555858a28 <exec_byte_code+11363>, 0x555555858a6b <exec_byte_code+11430>, 0x555555858ab6 <exec_byte_code+11505>, 0x555555859938 <exec_byte_code+15219>, 0x555555858b0e <exec_byte_code+11593>, 0x555555858b51 <exec_byte_code+11660>, 0x555555858b94 <exec_byte_code+11727>, 0x555555858bd7 <exec_byte_code+11794>, 0x555555858c1a <exec_byte_code+11861>, 0x555555858c5d <exec_byte_code+11928>, 0x5555558570e4 <exec_byte_code+4895>, 0x555555859938 <exec_byte_code+15219>, 0x555555858ca5 <exec_byte_code+12000>, 0x555555858cf7 <exec_byte_code+12082>, 0x555555858d3f <exec_byte_code+12154>, 0x555555858d87 <exec_byte_code+12226>, 0x555555858def <exec_byte_code+12330>, 0x555555858e57 <exec_byte_code+12434>, 0x555555858e9f <exec_byte_code+12506>, 0x555555858f5c <exec_byte_code+12695>, 0x555555858fc4 <exec_byte_code+12799>, 0x55555585902c <exec_byte_code+12903>, 0x555555859094 <exec_byte_code+13007>, 0x5555558590d7 <exec_byte_code+13074>, 0x555555859938 <exec_byte_code+15219>, 0x55555585702a <exec_byte_code+4709>, 0x555555856bd4 <exec_byte_code+3599>, 0x55555585648d <exec_byte_code+1736>, 0x555555856c85 <exec_byte_code+3776>, 0x555555856d09 <exec_byte_code+3908>, 0x555555856d8a <exec_byte_code+4037>, 0x555555856fde <exec_byte_code+4633>, 0x555555856ff3 <exec_byte_code+4654>, 0x555555856922 <exec_byte_code+2909>, 0x5555558570ad <exec_byte_code+4840>, 0x55555585711b <exec_byte_code+4950>, 0x5555558571ac <exec_byte_code+5095>, 0x5555558571f5 <exec_byte_code+5168>, 0x5555558573d6 <exec_byte_code+5649>, 0x555555857453 <exec_byte_code+5774>, 0x5555558574d8 <exec_byte_code+5907>, 0x55555585753e <exec_byte_code+6009>, 0x555555856b86 <exec_byte_code+3521>, 0x55555585911f <exec_byte_code+13146>, 0x5555558591a4 <exec_byte_code+13279>, 0x5555558591ec <exec_byte_code+13351>, 0x555555859234 <exec_byte_code+13423>, 0x55555585927c <exec_byte_code+13495>, 0x5555558592c4 <exec_byte_code+13567>, 0x55555585932c <exec_byte_code+13671>, 0x555555859394 <exec_byte_code+13775>, 0x5555558593fc <exec_byte_code+13879>, 0x555555859464 <exec_byte_code+13983>, 0x5555558595ad <exec_byte_code+14312>, 0x555555859615 <exec_byte_code+14416>, 0x55555585967d <exec_byte_code+14520>, 0x5555558596c5 <exec_byte_code+14592>, 0x55555585972d <exec_byte_code+14696>, 0x555555859795 <exec_byte_code+14800>, 0x5555558597dd <exec_byte_code+14872>, 0x555555859825 <exec_byte_code+14944>, 0x5555558586bd <exec_byte_code+10488>, 0x55555585870c <exec_byte_code+10567>, 0x555555859874 <exec_byte_code+15023>, 0x5555558598d6 <exec_byte_code+15121>, 0x555555859938 <exec_byte_code+15219>, 0x555555856e0b <exec_byte_code+4166>, 0x555555856e28 <exec_byte_code+4195>, 0x555555856e97 <exec_byte_code+4306>, 0x555555856f06 <exec_byte_code+4417>, 0x555555856f72 <exec_byte_code+4525>, 0x555555857ac6 <exec_byte_code+7425>, 0x555555857fad <exec_byte_code+8680>, 0x555555858861 <exec_byte_code+10908>, 0x555555859acf <exec_byte_code+15626>, 0x555555859b44 <exec_byte_code+15743>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15893>, 0x555555859c61 <exec_byte_code+16028>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859938 <exec_byte_code+15219>, 0x555555859daf <exec_byte_code+16362> <repeats 64 times>} const_length = 24 bytestr_length = 138 vectorp = 0x7ffff2610d68 quitcounter = 1 '\001' stack_items = 14 sa_avail = 16134 sa_count = 5 alloc = 0x7fffffffd6e0 stack_base = 0x7fffffffd6e0 top = 0x7fffffffd718 stack_lim = 0x7fffffffd750 bytestr_data = 0x7fffffffd750 "\304\020\211?\205\023" pc = 0x7fffffffd7b2 "\006\006\071\203\211" count = 5 result = XIL(0) #18 0x00005555557fdbcb in fetch_and_exec_byte_code (fun=XIL(0x7ffff2610d35), syms_left=make_fixnum(1025), nargs=1, args=0x7fffffffdc88) at ../../master/src/eval.c:3036 #19 0x00005555557fe051 in funcall_lambda (fun=XIL(0x7ffff2610d35), nargs=1, arg_vector=0x7fffffffdc88) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffdc00) syms_left = make_fixnum(1025) next = XIL(0x555555e62080) lexenv = XIL(0x1800000000) count = 5 i = 93824994985307 optional = false rest = false #20 0x00005555557fd424 in Ffuncall (nargs=2, args=0x7fffffffdc80) at ../../master/src/eval.c:2916 fun = XIL(0x7ffff2610d35) original_fun = XIL(0x4470) funcar = XIL(0) numargs = 1 val = XIL(0x7fffffffdca8) count = 4 #21 0x00005555557fcbee in call1 (fn=XIL(0x4470), arg1=XIL(0x18856b0)) at ../../master/src/eval.c:2774 #22 0x0000555555721564 in command_loop_1 () at ../../master/src/keyboard.c:1466 scount = 3 cmd = XIL(0x18856b0) keybuf = {make_fixnum(113), XIL(0x7ffff2c1d0cd), XIL(0), XIL(0), XIL(0x7fffffffdd70), XIL(0x5555557fcc78), XIL(0), XIL(0x7ffff25734c4), XIL(0x555557e28a53), XIL(0), XIL(0x555555e62080), XIL(0), XIL(0x7fffffffdd50), XIL(0x55555571d378), XIL(0), XIL(0), XIL(0x555555e62080), XIL(0), XIL(0x7fffffffdd80), make_fixnum(23456248745992), XIL(0), XIL(0x555555e62080), XIL(0), XIL(0), XIL(0x7fffffffdda0), make_fixnum(23456248746013), make_fixnum(2), make_fixnum(0), XIL(0x7fffffffdde0), XIL(0x5555557f96dc)} i = 1 prev_modiff = 60 prev_buffer = 0x5555578531b0 already_adjusted = false #23 0x00005555557f919c in internal_condition_case (bfun=0x555555720d0e <command_loop_1>, handlers=XIL(0x90), hfun=0x555555720331 <cmd_error>) at ../../master/src/eval.c:1439 val = XIL(0x5555560c2983) c = 0x555555f5d3e0 #24 0x00005555557208fe in command_loop_2 (ignore=XIL(0)) at ../../master/src/keyboard.c:1094 val = make_fixnum(0) #25 0x00005555557f85ac in internal_catch (tag=XIL(0xd9e0), func=0x5555557208d1 <command_loop_2>, arg=XIL(0)) at ../../master/src/eval.c:1189 val = XIL(0xd9e0) c = 0x555555f46710 #26 0x000055555572089d in command_loop () at ../../master/src/keyboard.c:1073 #27 0x000055555571fe1a in recursive_edit_1 () at ../../master/src/keyboard.c:720 count = 1 val = XIL(0x7fffffffdf50) #28 0x0000555555720011 in Frecursive_edit () at ../../master/src/keyboard.c:789 count = 0 buffer = XIL(0) #29 0x000055555571bef6 in main (argc=2, argv=0x7fffffffe1b8) at ../../master/src/emacs.c:2050 stack_bottom_variable = 0x7ffff617e053 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 1 temacs = 0x0 attempt_load_pdump = true rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = 0x0 sockfd = -1 module_assertions = false Lisp Backtrace: "kill-buffer" (0xffffcce8) "gnus-server-exit" (0xffffd390) "funcall-interactively" (0xffffd388) "call-interactively" (0xffffd720) "command-execute" (0xffffdc88) (gdb) p replace_buffer_in_windows_safely_count $1 = 0 (gdb) frame 2 #2 0x000055555564d93a in replace_buffer_in_windows_safely ( buffer=XIL(0x5555578531b5)) at ../../master/src/window.c:3450 3450 eassert (count == replace_buffer_in_windows_safely_count); (gdb) p buffer $2 = XIL(0x5555578531b5) (gdb) xtype Lisp_Vectorlike PVEC_BUFFER (gdb) xbuffer $3 = (struct buffer *) 0x5555578531b0 0x5555587d0e90 "*Server*" -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-01 13:54 ` Michael Welsh Duggan @ 2021-04-01 14:56 ` martin rudalics 2021-04-01 18:30 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-01 14:56 UTC (permalink / raw) To: Michael Welsh Duggan Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org [-- Attachment #1: Type: text/plain, Size: 744 bytes --] > Okay. I got a nice trigger from this. I've added some extra > debugging info after the backtrace. Thanks. Nice but not amusing. Things like that never can happen. So presumably *Server* is the buffer you want to get rid off. I can only add another diff based on that assumption. Please put a breakpoint on that non-sensical best_window = Qt; line 3050 in window.c. When it triggers please use "s" to painfully step through the entire set_window_buffer and other_buffer_safely below and tell me whether you find something fishy: Is other_buffer_safely called at all and what is the name of the "buf" it returns? Does set_window_buffer for some reason refuse to wset_buffer to the one returned by other_buffer_safely? martin [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: selected_window_contents.diff --] [-- Type: text/x-patch; name="selected_window_contents.diff", Size: 7355 bytes --] diff --git a/src/buffer.c b/src/buffer.c index 8e33162989..70b37e61a2 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1951,6 +1951,9 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", This gets rid of them for certain. */ reset_buffer_local_variables (b, 1); + if (!b->base_buffer) + eassert (b->window_count == 0); + bset_name (b, Qnil); block_input (); @@ -1991,6 +1994,8 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", run_buffer_list_update_hook (b); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qt; } \f @@ -2151,6 +2156,9 @@ set_buffer_internal_1 (register struct buffer *b) BUFFER_CHECK_INDIRECTION (b); + if (!BUFFER_LIVE_P (b)) + error ("Selecting deleted buffer"); + old_buf = current_buffer; current_buffer = b; last_known_column_point = -1; /* Invalidate indentation cache. */ diff --git a/src/window.c b/src/window.c index eb16e2a433..aaf75457b4 100644 --- a/src/window.c +++ b/src/window.c @@ -307,7 +307,11 @@ wset_buffer (struct window *w, Lisp_Object val) if (BUFFERP (val)) /* Make sure that we do not assign the buffer to an internal window. */ - eassert (MARKERP (w->start) && MARKERP (w->pointm)); + { + eassert (BUFFER_LIVE_P (XBUFFER (val))); + eassert (MARKERP (w->start) && MARKERP (w->pointm)); + } + w->contents = val; adjust_window_count (w, 1); } @@ -315,6 +319,7 @@ wset_buffer (struct window *w, Lisp_Object val) static void wset_old_buffer (struct window *w, Lisp_Object val) { + eassert (BUFFER_LIVE_P (XBUFFER (val))); w->old_buffer = val; } @@ -594,6 +599,8 @@ select_window_1 (Lisp_Object window, bool inhibit_point_swap) selected_window = window; + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Go to the point recorded in the window. This is important when the buffer is in more than one window. It also matters when @@ -2950,6 +2957,8 @@ DEFUN ("window-list-1", Fwindow_list_1, Swindow_list_1, 0, 3, 0, CHECK_ALL_WINDOWS /* Arg is ignored */ }; +static int replace_buffer_in_windows_safely_count; + static Lisp_Object window_loop (enum window_loop type, Lisp_Object obj, bool mini, Lisp_Object frames) @@ -3036,6 +3045,10 @@ window_loop (enum window_loop type, Lisp_Object obj, bool mini, is live, and show another buffer in case it isn't. */ if (EQ (w->contents, obj)) { + if (!NILP (Fstring_equal (XBUFFER (w->contents)->name_, + build_string ("*Server*")))) + best_window = Qt; + /* Undedicate WINDOW. */ wset_dedicated (w, Qnil); /* Make WINDOW show the buffer returned by @@ -3048,6 +3061,8 @@ window_loop (enum window_loop type, Lisp_Object obj, bool mini, if (EQ (window, selected_window) && XBUFFER (w->contents) == current_buffer) Fset_buffer (w->contents); + + replace_buffer_in_windows_safely_count += 1; } break; @@ -3411,6 +3426,8 @@ DEFUN ("delete-other-windows-internal", Fdelete_other_windows_internal, replace_buffer_in_windows (Lisp_Object buffer) { call1 (Qreplace_buffer_in_windows, buffer); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* If BUFFER is shown in a window, safely replace it with some other @@ -3419,6 +3436,10 @@ replace_buffer_in_windows (Lisp_Object buffer) void replace_buffer_in_windows_safely (Lisp_Object buffer) { + int count = buffer_window_count (XBUFFER (buffer)); + + replace_buffer_in_windows_safely_count = 0; + if (buffer_window_count (XBUFFER (buffer))) { Lisp_Object tail, frame; @@ -3429,6 +3450,8 @@ replace_buffer_in_windows_safely (Lisp_Object buffer) FOR_EACH_FRAME (tail, frame) window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); } + + eassert (count == replace_buffer_in_windows_safely_count); } \f /* The following three routines are needed for running a window's @@ -3960,6 +3983,8 @@ run_window_change_functions (void) /* Record changes for all frames (if asked for), selected window and frame. */ unbind_to (count, Qnil); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Make WINDOW display BUFFER. RUN_HOOKS_P means it's allowed @@ -4054,6 +4079,9 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer, if (!samebuf && !MINI_WINDOW_P (w) && !WINDOW_PSEUDO_P (w)) FRAME_WINDOW_CHANGE (XFRAME (w->frame)) = true; + if (WINDOWP (selected_window)) + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + unbind_to (count, Qnil); } @@ -5174,6 +5202,8 @@ DEFUN ("delete-window-internal", Fdelete_window_internal, Sdelete_window_interna error ("Deletion failed"); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qnil; } \f @@ -7233,6 +7263,9 @@ DEFUN ("set-window-configuration", Fset_window_configuration, minibuf_selected_window = data->minibuf_selected_window; SAFE_FREE (); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return FRAME_LIVE_P (f) ? Qt : Qnil; } diff --git a/src/xdisp.c b/src/xdisp.c index cc0a689ba3..ea64e5037a 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -12980,6 +12980,8 @@ restore_selected_window (Lisp_Object window) /* Abort if we cannot find a live frame. */ emacs_abort (); } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Restore WINDOW, if live, as its frame's selected window. */ @@ -12997,6 +12999,8 @@ restore_frame_selected_window (Lisp_Object window) if (EQ (frame, selected_frame)) selected_window = window; } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Update the tab-bar item list for frame F. This has to be done @@ -13074,6 +13078,8 @@ update_tab_bar (struct frame *f, bool save_match_data) XSETFRAME (frame, f); selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); #endif /* Build desired tab-bar items from keymaps. */ @@ -14010,6 +14016,8 @@ update_tool_bar (struct frame *f, bool save_match_data) selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Build desired tool-bar items from keymaps. */ new_tool_bar = tool_bar_items (Fcopy_sequence (f->tool_bar_items), @@ -17246,6 +17254,8 @@ run_window_scroll_functions (Lisp_Object window, struct text_pos startp) set_buffer_internal (XBUFFER (w->contents)); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return startp; } @@ -25450,6 +25460,8 @@ display_mode_lines (struct window *w) unbind_to (count, Qnil); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + if (n > 0) w->must_be_updated_p = true; return n; ^ permalink raw reply related [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-01 14:56 ` martin rudalics @ 2021-04-01 18:30 ` Michael Welsh Duggan 2021-04-01 19:31 ` Michael Welsh Duggan 2021-04-02 6:48 ` martin rudalics 0 siblings, 2 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-01 18:30 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > Okay. I got a nice trigger from this. I've added some extra > > debugging info after the backtrace. > > Thanks. Nice but not amusing. Things like that never can happen. So > presumably *Server* is the buffer you want to get rid off. I can only > add another diff based on that assumption. Please put a breakpoint on > that non-sensical > > best_window = Qt; > > line 3050 in window.c. When it triggers please use "s" to painfully > step through the entire set_window_buffer and other_buffer_safely below > and tell me whether you find something fishy: Is other_buffer_safely > called at all and what is the name of the "buf" it returns? Does > set_window_buffer for some reason refuse to wset_buffer to the one > returned by other_buffer_safely? The answer, which I sort of suspected, is that it never hit that breakpoint at all before the assertion fires. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-01 18:30 ` Michael Welsh Duggan @ 2021-04-01 19:31 ` Michael Welsh Duggan 2021-04-02 6:48 ` martin rudalics 1 sibling, 0 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-01 19:31 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org Michael Welsh Duggan <mwd@cert.org> writes: > martin rudalics <rudalics@gmx.at> writes: > >> > Okay. I got a nice trigger from this. I've added some extra >> > debugging info after the backtrace. >> >> Thanks. Nice but not amusing. Things like that never can happen. So >> presumably *Server* is the buffer you want to get rid off. I can only >> add another diff based on that assumption. Please put a breakpoint on >> that non-sensical >> >> best_window = Qt; >> >> line 3050 in window.c. When it triggers please use "s" to painfully >> step through the entire set_window_buffer and other_buffer_safely below >> and tell me whether you find something fishy: Is other_buffer_safely >> called at all and what is the name of the "buf" it returns? Does >> set_window_buffer for some reason refuse to wset_buffer to the one >> returned by other_buffer_safely? > > The answer, which I sort of suspected, is that it never hit that > breakpoint at all before the assertion fires. I am now skeptical about that debug session and will try to recreate again in a fresh session. (When I did a "list window.c:3050" in gdb I did not get the expected listing.) -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-01 18:30 ` Michael Welsh Duggan 2021-04-01 19:31 ` Michael Welsh Duggan @ 2021-04-02 6:48 ` martin rudalics 2021-04-05 18:15 ` Michael Welsh Duggan 1 sibling, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-02 6:48 UTC (permalink / raw) To: Michael Welsh Duggan Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org [-- Attachment #1: Type: text/plain, Size: 1107 bytes --] > The answer, which I sort of suspected, is that it never hit that > breakpoint at all before the assertion fires. You're right. In + if (!NILP (Fstring_equal (XBUFFER (w->contents)->name_, + build_string ("*Server*")))) + best_window = Qt; + /* Undedicate WINDOW. */ wset_dedicated (w, Qnil); /* Make WINDOW show the buffer returned by @@ -3048,6 +3061,8 @@ window_loop (enum window_loop type, Lisp_Object obj, bool mini, if (EQ (window, selected_window) && XBUFFER (w->contents) == current_buffer) Fset_buffer (w->contents); + + replace_buffer_in_windows_safely_count += 1; replace_buffer_in_windows_safely_count is incremented regardless of whether W's buffer is *Server* or not. In either case the assertion would not fail. So once we are here everything is all right and the bug must be that we do not get here. I attach the next patch. Please put a breakpoint at the replace_buffer_in_windows_safely_count = 0; and try to step through the rest of this function with GDB. And if you don't hit it, the detection logic went wrong ... martin [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: selected_window_contents.diff --] [-- Type: text/x-patch; name="selected_window_contents.diff", Size: 7497 bytes --] diff --git a/src/buffer.c b/src/buffer.c index 8e33162989..70b37e61a2 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1951,6 +1951,9 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", This gets rid of them for certain. */ reset_buffer_local_variables (b, 1); + if (!b->base_buffer) + eassert (b->window_count == 0); + bset_name (b, Qnil); block_input (); @@ -1991,6 +1994,8 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", run_buffer_list_update_hook (b); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qt; } \f @@ -2151,6 +2156,9 @@ set_buffer_internal_1 (register struct buffer *b) BUFFER_CHECK_INDIRECTION (b); + if (!BUFFER_LIVE_P (b)) + error ("Selecting deleted buffer"); + old_buf = current_buffer; current_buffer = b; last_known_column_point = -1; /* Invalidate indentation cache. */ diff --git a/src/window.c b/src/window.c index eb16e2a433..aa69c66be6 100644 --- a/src/window.c +++ b/src/window.c @@ -307,7 +307,11 @@ wset_buffer (struct window *w, Lisp_Object val) if (BUFFERP (val)) /* Make sure that we do not assign the buffer to an internal window. */ - eassert (MARKERP (w->start) && MARKERP (w->pointm)); + { + eassert (BUFFER_LIVE_P (XBUFFER (val))); + eassert (MARKERP (w->start) && MARKERP (w->pointm)); + } + w->contents = val; adjust_window_count (w, 1); } @@ -315,6 +319,7 @@ wset_buffer (struct window *w, Lisp_Object val) static void wset_old_buffer (struct window *w, Lisp_Object val) { + eassert (BUFFER_LIVE_P (XBUFFER (val))); w->old_buffer = val; } @@ -594,6 +599,8 @@ select_window_1 (Lisp_Object window, bool inhibit_point_swap) selected_window = window; + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Go to the point recorded in the window. This is important when the buffer is in more than one window. It also matters when @@ -2950,6 +2957,8 @@ DEFUN ("window-list-1", Fwindow_list_1, Swindow_list_1, 0, 3, 0, CHECK_ALL_WINDOWS /* Arg is ignored */ }; +static int replace_buffer_in_windows_safely_count; + static Lisp_Object window_loop (enum window_loop type, Lisp_Object obj, bool mini, Lisp_Object frames) @@ -3048,6 +3057,8 @@ window_loop (enum window_loop type, Lisp_Object obj, bool mini, if (EQ (window, selected_window) && XBUFFER (w->contents) == current_buffer) Fset_buffer (w->contents); + + replace_buffer_in_windows_safely_count += 1; } break; @@ -3411,6 +3422,8 @@ DEFUN ("delete-other-windows-internal", Fdelete_other_windows_internal, replace_buffer_in_windows (Lisp_Object buffer) { call1 (Qreplace_buffer_in_windows, buffer); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* If BUFFER is shown in a window, safely replace it with some other @@ -3419,7 +3432,28 @@ replace_buffer_in_windows (Lisp_Object buffer) void replace_buffer_in_windows_safely (Lisp_Object buffer) { - if (buffer_window_count (XBUFFER (buffer))) + if (!NILP (Fstring_equal (XBUFFER (buffer)->name_, + build_string ("*Server*")))) + { + int count = buffer_window_count (XBUFFER (buffer)); + + replace_buffer_in_windows_safely_count = 0; + + + if (buffer_window_count (XBUFFER (buffer))) + { + Lisp_Object tail, frame; + + /* A single call to window_loop won't do the job because it only + considers frames on the current keyboard. So loop manually over + frames, and handle each one. */ + FOR_EACH_FRAME (tail, frame) + window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); + } + + eassert (count == replace_buffer_in_windows_safely_count); + } + else if (buffer_window_count (XBUFFER (buffer))) { Lisp_Object tail, frame; @@ -3429,6 +3463,7 @@ replace_buffer_in_windows_safely (Lisp_Object buffer) FOR_EACH_FRAME (tail, frame) window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); } + } \f /* The following three routines are needed for running a window's @@ -3960,6 +3995,8 @@ run_window_change_functions (void) /* Record changes for all frames (if asked for), selected window and frame. */ unbind_to (count, Qnil); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Make WINDOW display BUFFER. RUN_HOOKS_P means it's allowed @@ -4054,6 +4091,9 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer, if (!samebuf && !MINI_WINDOW_P (w) && !WINDOW_PSEUDO_P (w)) FRAME_WINDOW_CHANGE (XFRAME (w->frame)) = true; + if (WINDOWP (selected_window)) + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + unbind_to (count, Qnil); } @@ -5174,6 +5214,8 @@ DEFUN ("delete-window-internal", Fdelete_window_internal, Sdelete_window_interna error ("Deletion failed"); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qnil; } \f @@ -7233,6 +7275,9 @@ DEFUN ("set-window-configuration", Fset_window_configuration, minibuf_selected_window = data->minibuf_selected_window; SAFE_FREE (); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return FRAME_LIVE_P (f) ? Qt : Qnil; } diff --git a/src/xdisp.c b/src/xdisp.c index cc0a689ba3..ea64e5037a 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -12980,6 +12980,8 @@ restore_selected_window (Lisp_Object window) /* Abort if we cannot find a live frame. */ emacs_abort (); } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Restore WINDOW, if live, as its frame's selected window. */ @@ -12997,6 +12999,8 @@ restore_frame_selected_window (Lisp_Object window) if (EQ (frame, selected_frame)) selected_window = window; } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Update the tab-bar item list for frame F. This has to be done @@ -13074,6 +13078,8 @@ update_tab_bar (struct frame *f, bool save_match_data) XSETFRAME (frame, f); selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); #endif /* Build desired tab-bar items from keymaps. */ @@ -14010,6 +14016,8 @@ update_tool_bar (struct frame *f, bool save_match_data) selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Build desired tool-bar items from keymaps. */ new_tool_bar = tool_bar_items (Fcopy_sequence (f->tool_bar_items), @@ -17246,6 +17254,8 @@ run_window_scroll_functions (Lisp_Object window, struct text_pos startp) set_buffer_internal (XBUFFER (w->contents)); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return startp; } @@ -25450,6 +25460,8 @@ display_mode_lines (struct window *w) unbind_to (count, Qnil); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + if (n > 0) w->must_be_updated_p = true; return n; ^ permalink raw reply related [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-02 6:48 ` martin rudalics @ 2021-04-05 18:15 ` Michael Welsh Duggan 2021-04-05 18:45 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-05 18:15 UTC (permalink / raw) To: martin rudalics Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org, Michael Welsh Duggan martin rudalics <rudalics@gmx.at> writes: >> The answer, which I sort of suspected, is that it never hit that >> breakpoint at all before the assertion fires. > > You're right. In > > + if (!NILP (Fstring_equal (XBUFFER (w->contents)->name_, > + build_string ("*Server*")))) > + best_window = Qt; > + > /* Undedicate WINDOW. */ > wset_dedicated (w, Qnil); > /* Make WINDOW show the buffer returned by > @@ -3048,6 +3061,8 @@ window_loop (enum window_loop type, Lisp_Object obj, bool mini, > if (EQ (window, selected_window) > && XBUFFER (w->contents) == current_buffer) > Fset_buffer (w->contents); > + > + replace_buffer_in_windows_safely_count += 1; > > replace_buffer_in_windows_safely_count is incremented regardless of > whether W's buffer is *Server* or not. In either case the assertion > would not fail. So once we are here everything is all right and the bug > must be that we do not get here. I attach the next patch. Please put a > breakpoint at the > > replace_buffer_in_windows_safely_count = 0; > > and try to step through the rest of this function with GDB. And if you > don't hit it, the detection logic went wrong ... Finally hit this. I set logging on and started debugging. Unfortunately, gdb logging only logs the outputs, not what I typed, so perusing the output here might be a bit confusing. Here's what I noted: buffer_window_count of the *Server* buffer was 1. There were three frames that we looped over in the FOR_EACH_FRAME() loop. Of these, only the first is interesting. In this case window_list_1() in window_loop() returned three windows. For each window, in the REPLACE_BUFFER_IN_WINDOWS_SAFELY case branch, EQ (w->contents, obj) returned false. As a result, best_window is Qnil at the end, and replace-buffer_in_windows_safely_count never gets incremented. For the other two frames the return value of window_list_1() was Qnil. I've kept the session up and might be able to use `return' and `jump' in gdb to re-run through replace_buffer_in_windows_safely() if you want me to explore more in depth. #0 replace_buffer_in_windows_safely (buffer=XIL(0x5555573fd885)) at ../../master/src/window.c:3440 count = 1 #1 0x0000555555758f71 in Fkill_buffer (buffer_or_name=XIL(0x5555573fd885)) at ../../master/src/buffer.c:1880 buffer = XIL(0x5555573fd885) b = 0x5555573fd880 tem = XIL(0) m = 0x7fffffffcb70 #2 0x00005555557fda6f in funcall_subr (subr=0x555555dd9ce0 <Skill_buffer>, numargs=1, args=0x7fffffffcc98) at ../../master/src/eval.c:2987 internal_argbuf = {XIL(0x7fffffffcbd0), XIL(0x1000000000), XIL(0x555555dd9ce0), XIL(0x7fffffffcbd8), make_fixnum(23456248746412), XIL(0x10557f4179), XIL(0x555555dd9ce5), XIL(0x7fffffffcbf0)} internal_args = 0x7fffffffcc98 #3 0x00005555557fd537 in Ffuncall (nargs=2, args=0x7fffffffcc90) at ../../master/src/eval.c:2914 fun = XIL(0x555555dd9ce5) original_fun = XIL(0x2aaa9c7147c0) funcar = XIL(0x5ffffcc50) numargs = 1 val = XIL(0x7fffffffcc70) count = 10 #4 0x0000555555856bfa in exec_byte_code (bytestr=XIL(0x555556f49614), vector=XIL(0x555557601b55), maxdepth=make_fixnum(5), args_template=make_fixnum(0), nargs=0, args=0x7fffffffd340) at ../../master/src/bytecode.c:632 op = 1 type = (CONDITION_CASE | unknown: 0x557d720c) targets = {0x555555859a8f <exec_byte_code+15219>, 0x555555859ab4 <exec_byte_code+15256>, 0x555555859ab6 <exec_byte_code+15258>, 0x555555859ab8 <exec_byte_code+15260>, 0x555555859aba <exec_byte_code+15262>, 0x555555859aba <exec_byte_code+15262>, 0x555555859b1f <exec_byte_code+15363>, 0x555555859b93 <exec_byte_code+15479>, 0x5555558564ba <exec_byte_code+1438>, 0x5555558564bc <exec_byte_code+1440>, 0x5555558564be <exec_byte_code+1442>, 0x5555558564c0 <exec_byte_code+1444>, 0x5555558564c2 <exec_byte_code+1446>, 0x5555558564c2 <exec_byte_code+1446>, 0x5555558564c8 <exec_byte_code+1452>, 0x555555856489 <exec_byte_code+1389>, 0x5555558568e0 <exec_byte_code+2500>, 0x5555558568e2 <exec_byte_code+2502>, 0x5555558568e4 <exec_byte_code+2504>, 0x5555558568e6 <exec_byte_code+2506>, 0x5555558568e8 <exec_byte_code+2508>, 0x5555558568e8 <exec_byte_code+2508>, 0x55555585691d <exec_byte_code+2561>, 0x5555558568ee <exec_byte_code+2514>, 0x555555856b12 <exec_byte_code+3062>, 0x555555856b14 <exec_byte_code+3064>, 0x555555856b16 <exec_byte_code+3066>, 0x555555856b18 <exec_byte_code+3068>, 0x555555856b1a <exec_byte_code+3070>, 0x555555856b1a <exec_byte_code+3070>, 0x555555856acc <exec_byte_code+2992>, 0x555555856ae3 <exec_byte_code+3015>, 0x555555856bc7 <exec_byte_code+3243>, 0x555555856bc9 <exec_byte_code+3245>, 0x555555856bcb <exec_byte_code+3247>, 0x555555856bcd <exec_byte_code+3249>, 0x555555856bcf <exec_byte_code+3251>, 0x555555856bcf <exec_byte_code+3251>, 0x555555856b81 <exec_byte_code+3173>, 0x555555856b98 <exec_byte_code+3196>, 0x555555856c79 <exec_byte_code+3421>, 0x555555856c7b <exec_byte_code+3423>, 0x555555856c7d <exec_byte_code+3425>, 0x555555856c7f <exec_byte_code+3427>, 0x555555856c81 <exec_byte_code+3429>, 0x555555856c81 <exec_byte_code+3429>, 0x555555856c33 <exec_byte_code+3351>, 0x555555856c4a <exec_byte_code+3374>, 0x5555558574e1 <exec_byte_code+5573>, 0x5555558573c4 <exec_byte_code+5288>, 0x5555558573bb <exec_byte_code+5279>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x55555585771b <exec_byte_code+6143>, 0x555555857831 <exec_byte_code+6421>, 0x55555585788e <exec_byte_code+6514>, 0x5555558578ee <exec_byte_code+6610>, 0x555555857950 <exec_byte_code+6708>, 0x555555856739 <exec_byte_code+2077>, 0x5555558567b4 <exec_byte_code+2200>, 0x5555558579c9 <exec_byte_code+6829>, 0x555555856676 <exec_byte_code+1882>, 0x55555585681c <exec_byte_code+2304>, 0x555555857a31 <exec_byte_code+6933>, 0x555555857a99 <exec_byte_code+7037>, 0x555555857ae1 <exec_byte_code+7109>, 0x555555857b49 <exec_byte_code+7213>, 0x555555857baf <exec_byte_code+7315>, 0x555555857c95 <exec_byte_code+7545>, 0x555555857cdd <exec_byte_code+7617>, 0x555555857d45 <exec_byte_code+7721>, 0x555555857dca <exec_byte_code+7854>, 0x555555857e12 <exec_byte_code+7926>, 0x555555857e5a <exec_byte_code+7998>, 0x555555857ec2 <exec_byte_code+8102>, 0x555555857f2a <exec_byte_code+8206>, 0x555555857f92 <exec_byte_code+8310>, 0x555555858017 <exec_byte_code+8443>, 0x555555858066 <exec_byte_code+8522>, 0x5555558580b5 <exec_byte_code+8601>, 0x55555585817c <exec_byte_code+8800>, 0x555555858275 <exec_byte_code+9049>, 0x55555585836e <exec_byte_code+9298>, 0x5555558583db <exec_byte_code+9407>, 0x555555858448 <exec_byte_code+9516>, 0x5555558584b5 <exec_byte_code+9625>, 0x555555858522 <exec_byte_code+9734>, 0x55555585858f <exec_byte_code+9843>, 0x5555558585de <exec_byte_code+9922>, 0x5555558586d8 <exec_byte_code+10172>, 0x555555858727 <exec_byte_code+10251>, 0x555555858776 <exec_byte_code+10330>, 0x5555558587c5 <exec_byte_code+10409>, 0x5555558588cb <exec_byte_code+10671>, 0x55555585723b <exec_byte_code+4895>, 0x555555858926 <exec_byte_code+10762>, 0x55555585896e <exec_byte_code+10834>, 0x555555858a30 <exec_byte_code+11028>, 0x555555858a99 <exec_byte_code+11133>, 0x555555858af4 <exec_byte_code+11224>, 0x555555858b3c <exec_byte_code+11296>, 0x555555858b7f <exec_byte_code+11363>, 0x555555858bc2 <exec_byte_code+11430>, 0x555555858c0d <exec_byte_code+11505>, 0x555555859a8f <exec_byte_code+15219>, 0x555555858c65 <exec_byte_code+11593>, 0x555555858ca8 <exec_byte_code+11660>, 0x555555858ceb <exec_byte_code+11727>, 0x555555858d2e <exec_byte_code+11794>, 0x555555858d71 <exec_byte_code+11861>, 0x555555858db4 <exec_byte_code+11928>, 0x55555585723b <exec_byte_code+4895>, 0x555555859a8f <exec_byte_code+15219>, 0x555555858dfc <exec_byte_code+12000>, 0x555555858e4e <exec_byte_code+12082>, 0x555555858e96 <exec_byte_code+12154>, 0x555555858ede <exec_byte_code+12226>, 0x555555858f46 <exec_byte_code+12330>, 0x555555858fae <exec_byte_code+12434>, 0x555555858ff6 <exec_byte_code+12506>, 0x5555558590b3 <exec_byte_code+12695>, 0x55555585911b <exec_byte_code+12799>, 0x555555859183 <exec_byte_code+12903>, 0x5555558591eb <exec_byte_code+13007>, 0x55555585922e <exec_byte_code+13074>, 0x555555859a8f <exec_byte_code+15219>, 0x555555857181 <exec_byte_code+4709>, 0x555555856d2b <exec_byte_code+3599>, 0x5555558565e4 <exec_byte_code+1736>, 0x555555856ddc <exec_byte_code+3776>, 0x555555856e60 <exec_byte_code+3908>, 0x555555856ee1 <exec_byte_code+4037>, 0x555555857135 <exec_byte_code+4633>, 0x55555585714a <exec_byte_code+4654>, 0x555555856a79 <exec_byte_code+2909>, 0x555555857204 <exec_byte_code+4840>, 0x555555857272 <exec_byte_code+4950>, 0x555555857303 <exec_byte_code+5095>, 0x55555585734c <exec_byte_code+5168>, 0x55555585752d <exec_byte_code+5649>, 0x5555558575aa <exec_byte_code+5774>, 0x55555585762f <exec_byte_code+5907>, 0x555555857695 <exec_byte_code+6009>, 0x555555856cdd <exec_byte_code+3521>, 0x555555859276 <exec_byte_code+13146>, 0x5555558592fb <exec_byte_code+13279>, 0x555555859343 <exec_byte_code+13351>, 0x55555585938b <exec_byte_code+13423>, 0x5555558593d3 <exec_byte_code+13495>, 0x55555585941b <exec_byte_code+13567>, 0x555555859483 <exec_byte_code+13671>, 0x5555558594eb <exec_byte_code+13775>, 0x555555859553 <exec_byte_code+13879>, 0x5555558595bb <exec_byte_code+13983>, 0x555555859704 <exec_byte_code+14312>, 0x55555585976c <exec_byte_code+14416>, 0x5555558597d4 <exec_byte_code+14520>, 0x55555585981c <exec_byte_code+14592>, 0x555555859884 <exec_byte_code+14696>, 0x5555558598ec <exec_byte_code+14800>, 0x555555859934 <exec_byte_code+14872>, 0x55555585997c <exec_byte_code+14944>, 0x555555858814 <exec_byte_code+10488>, 0x555555858863 <exec_byte_code+10567>, 0x5555558599cb <exec_byte_code+15023>, 0x555555859a2d <exec_byte_code+15121>, 0x555555859a8f <exec_byte_code+15219>, 0x555555856f62 <exec_byte_code+4166>, 0x555555856f7f <exec_byte_code+4195>, 0x555555856fee <exec_byte_code+4306>, 0x55555585705d <exec_byte_code+4417>, 0x5555558570c9 <exec_byte_code+4525>, 0x555555857c1d <exec_byte_code+7425>, 0x555555858104 <exec_byte_code+8680>, 0x5555558589b8 <exec_byte_code+10908>, 0x555555859c26 <exec_byte_code+15626>, 0x555555859c9b <exec_byte_code+15743>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859d31 <exec_byte_code+15893>, 0x555555859db8 <exec_byte_code+16028>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859f06 <exec_byte_code+16362> <repeats 64 times>} const_length = 9 bytestr_length = 40 vectorp = 0x555557601b58 quitcounter = 1 '\001' stack_items = 6 sa_avail = 16296 sa_count = 10 alloc = 0x7fffffffcc80 stack_base = 0x7fffffffcc80 top = 0x7fffffffcc90 stack_lim = 0x7fffffffccb0 bytestr_data = 0x7fffffffccb0 "\300\301!\210p\211\211\205\026" pc = 0x7fffffffccce "\210\305 \210\210\306\307\310\"\207\371_\205UUU" count = 10 result = XIL(0xe0d0) #5 0x00005555557fdd22 in fetch_and_exec_byte_code (fun=XIL(0x555557601ba5), syms_left=make_fixnum(0), nargs=0, args=0x7fffffffd340) at ../../master/src/eval.c:3036 #6 0x00005555557fe1a8 in funcall_lambda (fun=XIL(0x555557601ba5), nargs=0, arg_vector=0x7fffffffd340) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffd0f0) syms_left = make_fixnum(0) next = XIL(0x555555e63080) lexenv = XIL(0x1800000000) count = 10 i = 93824994985650 optional = false rest = false #7 0x00005555557fd57b in Ffuncall (nargs=1, args=0x7fffffffd338) at ../../master/src/eval.c:2916 fun = XIL(0x555557601ba5) original_fun = XIL(0x17b5b60) funcar = XIL(0xffffd190) numargs = 0 val = XIL(0) count = 9 #8 0x00005555557f166f in Ffuncall_interactively (nargs=1, args=0x7fffffffd338) at ../../master/src/callint.c:260 speccount = 8 #9 0x00005555557fd960 in funcall_subr (subr=0x555555ddfca0 <Sfuncall_interactively>, numargs=1, args=0x7fffffffd338) at ../../master/src/eval.c:2967 #10 0x00005555557fd537 in Ffuncall (nargs=2, args=0x7fffffffd330) at ../../master/src/eval.c:2914 fun = XIL(0x555555ddfca5) original_fun = XIL(0x70b0) funcar = XIL(0x7fffffffd260) numargs = 1 val = XIL(0) count = 7 #11 0x00005555557fc220 in Fapply (nargs=3, args=0x7fffffffd330) at ../../master/src/eval.c:2497 i = 2582733851120 funcall_nargs = 24861632 funcall_args = 0x0 spread_arg = XIL(0) fun = XIL(0x70b0) sa_avail = 16384 sa_count = 7 numargs = 0 retval = XIL(0x5555557f03af) #12 0x00005555557f1ae4 in Fcall_interactively (function=XIL(0x17b5b60), record_flag=XIL(0), keys=XIL(0x555557e0a415)) at ../../master/src/callint.c:353 funval = XIL(0x555557601ba5) events = 1526 input = XIL(0) speccount = 6 arg_from_tty = false key_count = 1 record_then_fail = false save_this_command = XIL(0x17b5b60) save_this_original_command = XIL(0x17b5b60) save_real_this_command = XIL(0x17b5b60) save_last_command = XIL(0x17b5bc0) prefix_arg = XIL(0) enable = XIL(0) up_event = XIL(0) form = XIL(0x555558be6b73) specs = XIL(0) sa_avail = 93825001730176 sa_count = 93824995577619 string_len = 93824993913597 string = 0x555557601ba5 "" string_end = 0x7fffffffd490 "" next_event = 93824994845699 nargs = 0 args = 0x0 visargs = 0x0 varies = 0x555555e63080 <lispsym> "\230\001" tem = 0x7fffffffd520 "\245\033`WUU" val = XIL(0) #13 0x00005555557fdac9 in funcall_subr (subr=0x555555ddfce0 <Scall_interactively>, numargs=3, args=0x7fffffffd6d0) at ../../master/src/eval.c:2992 internal_argbuf = {XIL(0x7fffffffd5e0), XIL(0x1000000000), XIL(0x555555ddfce0), XIL(0x7fffffffd5e8), make_fixnum(23456248746412), XIL(0x10557f4179), XIL(0x555555ddfce5), XIL(0x7fffffffd600)} internal_args = 0x7fffffffd6d0 #14 0x00005555557fd537 in Ffuncall (nargs=4, args=0x7fffffffd6c8) at ../../master/src/eval.c:2914 fun = XIL(0x555555ddfce5) original_fun = XIL(0x2aaa9c7191d0) funcar = XIL(0x7fffffffd660) numargs = 3 val = XIL(0x7fffffffd680) count = 5 #15 0x0000555555856bfa in exec_byte_code (bytestr=XIL(0x7ffff26110fc), vector=XIL(0x7ffff2610d65), maxdepth=make_fixnum(13), args_template=make_fixnum(1025), nargs=1, args=0x7fffffffdc40) at ../../master/src/bytecode.c:632 op = 3 type = CATCHER targets = {0x555555859a8f <exec_byte_code+15219>, 0x555555859ab4 <exec_byte_code+15256>, 0x555555859ab6 <exec_byte_code+15258>, 0x555555859ab8 <exec_byte_code+15260>, 0x555555859aba <exec_byte_code+15262>, 0x555555859aba <exec_byte_code+15262>, 0x555555859b1f <exec_byte_code+15363>, 0x555555859b93 <exec_byte_code+15479>, 0x5555558564ba <exec_byte_code+1438>, 0x5555558564bc <exec_byte_code+1440>, 0x5555558564be <exec_byte_code+1442>, 0x5555558564c0 <exec_byte_code+1444>, 0x5555558564c2 <exec_byte_code+1446>, 0x5555558564c2 <exec_byte_code+1446>, 0x5555558564c8 <exec_byte_code+1452>, 0x555555856489 <exec_byte_code+1389>, 0x5555558568e0 <exec_byte_code+2500>, 0x5555558568e2 <exec_byte_code+2502>, 0x5555558568e4 <exec_byte_code+2504>, 0x5555558568e6 <exec_byte_code+2506>, 0x5555558568e8 <exec_byte_code+2508>, 0x5555558568e8 <exec_byte_code+2508>, 0x55555585691d <exec_byte_code+2561>, 0x5555558568ee <exec_byte_code+2514>, 0x555555856b12 <exec_byte_code+3062>, 0x555555856b14 <exec_byte_code+3064>, 0x555555856b16 <exec_byte_code+3066>, 0x555555856b18 <exec_byte_code+3068>, 0x555555856b1a <exec_byte_code+3070>, 0x555555856b1a <exec_byte_code+3070>, 0x555555856acc <exec_byte_code+2992>, 0x555555856ae3 <exec_byte_code+3015>, 0x555555856bc7 <exec_byte_code+3243>, 0x555555856bc9 <exec_byte_code+3245>, 0x555555856bcb <exec_byte_code+3247>, 0x555555856bcd <exec_byte_code+3249>, 0x555555856bcf <exec_byte_code+3251>, 0x555555856bcf <exec_byte_code+3251>, 0x555555856b81 <exec_byte_code+3173>, 0x555555856b98 <exec_byte_code+3196>, 0x555555856c79 <exec_byte_code+3421>, 0x555555856c7b <exec_byte_code+3423>, 0x555555856c7d <exec_byte_code+3425>, 0x555555856c7f <exec_byte_code+3427>, 0x555555856c81 <exec_byte_code+3429>, 0x555555856c81 <exec_byte_code+3429>, 0x555555856c33 <exec_byte_code+3351>, 0x555555856c4a <exec_byte_code+3374>, 0x5555558574e1 <exec_byte_code+5573>, 0x5555558573c4 <exec_byte_code+5288>, 0x5555558573bb <exec_byte_code+5279>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x55555585771b <exec_byte_code+6143>, 0x555555857831 <exec_byte_code+6421>, 0x55555585788e <exec_byte_code+6514>, 0x5555558578ee <exec_byte_code+6610>, 0x555555857950 <exec_byte_code+6708>, 0x555555856739 <exec_byte_code+2077>, 0x5555558567b4 <exec_byte_code+2200>, 0x5555558579c9 <exec_byte_code+6829>, 0x555555856676 <exec_byte_code+1882>, 0x55555585681c <exec_byte_code+2304>, 0x555555857a31 <exec_byte_code+6933>, 0x555555857a99 <exec_byte_code+7037>, 0x555555857ae1 <exec_byte_code+7109>, 0x555555857b49 <exec_byte_code+7213>, 0x555555857baf <exec_byte_code+7315>, 0x555555857c95 <exec_byte_code+7545>, 0x555555857cdd <exec_byte_code+7617>, 0x555555857d45 <exec_byte_code+7721>, 0x555555857dca <exec_byte_code+7854>, 0x555555857e12 <exec_byte_code+7926>, 0x555555857e5a <exec_byte_code+7998>, 0x555555857ec2 <exec_byte_code+8102>, 0x555555857f2a <exec_byte_code+8206>, 0x555555857f92 <exec_byte_code+8310>, 0x555555858017 <exec_byte_code+8443>, 0x555555858066 <exec_byte_code+8522>, 0x5555558580b5 <exec_byte_code+8601>, 0x55555585817c <exec_byte_code+8800>, 0x555555858275 <exec_byte_code+9049>, 0x55555585836e <exec_byte_code+9298>, 0x5555558583db <exec_byte_code+9407>, 0x555555858448 <exec_byte_code+9516>, 0x5555558584b5 <exec_byte_code+9625>, 0x555555858522 <exec_byte_code+9734>, 0x55555585858f <exec_byte_code+9843>, 0x5555558585de <exec_byte_code+9922>, 0x5555558586d8 <exec_byte_code+10172>, 0x555555858727 <exec_byte_code+10251>, 0x555555858776 <exec_byte_code+10330>, 0x5555558587c5 <exec_byte_code+10409>, 0x5555558588cb <exec_byte_code+10671>, 0x55555585723b <exec_byte_code+4895>, 0x555555858926 <exec_byte_code+10762>, 0x55555585896e <exec_byte_code+10834>, 0x555555858a30 <exec_byte_code+11028>, 0x555555858a99 <exec_byte_code+11133>, 0x555555858af4 <exec_byte_code+11224>, 0x555555858b3c <exec_byte_code+11296>, 0x555555858b7f <exec_byte_code+11363>, 0x555555858bc2 <exec_byte_code+11430>, 0x555555858c0d <exec_byte_code+11505>, 0x555555859a8f <exec_byte_code+15219>, 0x555555858c65 <exec_byte_code+11593>, 0x555555858ca8 <exec_byte_code+11660>, 0x555555858ceb <exec_byte_code+11727>, 0x555555858d2e <exec_byte_code+11794>, 0x555555858d71 <exec_byte_code+11861>, 0x555555858db4 <exec_byte_code+11928>, 0x55555585723b <exec_byte_code+4895>, 0x555555859a8f <exec_byte_code+15219>, 0x555555858dfc <exec_byte_code+12000>, 0x555555858e4e <exec_byte_code+12082>, 0x555555858e96 <exec_byte_code+12154>, 0x555555858ede <exec_byte_code+12226>, 0x555555858f46 <exec_byte_code+12330>, 0x555555858fae <exec_byte_code+12434>, 0x555555858ff6 <exec_byte_code+12506>, 0x5555558590b3 <exec_byte_code+12695>, 0x55555585911b <exec_byte_code+12799>, 0x555555859183 <exec_byte_code+12903>, 0x5555558591eb <exec_byte_code+13007>, 0x55555585922e <exec_byte_code+13074>, 0x555555859a8f <exec_byte_code+15219>, 0x555555857181 <exec_byte_code+4709>, 0x555555856d2b <exec_byte_code+3599>, 0x5555558565e4 <exec_byte_code+1736>, 0x555555856ddc <exec_byte_code+3776>, 0x555555856e60 <exec_byte_code+3908>, 0x555555856ee1 <exec_byte_code+4037>, 0x555555857135 <exec_byte_code+4633>, 0x55555585714a <exec_byte_code+4654>, 0x555555856a79 <exec_byte_code+2909>, 0x555555857204 <exec_byte_code+4840>, 0x555555857272 <exec_byte_code+4950>, 0x555555857303 <exec_byte_code+5095>, 0x55555585734c <exec_byte_code+5168>, 0x55555585752d <exec_byte_code+5649>, 0x5555558575aa <exec_byte_code+5774>, 0x55555585762f <exec_byte_code+5907>, 0x555555857695 <exec_byte_code+6009>, 0x555555856cdd <exec_byte_code+3521>, 0x555555859276 <exec_byte_code+13146>, 0x5555558592fb <exec_byte_code+13279>, 0x555555859343 <exec_byte_code+13351>, 0x55555585938b <exec_byte_code+13423>, 0x5555558593d3 <exec_byte_code+13495>, 0x55555585941b <exec_byte_code+13567>, 0x555555859483 <exec_byte_code+13671>, 0x5555558594eb <exec_byte_code+13775>, 0x555555859553 <exec_byte_code+13879>, 0x5555558595bb <exec_byte_code+13983>, 0x555555859704 <exec_byte_code+14312>, 0x55555585976c <exec_byte_code+14416>, 0x5555558597d4 <exec_byte_code+14520>, 0x55555585981c <exec_byte_code+14592>, 0x555555859884 <exec_byte_code+14696>, 0x5555558598ec <exec_byte_code+14800>, 0x555555859934 <exec_byte_code+14872>, 0x55555585997c <exec_byte_code+14944>, 0x555555858814 <exec_byte_code+10488>, 0x555555858863 <exec_byte_code+10567>, 0x5555558599cb <exec_byte_code+15023>, 0x555555859a2d <exec_byte_code+15121>, 0x555555859a8f <exec_byte_code+15219>, 0x555555856f62 <exec_byte_code+4166>, 0x555555856f7f <exec_byte_code+4195>, 0x555555856fee <exec_byte_code+4306>, 0x55555585705d <exec_byte_code+4417>, 0x5555558570c9 <exec_byte_code+4525>, 0x555555857c1d <exec_byte_code+7425>, 0x555555858104 <exec_byte_code+8680>, 0x5555558589b8 <exec_byte_code+10908>, 0x555555859c26 <exec_byte_code+15626>, 0x555555859c9b <exec_byte_code+15743>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859d31 <exec_byte_code+15893>, 0x555555859db8 <exec_byte_code+16028>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859f06 <exec_byte_code+16362> <repeats 64 times>} const_length = 24 bytestr_length = 138 vectorp = 0x7ffff2610d68 quitcounter = 1 '\001' stack_items = 14 sa_avail = 16134 sa_count = 5 alloc = 0x7fffffffd690 stack_base = 0x7fffffffd690 top = 0x7fffffffd6c8 stack_lim = 0x7fffffffd700 bytestr_data = 0x7fffffffd700 "\304\020\211?\205\023" pc = 0x7fffffffd762 "\006\006\071\203\211" count = 5 result = XIL(0) #16 0x00005555557fdd22 in fetch_and_exec_byte_code (fun=XIL(0x7ffff2610d35), syms_left=make_fixnum(1025), nargs=1, args=0x7fffffffdc38) at ../../master/src/eval.c:3036 #17 0x00005555557fe1a8 in funcall_lambda (fun=XIL(0x7ffff2610d35), nargs=1, arg_vector=0x7fffffffdc38) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffdbb0) syms_left = make_fixnum(1025) next = XIL(0x555555e63080) lexenv = XIL(0x1800000000) count = 5 i = 93824994985650 optional = false rest = false #18 0x00005555557fd57b in Ffuncall (nargs=2, args=0x7fffffffdc30) at ../../master/src/eval.c:2916 fun = XIL(0x7ffff2610d35) original_fun = XIL(0x4470) funcar = XIL(0) numargs = 1 val = XIL(0x7fffffffdc58) count = 4 #19 0x00005555557fcd45 in call1 (fn=XIL(0x4470), arg1=XIL(0x17b5b60)) at ../../master/src/eval.c:2774 #20 0x00005555557216bb in command_loop_1 () at ../../master/src/keyboard.c:1466 scount = 3 cmd = XIL(0x17b5b60) keybuf = {make_fixnum(113), XIL(0x7ffff2c1d0cd), XIL(0), XIL(0), XIL(0x7fffffffdd20), XIL(0x5555557fcdcf), XIL(0), XIL(0x7ffff25734c4), XIL(0x5555588c73b3), XIL(0), XIL(0x555555e63080), XIL(0), XIL(0x7fffffffdd00), XIL(0x55555571d4cf), XIL(0), XIL(0), XIL(0x555555e63080), XIL(0), XIL(0x7fffffffdd30), XIL(0x5555557f4179), XIL(0), XIL(0x555555e63080), XIL(0), XIL(0), XIL(0x7fffffffdd50), XIL(0x5555557f41cd), make_fixnum(2), make_fixnum(0), XIL(0x7fffffffdd90), XIL(0x5555557f9833)} i = 1 prev_modiff = 60 prev_buffer = 0x5555573fd880 already_adjusted = false #21 0x00005555557f92f3 in internal_condition_case (bfun=0x555555720e65 <command_loop_1>, handlers=XIL(0x90), hfun=0x555555720488 <cmd_error>) at ../../master/src/eval.c:1439 val = XIL(0x5555560c2d73) c = 0x555555f5e8f0 #22 0x0000555555720a55 in command_loop_2 (ignore=XIL(0)) at ../../master/src/keyboard.c:1094 val = make_fixnum(0) #23 0x00005555557f8703 in internal_catch (tag=XIL(0xd9e0), func=0x555555720a28 <command_loop_2>, arg=XIL(0)) at ../../master/src/eval.c:1189 val = XIL(0xd9e0) c = 0x555555f47770 #24 0x00005555557209f4 in command_loop () at ../../master/src/keyboard.c:1073 #25 0x000055555571ff71 in recursive_edit_1 () at ../../master/src/keyboard.c:720 count = 1 val = XIL(0x7fffffffdf00) #26 0x0000555555720168 in Frecursive_edit () at ../../master/src/keyboard.c:789 count = 0 buffer = XIL(0) #27 0x000055555571c04d in main (argc=2, argv=0x7fffffffe168) at ../../master/src/emacs.c:2050 stack_bottom_variable = 0x7ffff617e053 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 1 temacs = 0x0 attempt_load_pdump = true rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = 0x0 sockfd = -1 module_assertions = false Lisp Backtrace: "kill-buffer" (0xffffcc98) "gnus-server-exit" (0xffffd340) "funcall-interactively" (0xffffd338) "call-interactively" (0xffffd6d0) "command-execute" (0xffffdc38) 3435 if (!NILP (Fstring_equal (XBUFFER (buffer)->name_, 3436 build_string ("*Server*")))) 3437 { 3438 int count = buffer_window_count (XBUFFER (buffer)); 3439 3440 replace_buffer_in_windows_safely_count = 0; 3441 3442 3443 if (buffer_window_count (XBUFFER (buffer))) 3444 { 3443 if (buffer_window_count (XBUFFER (buffer))) 3450 FOR_EACH_FRAME (tail, frame) 3451 window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); $2 = XIL(0x5555573fd885) Lisp_Vectorlike PVEC_BUFFER $3 = (struct buffer *) 0x5555573fd880 0x5555571c18a0 "*Server*" $4 = { header = { size = 4611686018628915274 }, name_ = XIL(0x5555571e5b64), filename_ = XIL(0), directory_ = XIL(0x555555f6e6d4), backed_up_ = XIL(0), save_length_ = make_fixnum(0), auto_save_file_name_ = XIL(0), read_only_ = XIL(0x30), mark_ = XIL(0x555558c1dc5d), local_var_alist_ = XIL(0x555558c7b453), major_mode_ = XIL(0x15f4330), local_minor_modes_ = XIL(0x555558c2a9e3), mode_name_ = XIL(0x555556f4b704), mode_line_format_ = XIL(0x555558c2af73), header_line_format_ = XIL(0), tab_line_format_ = XIL(0), keymap_ = XIL(0x555556e4d403), abbrev_table_ = XIL(0x55555705cb75), syntax_table_ = XIL(0x5555570485fd), category_table_ = XIL(0x7ffff27881d5), case_fold_search_ = XIL(0x30), tab_width_ = make_fixnum(8), fill_column_ = make_fixnum(70), left_margin_ = make_fixnum(0), auto_fill_function_ = XIL(0), downcase_table_ = XIL(0x7ffff2784d35), upcase_table_ = XIL(0x7ffff2782d35), case_canon_table_ = XIL(0x7ffff28730fd), case_eqv_table_ = XIL(0x7ffff2784f75), truncate_lines_ = XIL(0x30), word_wrap_ = XIL(0), ctl_arrow_ = XIL(0x30), bidi_display_reordering_ = XIL(0x30), bidi_paragraph_direction_ = XIL(0), bidi_paragraph_separate_re_ = XIL(0), bidi_paragraph_start_re_ = XIL(0), selective_display_ = XIL(0), selective_display_ellipses_ = XIL(0x30), overwrite_mode_ = XIL(0), abbrev_mode_ = XIL(0), display_table_ = XIL(0), mark_active_ = XIL(0), enable_multibyte_characters_ = XIL(0x30), buffer_file_coding_system_ = XIL(0x2aaa9c7c45e8), file_format_ = XIL(0), auto_save_file_format_ = XIL(0x30), cache_long_scans_ = XIL(0x30), width_table_ = XIL(0), pt_marker_ = XIL(0), begv_marker_ = XIL(0), zv_marker_ = XIL(0), point_before_scroll_ = XIL(0), file_truename_ = XIL(0), invisibility_spec_ = XIL(0x30), last_selected_window_ = XIL(0x55555734b355), display_count_ = make_fixnum(1), left_margin_cols_ = make_fixnum(0), right_margin_cols_ = make_fixnum(0), left_fringe_width_ = XIL(0), right_fringe_width_ = XIL(0), fringes_outside_margins_ = XIL(0), scroll_bar_width_ = XIL(0), scroll_bar_height_ = XIL(0), vertical_scroll_bar_type_ = XIL(0x30), horizontal_scroll_bar_type_ = XIL(0x30), indicate_empty_lines_ = XIL(0), indicate_buffer_boundaries_ = XIL(0x8f10), fringe_indicator_alist_ = XIL(0x7ffff257001b), fringe_cursor_alist_ = XIL(0x7ffff256fbab), display_time_ = XIL(0x555558c2ac93), scroll_up_aggressively_ = XIL(0), scroll_down_aggressively_ = XIL(0), cursor_type_ = XIL(0x30), extra_line_spacing_ = XIL(0), cursor_in_non_selected_windows_ = XIL(0x30), own_text = { beg = 0x55555869acd0 " {nnfolder:archive} (opened)\n {nndraft:} (opened)\n {nntp:news.gmane.io} (opened)\n {nnimap:localimap} (opened)\n", gpt = 127, z = 127, gpt_byte = 127, z_byte = 127, gap_size = 1896, modiff = 60, chars_modiff = 56, save_modiff = 1, overlay_modiff = 1, compact = 1, beg_unchanged = 126, end_unchanged = 0, unchanged_modified = 60, overlay_unchanged_modified = 1, intervals = 0x555558274198, markers = 0x5555584d3908, inhibit_shrinking = false, redisplay = false }, text = 0x5555573fdad8, pt = 127, pt_byte = 127, begv = 1, begv_byte = 1, zv = 127, zv_byte = 127, base_buffer = 0x0, indirections = 0, window_count = 1, local_flags = "\000\001\000\000\000\000\000\000\000\001\000\000\000\000\001\000\001", '\000' <repeats 32 times>, modtime = { tv_sec = 0, tv_nsec = -2 }, modtime_size = -1, auto_save_modified = 0, display_error_modiff = 0, auto_save_failure_time = 0, last_window_start = 1, newline_cache = 0x5555582bb760, width_run_cache = 0x0, bidi_paragraph_cache = 0x555558232540, prevent_redisplay_optimizations_p = false, clip_changed = false, inhibit_buffer_hooks = false, overlays_before = 0x0, overlays_after = 0x0, overlay_center = 127, undo_list_ = XIL(0) } window_loop (type=REPLACE_BUFFER_IN_WINDOWS_SAFELY, obj=XIL(0x5555573fd885), mini=true, frames=XIL(0x55555820ef55)) at ../../master/src/window.c:2967 2967 bool frame_best_window_flag = false; 2973 if (FRAMEP (frames)) 2974 f = XFRAME (frames); 2980 if (f) $5 = (struct frame *) 0x55555820ef50 $6 = { header = { size = 4611686018578583579 }, name = XIL(0x555557f279a4), icon_name = XIL(0), title = XIL(0), parent_frame = XIL(0), focus_frame = XIL(0), root_window = XIL(0x5555571ebfc5), selected_window = XIL(0x5555571ebfc5), old_selected_window = XIL(0x5555571ebfc5), minibuffer_window = XIL(0x55555820f3cd), param_alist = XIL(0x555557270793), scroll_bars = XIL(0x555558249d2d), condemned_scroll_bars = XIL(0), menu_bar_items = XIL(0x555557a16205), face_alist = XIL(0x555557276223), menu_bar_vector = XIL(0x55555817250d), buffer_predicate = XIL(0), buffer_list = XIL(0x555558bc6053), buried_buffer_list = XIL(0x555558be0153), tab_bar_window = XIL(0x555557916495), desired_tab_bar_string = XIL(0), current_tab_bar_string = XIL(0), tool_bar_window = XIL(0x555557916705), desired_tool_bar_string = XIL(0), current_tool_bar_string = XIL(0), font_data = XIL(0), tab_bar_items = XIL(0), tool_bar_items = XIL(0), face_cache = 0x5555572b6bd0, last_tab_bar_item = -1, last_tool_bar_item = -1, menu_bar_items_used = 0, namebuf = 0x5555571c7420 "emacs", shell_position = 0x555557407e40 "=658x614", current_pool = 0x0, desired_pool = 0x0, desired_matrix = 0x0, current_matrix = 0x0, glyphs_initialized_p = true, resized_p = false, default_face_done_p = true, already_hscrolled_p = true, updated_p = true, minimize_tab_bar_window_p = false, minimize_tool_bar_window_p = false, fonts_changed = false, cursor_type_changed = false, redisplay = false, external_menu_bar = true, visible = 1, iconified = false, garbaged = false, wants_modeline = true, auto_raise = false, auto_lower = false, no_split = false, explicit_name = false, window_change = false, window_state_change = false, mouse_moved = true, pointer_invisible = false, frozen_window_starts = false, output_method = output_x_window, tooltip = false, want_fullscreen = FULLSCREEN_NONE, vertical_scroll_bar_type = vertical_scroll_bar_left, horizontal_scroll_bars = false, undecorated = false, override_redirect = false, skip_taskbar = false, no_focus_on_map = false, no_accept_focus = false, z_group = z_group_none, no_special_glyphs = false, new_pixelwise = false, can_set_window_size = true, after_make_frame = true, tab_bar_redisplayed = true, tab_bar_resized = false, tool_bar_redisplayed = true, tool_bar_resized = false, inhibit_horizontal_resize = false, inhibit_vertical_resize = false, face_change = false, inhibit_clear_image_cache = false, change_stamp = 168, number_of_windows = 2, tab_bar_lines = 0, tab_bar_height = 0, n_tab_bar_rows = 0, n_tab_bar_items = 0, tool_bar_lines = 0, tool_bar_height = 0, n_tool_bar_rows = 0, n_tool_bar_items = 0, decode_mode_spec_buffer = 0x5555581aaa30 "", insert_line_cost = 0x0, delete_line_cost = 0x0, insert_n_lines_cost = 0x0, delete_n_lines_cost = 0x0, text_cols = 96, text_lines = 57, total_cols = 100, total_lines = 57, text_width = 768, text_height = 985, new_width = 0, new_height = 0, left_pos = 1910, top_pos = 19, pixel_width = 802, pixel_height = 987, win_gravity = 1, size_hint_flags = 8, border_width = 0, child_frame_border_width = -1, internal_border_width = 1, right_divider_width = 0, bottom_divider_width = 0, left_fringe_width = 8, right_fringe_width = 8, fringe_cols = 2, menu_bar_lines = 0, menu_bar_height = 0, column_width = 8, line_height = 17, terminal = 0x555556f77e58, output_data = { tty = 0x555557297e70, x = 0x555557297e70, w32 = 0x555557297e70, ns = 0x555557297e70 }, font_driver_list = 0x5555577ad910, wait_event_type = 0, desired_cursor = FILLED_BOX_CURSOR, cursor_width = 1, blink_off_cursor = DEFAULT_CURSOR, blink_off_cursor_width = 0, config_scroll_bar_width = 16, config_scroll_bar_cols = 2, config_scroll_bar_height = 0, config_scroll_bar_lines = 0, cost_calculation_baud_rate = 19200, alpha = {-1, -1}, gamma = 0, extra_line_spacing = 0, background_pixel = 0, foreground_pixel = 16777215 } $7 = XIL(0x5555571ebfc5) Lisp_Vectorlike PVEC_WINDOW $8 = (struct window *) 0x5555571ebfc0 100x57+0+0 $9 = { header = { size = 4611686018595323929 }, frame = XIL(0x55555820ef55), next = XIL(0x55555820f3cd), prev = XIL(0), parent = XIL(0), normal_lines = XIL(0x5555576c7227), normal_cols = XIL(0x5555576c721f), new_total = make_fixnum(29), new_normal = XIL(0x5555576c7207), new_pixel = make_fixnum(492), contents = XIL(0x5555578be555), old_buffer = XIL(0x5555578be555), start = XIL(0x555557648d65), pointm = XIL(0x55555769443d), old_pointm = XIL(0x55555769446d), temslot = make_fixnum(0), vertical_scroll_bar = XIL(0x5555579268f5), vertical_scroll_bar_type = XIL(0x30), horizontal_scroll_bar = XIL(0), horizontal_scroll_bar_type = XIL(0), display_table = XIL(0), dedicated = XIL(0), redisplay_end_trigger = XIL(0), combination_limit = XIL(0), window_parameters = XIL(0x555557d8f163), mode_line_help_echo = XIL(0), current_matrix = 0x55555774f360, desired_matrix = 0x555557a2d400, prev_buffers = XIL(0x555558c334d3), next_buffers = XIL(0), use_time = 1704, sequence_number = 46, change_stamp = 168, pixel_left = 0, pixel_top = 0, left_col = 0, top_line = 0, pixel_width = 800, pixel_height = 968, old_pixel_width = 800, old_pixel_height = 968, old_body_pixel_width = 768, old_body_pixel_height = 951, total_cols = 100, total_lines = 57, hscroll = 0, min_hscroll = 0, hscroll_whole = 0, last_modified = 46, last_overlay_modified = 1, last_point = 1, base_line_number = 1, base_line_pos = 1, column_number_displayed = -1, nrows_scale_factor = 1, ncols_scale_factor = 1, cursor = { x = 0, y = 0, hpos = 0, vpos = 0 }, phys_cursor = { x = 0, y = 0, hpos = 0, vpos = 0 }, output_cursor = { x = 0, y = 0, hpos = 0, vpos = 0 }, last_cursor_vpos = 0, phys_cursor_type = HOLLOW_BOX_CURSOR, phys_cursor_width = 8, phys_cursor_ascent = 13, phys_cursor_height = 17, left_fringe_width = -1, right_fringe_width = -1, left_margin_cols = 0, right_margin_cols = 0, scroll_bar_width = -1, scroll_bar_height = -1, mode_line_height = 17, header_line_height = 17, tab_line_height = -1, window_end_pos = 0, window_end_vpos = 24, mini = false, horizontal = false, update_mode_line = false, last_had_star = false, start_at_line_beg = true, force_start = false, optional_new_start = false, phys_cursor_on_p = true, cursor_off_p = false, last_cursor_off_p = false, must_be_updated_p = false, pseudo_window_p = false, fringes_outside_margins = false, fringes_persistent = false, scroll_bars_persistent = false, window_end_valid = true, redisplay = false, suspend_auto_hscroll = false, vscroll = 0, window_end_bytepos = 0 } 2981 frame_arg = Qlambda; 2994 if (WINDOWP (obj)) $10 = XIL(0x5555573fd885) Lisp_Vectorlike PVEC_BUFFER 2996 else if (f) 2997 window = FRAME_SELECTED_WINDOW (f); 3001 windows = window_list_1 (window, mini ? Qt : Qnil, frame_arg); $11 = XIL(0x5555571ebfc5) $12 = true builtin_lisp_symbol (index=1) at ../../master/src/lisp.h:1007 1007 return make_lisp_symbol (&lispsym[index]); #1 0x000055555564c582 in window_loop (type=REPLACE_BUFFER_IN_WINDOWS_SAFELY, obj=XIL(0x5555573fd885), mini=true, frames=XIL(0x55555820ef55)) at ../../master/src/window.c:3001 3001 windows = window_list_1 (window, mini ? Qt : Qnil, frame_arg); #0 builtin_lisp_symbol (index=1) at ../../master/src/lisp.h:1007 1007 return make_lisp_symbol (&lispsym[index]); $13 = 1 make_lisp_symbol (sym=0x555555e630b0 <lispsym+48>) at ../../master/src/lisp.h:998 998 char *symoffset = (char *) ((char *) sym - (char *) lispsym); $14 = (struct Lisp_Symbol *) 0x555555e630b0 <lispsym+48> 999 Lisp_Object a = TAG_PTR (Lisp_Symbol, symoffset); 1000 eassert (XSYMBOL (a) == sym); $15 = XIL(0x30) type = union Lisp_X { <incomplete type> } * XSYMBOL (a=XIL(0x30)) at ../../master/src/lisp.h:987 987 eassert (SYMBOLP (a)); 988 intptr_t i = (intptr_t) XUNTAG (a, Lisp_Symbol, struct Lisp_Symbol); 989 void *p = (char *) lispsym + i; 990 return p; $16 = (void *) 0x555555e630b0 <lispsym+48> 991 } make_lisp_symbol (sym=0x555555e630b0 <lispsym+48>) at ../../master/src/lisp.h:1001 1001 return a; 1002 } builtin_lisp_symbol (index=1) at ../../master/src/lisp.h:1008 1008 } window_list_1 (window=XIL(0x5555571ebfc5), minibuf=XIL(0x30), all_frames=XIL(0xc0)) at ../../master/src/window.c:2863 2863 decode_next_window_args (&window, &minibuf, &all_frames); decode_next_window_args (window=0x7fffffffc968, minibuf=0x7fffffffc960, all_frames=0x7fffffffc958) at ../../master/src/window.c:2672 2672 struct window *w = decode_live_window (*window); decode_live_window (window=XIL(0x5555571ebfc5)) at ../../master/src/window.c:246 246 if (NILP (window)) 249 CHECK_LIVE_WINDOW (window); WINDOWP (a=XIL(0x5555571ebfc5)) at ../../master/src/window.h:460 460 return PSEUDOVECTORP (a, PVEC_WINDOW); PSEUDOVECTORP (a=XIL(0x5555571ebfc5), code=10) at ../../master/src/lisp.h:1695 1695 if (! VECTORLIKEP (a)) 1700 return PSEUDOVECTOR_TYPEP (XUNTAG (a, Lisp_Vectorlike, PSEUDOVECTOR_TYPEP (a=0x5555571ebfc0, code=PVEC_WINDOW) at ../../master/src/lisp.h:1687 1687 return ((a->size & (PSEUDOVECTOR_FLAG | PVEC_TYPE_MASK)) 1688 == (PSEUDOVECTOR_FLAG | (code << PSEUDOVECTOR_AREA_BITS))); 1689 } PSEUDOVECTORP (a=XIL(0x5555571ebfc5), code=10) at ../../master/src/lisp.h:1704 1704 } WINDOWP (a=XIL(0x5555571ebfc5)) at ../../master/src/window.h:461 461 } XWINDOW (a=XIL(0x5555571ebfc5)) at ../../master/src/window.h:472 472 eassert (WINDOWP (a)); 473 return XUNTAG (a, Lisp_Vectorlike, struct window); Quit 474 } BUFFERP (a=XIL(0x5555578be555)) at ../../master/src/buffer.h:698 698 return PSEUDOVECTORP (a, PVEC_BUFFER); 699 } decode_live_window (window=XIL(0x5555571ebfc5)) at ../../master/src/window.c:250 250 return XWINDOW (window); XWINDOW (a=XIL(0x5555571ebfc5)) at ../../master/src/window.h:472 472 eassert (WINDOWP (a)); 473 return XUNTAG (a, Lisp_Vectorlike, struct window); 474 } decode_live_window (window=XIL(0x5555571ebfc5)) at ../../master/src/window.c:251 251 } decode_next_window_args (window=0x7fffffffc968, minibuf=0x7fffffffc960, all_frames=0x7fffffffc958) at ../../master/src/window.c:2673 2673 Lisp_Object miniwin = XFRAME (w->frame)->minibuffer_window; 2675 XSETWINDOW (*window, w); $17 = XIL(0x55555820f3cd) type = union Lisp_X { <incomplete type> } * $18 = (struct window *) 0x5555571ebfc0 $19 = { header = { size = 4611686018595323929 }, frame = XIL(0x55555820ef55), next = XIL(0x55555820f3cd), prev = XIL(0), parent = XIL(0), normal_lines = XIL(0x5555576c7227), normal_cols = XIL(0x5555576c721f), new_total = make_fixnum(29), new_normal = XIL(0x5555576c7207), new_pixel = make_fixnum(492), contents = XIL(0x5555578be555), old_buffer = XIL(0x5555578be555), start = XIL(0x555557648d65), pointm = XIL(0x55555769443d), old_pointm = XIL(0x55555769446d), temslot = make_fixnum(0), vertical_scroll_bar = XIL(0x5555579268f5), vertical_scroll_bar_type = XIL(0x30), horizontal_scroll_bar = XIL(0), horizontal_scroll_bar_type = XIL(0), display_table = XIL(0), dedicated = XIL(0), redisplay_end_trigger = XIL(0), combination_limit = XIL(0), window_parameters = XIL(0x555557d8f163), mode_line_help_echo = XIL(0), current_matrix = 0x55555774f360, desired_matrix = 0x555557a2d400, prev_buffers = XIL(0x555558c334d3), next_buffers = XIL(0), use_time = 1704, sequence_number = 46, change_stamp = 168, pixel_left = 0, pixel_top = 0, left_col = 0, top_line = 0, pixel_width = 800, pixel_height = 968, old_pixel_width = 800, old_pixel_height = 968, old_body_pixel_width = 768, old_body_pixel_height = 951, total_cols = 100, total_lines = 57, hscroll = 0, min_hscroll = 0, hscroll_whole = 0, last_modified = 46, last_overlay_modified = 1, last_point = 1, base_line_number = 1, base_line_pos = 1, column_number_displayed = -1, nrows_scale_factor = 1, ncols_scale_factor = 1, cursor = { x = 0, y = 0, hpos = 0, vpos = 0 }, phys_cursor = { x = 0, y = 0, hpos = 0, vpos = 0 }, output_cursor = { x = 0, y = 0, hpos = 0, vpos = 0 }, last_cursor_vpos = 0, phys_cursor_type = HOLLOW_BOX_CURSOR, phys_cursor_width = 8, phys_cursor_ascent = 13, phys_cursor_height = 17, left_fringe_width = -1, right_fringe_width = -1, left_margin_cols = 0, right_margin_cols = 0, scroll_bar_width = -1, scroll_bar_height = -1, mode_line_height = 17, header_line_height = 17, tab_line_height = -1, window_end_pos = 0, window_end_vpos = 24, mini = false, horizontal = false, update_mode_line = false, last_had_star = false, start_at_line_beg = true, force_start = false, optional_new_start = false, phys_cursor_on_p = true, cursor_off_p = false, last_cursor_off_p = false, must_be_updated_p = false, pseudo_window_p = false, fringes_outside_margins = false, fringes_persistent = false, scroll_bars_persistent = false, window_end_valid = true, redisplay = false, suspend_auto_hscroll = false, vscroll = 0, window_end_bytepos = 0 } There is no member named contents. $20 = XIL(0x5555578be555) type = union Lisp_X { <incomplete type> } * make_lisp_ptr (ptr=0x5555571ebfc0, type=Lisp_Vectorlike) at ../../master/src/lisp.h:1259 1259 Lisp_Object a = TAG_PTR (type, ptr); 1260 eassert (TAGGEDP (a, type) && XUNTAG (a, type, char) == ptr); 1261 return a; 1262 } decode_next_window_args (window=0x7fffffffc968, minibuf=0x7fffffffc960, all_frames=0x7fffffffc958) at ../../master/src/window.c:2678 2678 if (NILP (*minibuf)) 2682 else if (!EQ (*minibuf, Qt)) 2690 if (NILP (*all_frames)) 2695 else if (EQ (*all_frames, Qvisible)) 2697 else if (EQ (*all_frames, make_fixnum (0))) 2699 else if (FRAMEP (*all_frames)) 2701 else if (!EQ (*all_frames, Qt)) 2702 *all_frames = Qnil; 2703 } window_list_1 (window=XIL(0x5555571ebfc5), minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2864 2864 list = Qnil; 2866 for (tail = window_list (); CONSP (tail); tail = XCDR (tail)) 2867 if (candidate_window_p (XCAR (tail), window, minibuf, all_frames)) candidate_window_p (window=XIL(0x5555571ebfc5), owindow=XIL(0x5555571ebfc5), minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2605 2605 struct window *w = XWINDOW (window); 2606 struct frame *f = XFRAME (w->frame); 2607 bool candidate_p = true; 2609 if (!BUFFERP (w->contents)) 2611 else if (MINI_WINDOW_P (w) 2619 else if (EQ (all_frames, Qt)) 2621 else if (NILP (all_frames)) 2623 eassert (WINDOWP (owindow)); 2624 candidate_p = EQ (w->frame, XWINDOW (owindow)->frame); 2661 return candidate_p; $21 = true 2662 } window_list_1 (window=XIL(0x5555571ebfc5), minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2868 2868 list = Fcons (XCAR (tail), list); 2866 for (tail = window_list (); CONSP (tail); tail = XCDR (tail)) 2867 if (candidate_window_p (XCAR (tail), window, minibuf, all_frames)) 2868 list = Fcons (XCAR (tail), list); 2866 for (tail = window_list (); CONSP (tail); tail = XCDR (tail)) 2871 list = Fnreverse (list); 2872 rest = Fmemq (window, list); $22 = XIL(0x555558be6423) Lisp_Cons $23 = (struct Lisp_Cons *) 0x555558be6420 { u = { s = { car = XIL(0x5555571ebfc5), u = { cdr = XIL(0x555558be6433), chain = 0x555558be6433 } }, gcaligned = 0xc5 } } $24 = 0x0 2873 if (!NILP (rest) && !EQ (rest, list)) $25 = XIL(0x555558be6423) Lisp_Cons 2880 return list; 2881 } window_loop (type=REPLACE_BUFFER_IN_WINDOWS_SAFELY, obj=XIL(0x5555573fd885), mini=true, frames=XIL(0x55555820ef55)) at ../../master/src/window.c:3002 3002 best_window = Qnil; 3004 for (; CONSP (windows); windows = XCDR (windows)) 3008 window = XCAR (windows); 3009 w = XWINDOW (window); $26 = XIL(0x5555571ebfc5) Lisp_Vectorlike PVEC_WINDOW $27 = (struct window *) 0x5555571ebfc0 100x57+0+0 3014 if (!MINI_WINDOW_P (w) 3046 if (EQ (w->contents, obj)) 3063 break; 3004 for (; CONSP (windows); windows = XCDR (windows)) 3008 window = XCAR (windows); 3009 w = XWINDOW (window); $28 = XIL(0x55555820f3cd) Lisp_Vectorlike PVEC_WINDOW $29 = (struct window *) 0x55555820f3c8 100x1+0+57 3014 if (!MINI_WINDOW_P (w) 3017 || type == REPLACE_BUFFER_IN_WINDOWS_SAFELY 3046 if (EQ (w->contents, obj)) 3063 break; 3004 for (; CONSP (windows); windows = XCDR (windows)) 3097 return best_window; $30 = XIL(0) 3098 } replace_buffer_in_windows_safely (buffer=XIL(0x5555573fd885)) at ../../master/src/window.c:3450 3450 FOR_EACH_FRAME (tail, frame) 3451 window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); window_loop (type=REPLACE_BUFFER_IN_WINDOWS_SAFELY, obj=XIL(0x5555573fd885), mini=true, frames=XIL(0x555556fa294d)) at ../../master/src/window.c:2967 2967 bool frame_best_window_flag = false; 2973 if (FRAMEP (frames)) 2974 f = XFRAME (frames); 2980 if (f) 2981 frame_arg = Qlambda; 2994 if (WINDOWP (obj)) 2996 else if (f) 2997 window = FRAME_SELECTED_WINDOW (f); 3001 windows = window_list_1 (window, mini ? Qt : Qnil, frame_arg); 3002 best_window = Qnil; 3004 for (; CONSP (windows); windows = XCDR (windows)) 3097 return best_window; 3098 } replace_buffer_in_windows_safely (buffer=XIL(0x5555573fd885)) at ../../master/src/window.c:3450 3450 FOR_EACH_FRAME (tail, frame) 3451 window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); window_loop (type=REPLACE_BUFFER_IN_WINDOWS_SAFELY, obj=XIL(0x5555573fd885), mini=true, frames=XIL(0x555555eff9dd)) at ../../master/src/window.c:2967 2967 bool frame_best_window_flag = false; 2973 if (FRAMEP (frames)) 2974 f = XFRAME (frames); 2980 if (f) 2981 frame_arg = Qlambda; 2994 if (WINDOWP (obj)) 2996 else if (f) 2997 window = FRAME_SELECTED_WINDOW (f); 3001 windows = window_list_1 (window, mini ? Qt : Qnil, frame_arg); 3002 best_window = Qnil; 3004 for (; CONSP (windows); windows = XCDR (windows)) 3097 return best_window; 3098 } replace_buffer_in_windows_safely (buffer=XIL(0x5555573fd885)) at ../../master/src/window.c:3450 3450 FOR_EACH_FRAME (tail, frame) 3454 eassert (count == replace_buffer_in_windows_safely_count); $31 = 1 $32 = 0 Thread 2.1 "emacs" hit Breakpoint 3, terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at ../../master/src/emacs.c:379 379 signal (sig, SIG_DFL); #0 terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at ../../master/src/emacs.c:379 #1 0x00005555557c4a46 in die (msg=0x555555910838 "count == replace_buffer_in_windows_safely_count", file=0x55555590f9cf "../../master/src/window.c", line=3454) at ../../master/src/alloc.c:7420 #2 0x000055555564d9af in replace_buffer_in_windows_safely (buffer=XIL(0x5555573fd885)) at ../../master/src/window.c:3454 count = 1 #3 0x0000555555758f71 in Fkill_buffer (buffer_or_name=XIL(0x5555573fd885)) at ../../master/src/buffer.c:1880 buffer = XIL(0x5555573fd885) b = 0x5555573fd880 tem = XIL(0) m = 0x7fffffffcb70 #4 0x00005555557fda6f in funcall_subr (subr=0x555555dd9ce0 <Skill_buffer>, numargs=1, args=0x7fffffffcc98) at ../../master/src/eval.c:2987 internal_argbuf = {XIL(0x7fffffffcbd0), XIL(0x1000000000), XIL(0x555555dd9ce0), XIL(0x7fffffffcbd8), make_fixnum(23456248746412), XIL(0x10557f4179), XIL(0x555555dd9ce5), XIL(0x7fffffffcbf0)} internal_args = 0x7fffffffcc98 #5 0x00005555557fd537 in Ffuncall (nargs=2, args=0x7fffffffcc90) at ../../master/src/eval.c:2914 fun = XIL(0x555555dd9ce5) original_fun = XIL(0x2aaa9c7147c0) funcar = XIL(0x5ffffcc50) numargs = 1 val = XIL(0x7fffffffcc70) count = 10 #6 0x0000555555856bfa in exec_byte_code (bytestr=XIL(0x555556f49614), vector=XIL(0x555557601b55), maxdepth=make_fixnum(5), args_template=make_fixnum(0), nargs=0, args=0x7fffffffd340) at ../../master/src/bytecode.c:632 op = 1 type = (CONDITION_CASE | unknown: 0x557d720c) targets = {0x555555859a8f <exec_byte_code+15219>, 0x555555859ab4 <exec_byte_code+15256>, 0x555555859ab6 <exec_byte_code+15258>, 0x555555859ab8 <exec_byte_code+15260>, 0x555555859aba <exec_byte_code+15262>, 0x555555859aba <exec_byte_code+15262>, 0x555555859b1f <exec_byte_code+15363>, 0x555555859b93 <exec_byte_code+15479>, 0x5555558564ba <exec_byte_code+1438>, 0x5555558564bc <exec_byte_code+1440>, 0x5555558564be <exec_byte_code+1442>, 0x5555558564c0 <exec_byte_code+1444>, 0x5555558564c2 <exec_byte_code+1446>, 0x5555558564c2 <exec_byte_code+1446>, 0x5555558564c8 <exec_byte_code+1452>, 0x555555856489 <exec_byte_code+1389>, 0x5555558568e0 <exec_byte_code+2500>, 0x5555558568e2 <exec_byte_code+2502>, 0x5555558568e4 <exec_byte_code+2504>, 0x5555558568e6 <exec_byte_code+2506>, 0x5555558568e8 <exec_byte_code+2508>, 0x5555558568e8 <exec_byte_code+2508>, 0x55555585691d <exec_byte_code+2561>, 0x5555558568ee <exec_byte_code+2514>, 0x555555856b12 <exec_byte_code+3062>, 0x555555856b14 <exec_byte_code+3064>, 0x555555856b16 <exec_byte_code+3066>, 0x555555856b18 <exec_byte_code+3068>, 0x555555856b1a <exec_byte_code+3070>, 0x555555856b1a <exec_byte_code+3070>, 0x555555856acc <exec_byte_code+2992>, 0x555555856ae3 <exec_byte_code+3015>, 0x555555856bc7 <exec_byte_code+3243>, 0x555555856bc9 <exec_byte_code+3245>, 0x555555856bcb <exec_byte_code+3247>, 0x555555856bcd <exec_byte_code+3249>, 0x555555856bcf <exec_byte_code+3251>, 0x555555856bcf <exec_byte_code+3251>, 0x555555856b81 <exec_byte_code+3173>, 0x555555856b98 <exec_byte_code+3196>, 0x555555856c79 <exec_byte_code+3421>, 0x555555856c7b <exec_byte_code+3423>, 0x555555856c7d <exec_byte_code+3425>, 0x555555856c7f <exec_byte_code+3427>, 0x555555856c81 <exec_byte_code+3429>, 0x555555856c81 <exec_byte_code+3429>, 0x555555856c33 <exec_byte_code+3351>, 0x555555856c4a <exec_byte_code+3374>, 0x5555558574e1 <exec_byte_code+5573>, 0x5555558573c4 <exec_byte_code+5288>, 0x5555558573bb <exec_byte_code+5279>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x55555585771b <exec_byte_code+6143>, 0x555555857831 <exec_byte_code+6421>, 0x55555585788e <exec_byte_code+6514>, 0x5555558578ee <exec_byte_code+6610>, 0x555555857950 <exec_byte_code+6708>, 0x555555856739 <exec_byte_code+2077>, 0x5555558567b4 <exec_byte_code+2200>, 0x5555558579c9 <exec_byte_code+6829>, 0x555555856676 <exec_byte_code+1882>, 0x55555585681c <exec_byte_code+2304>, 0x555555857a31 <exec_byte_code+6933>, 0x555555857a99 <exec_byte_code+7037>, 0x555555857ae1 <exec_byte_code+7109>, 0x555555857b49 <exec_byte_code+7213>, 0x555555857baf <exec_byte_code+7315>, 0x555555857c95 <exec_byte_code+7545>, 0x555555857cdd <exec_byte_code+7617>, 0x555555857d45 <exec_byte_code+7721>, 0x555555857dca <exec_byte_code+7854>, 0x555555857e12 <exec_byte_code+7926>, 0x555555857e5a <exec_byte_code+7998>, 0x555555857ec2 <exec_byte_code+8102>, 0x555555857f2a <exec_byte_code+8206>, 0x555555857f92 <exec_byte_code+8310>, 0x555555858017 <exec_byte_code+8443>, 0x555555858066 <exec_byte_code+8522>, 0x5555558580b5 <exec_byte_code+8601>, 0x55555585817c <exec_byte_code+8800>, 0x555555858275 <exec_byte_code+9049>, 0x55555585836e <exec_byte_code+9298>, 0x5555558583db <exec_byte_code+9407>, 0x555555858448 <exec_byte_code+9516>, 0x5555558584b5 <exec_byte_code+9625>, 0x555555858522 <exec_byte_code+9734>, 0x55555585858f <exec_byte_code+9843>, 0x5555558585de <exec_byte_code+9922>, 0x5555558586d8 <exec_byte_code+10172>, 0x555555858727 <exec_byte_code+10251>, 0x555555858776 <exec_byte_code+10330>, 0x5555558587c5 <exec_byte_code+10409>, 0x5555558588cb <exec_byte_code+10671>, 0x55555585723b <exec_byte_code+4895>, 0x555555858926 <exec_byte_code+10762>, 0x55555585896e <exec_byte_code+10834>, 0x555555858a30 <exec_byte_code+11028>, 0x555555858a99 <exec_byte_code+11133>, 0x555555858af4 <exec_byte_code+11224>, 0x555555858b3c <exec_byte_code+11296>, 0x555555858b7f <exec_byte_code+11363>, 0x555555858bc2 <exec_byte_code+11430>, 0x555555858c0d <exec_byte_code+11505>, 0x555555859a8f <exec_byte_code+15219>, 0x555555858c65 <exec_byte_code+11593>, 0x555555858ca8 <exec_byte_code+11660>, 0x555555858ceb <exec_byte_code+11727>, 0x555555858d2e <exec_byte_code+11794>, 0x555555858d71 <exec_byte_code+11861>, 0x555555858db4 <exec_byte_code+11928>, 0x55555585723b <exec_byte_code+4895>, 0x555555859a8f <exec_byte_code+15219>, 0x555555858dfc <exec_byte_code+12000>, 0x555555858e4e <exec_byte_code+12082>, 0x555555858e96 <exec_byte_code+12154>, 0x555555858ede <exec_byte_code+12226>, 0x555555858f46 <exec_byte_code+12330>, 0x555555858fae <exec_byte_code+12434>, 0x555555858ff6 <exec_byte_code+12506>, 0x5555558590b3 <exec_byte_code+12695>, 0x55555585911b <exec_byte_code+12799>, 0x555555859183 <exec_byte_code+12903>, 0x5555558591eb <exec_byte_code+13007>, 0x55555585922e <exec_byte_code+13074>, 0x555555859a8f <exec_byte_code+15219>, 0x555555857181 <exec_byte_code+4709>, 0x555555856d2b <exec_byte_code+3599>, 0x5555558565e4 <exec_byte_code+1736>, 0x555555856ddc <exec_byte_code+3776>, 0x555555856e60 <exec_byte_code+3908>, 0x555555856ee1 <exec_byte_code+4037>, 0x555555857135 <exec_byte_code+4633>, 0x55555585714a <exec_byte_code+4654>, 0x555555856a79 <exec_byte_code+2909>, 0x555555857204 <exec_byte_code+4840>, 0x555555857272 <exec_byte_code+4950>, 0x555555857303 <exec_byte_code+5095>, 0x55555585734c <exec_byte_code+5168>, 0x55555585752d <exec_byte_code+5649>, 0x5555558575aa <exec_byte_code+5774>, 0x55555585762f <exec_byte_code+5907>, 0x555555857695 <exec_byte_code+6009>, 0x555555856cdd <exec_byte_code+3521>, 0x555555859276 <exec_byte_code+13146>, 0x5555558592fb <exec_byte_code+13279>, 0x555555859343 <exec_byte_code+13351>, 0x55555585938b <exec_byte_code+13423>, 0x5555558593d3 <exec_byte_code+13495>, 0x55555585941b <exec_byte_code+13567>, 0x555555859483 <exec_byte_code+13671>, 0x5555558594eb <exec_byte_code+13775>, 0x555555859553 <exec_byte_code+13879>, 0x5555558595bb <exec_byte_code+13983>, 0x555555859704 <exec_byte_code+14312>, 0x55555585976c <exec_byte_code+14416>, 0x5555558597d4 <exec_byte_code+14520>, 0x55555585981c <exec_byte_code+14592>, 0x555555859884 <exec_byte_code+14696>, 0x5555558598ec <exec_byte_code+14800>, 0x555555859934 <exec_byte_code+14872>, 0x55555585997c <exec_byte_code+14944>, 0x555555858814 <exec_byte_code+10488>, 0x555555858863 <exec_byte_code+10567>, 0x5555558599cb <exec_byte_code+15023>, 0x555555859a2d <exec_byte_code+15121>, 0x555555859a8f <exec_byte_code+15219>, 0x555555856f62 <exec_byte_code+4166>, 0x555555856f7f <exec_byte_code+4195>, 0x555555856fee <exec_byte_code+4306>, 0x55555585705d <exec_byte_code+4417>, 0x5555558570c9 <exec_byte_code+4525>, 0x555555857c1d <exec_byte_code+7425>, 0x555555858104 <exec_byte_code+8680>, 0x5555558589b8 <exec_byte_code+10908>, 0x555555859c26 <exec_byte_code+15626>, 0x555555859c9b <exec_byte_code+15743>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859d31 <exec_byte_code+15893>, 0x555555859db8 <exec_byte_code+16028>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859f06 <exec_byte_code+16362> <repeats 64 times>} const_length = 9 bytestr_length = 40 vectorp = 0x555557601b58 quitcounter = 1 '\001' stack_items = 6 sa_avail = 16296 sa_count = 10 alloc = 0x7fffffffcc80 stack_base = 0x7fffffffcc80 top = 0x7fffffffcc90 stack_lim = 0x7fffffffccb0 bytestr_data = 0x7fffffffccb0 "\300\301!\210p\211\211\205\026" pc = 0x7fffffffccce "\210\305 \210\210\306\307\310\"\207\371_\205UUU" count = 10 result = XIL(0xe0d0) #7 0x00005555557fdd22 in fetch_and_exec_byte_code (fun=XIL(0x555557601ba5), syms_left=make_fixnum(0), nargs=0, args=0x7fffffffd340) at ../../master/src/eval.c:3036 #8 0x00005555557fe1a8 in funcall_lambda (fun=XIL(0x555557601ba5), nargs=0, arg_vector=0x7fffffffd340) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffd0f0) syms_left = make_fixnum(0) next = XIL(0x555555e63080) lexenv = XIL(0x1800000000) count = 10 i = 93824994985650 optional = false rest = false #9 0x00005555557fd57b in Ffuncall (nargs=1, args=0x7fffffffd338) at ../../master/src/eval.c:2916 fun = XIL(0x555557601ba5) original_fun = XIL(0x17b5b60) funcar = XIL(0xffffd190) numargs = 0 val = XIL(0) count = 9 #10 0x00005555557f166f in Ffuncall_interactively (nargs=1, args=0x7fffffffd338) at ../../master/src/callint.c:260 speccount = 8 #11 0x00005555557fd960 in funcall_subr (subr=0x555555ddfca0 <Sfuncall_interactively>, numargs=1, args=0x7fffffffd338) at ../../master/src/eval.c:2967 #12 0x00005555557fd537 in Ffuncall (nargs=2, args=0x7fffffffd330) at ../../master/src/eval.c:2914 fun = XIL(0x555555ddfca5) original_fun = XIL(0x70b0) funcar = XIL(0x7fffffffd260) numargs = 1 val = XIL(0) count = 7 #13 0x00005555557fc220 in Fapply (nargs=3, args=0x7fffffffd330) at ../../master/src/eval.c:2497 i = 2582733851120 funcall_nargs = 24861632 funcall_args = 0x0 spread_arg = XIL(0) fun = XIL(0x70b0) sa_avail = 16384 sa_count = 7 numargs = 0 retval = XIL(0x5555557f03af) #14 0x00005555557f1ae4 in Fcall_interactively (function=XIL(0x17b5b60), record_flag=XIL(0), keys=XIL(0x555557e0a415)) at ../../master/src/callint.c:353 funval = XIL(0x555557601ba5) events = 1526 input = XIL(0) speccount = 6 arg_from_tty = false key_count = 1 record_then_fail = false save_this_command = XIL(0x17b5b60) save_this_original_command = XIL(0x17b5b60) save_real_this_command = XIL(0x17b5b60) save_last_command = XIL(0x17b5bc0) prefix_arg = XIL(0) enable = XIL(0) up_event = XIL(0) form = XIL(0x555558be6b73) specs = XIL(0) sa_avail = 93825001730176 sa_count = 93824995577619 string_len = 93824993913597 string = 0x555557601ba5 "" string_end = 0x7fffffffd490 "" next_event = 93824994845699 nargs = 0 args = 0x0 visargs = 0x0 varies = 0x555555e63080 <lispsym> "\230\001" tem = 0x7fffffffd520 "\245\033`WUU" val = XIL(0) #15 0x00005555557fdac9 in funcall_subr (subr=0x555555ddfce0 <Scall_interactively>, numargs=3, args=0x7fffffffd6d0) at ../../master/src/eval.c:2992 internal_argbuf = {XIL(0x7fffffffd5e0), XIL(0x1000000000), XIL(0x555555ddfce0), XIL(0x7fffffffd5e8), make_fixnum(23456248746412), XIL(0x10557f4179), XIL(0x555555ddfce5), XIL(0x7fffffffd600)} internal_args = 0x7fffffffd6d0 #16 0x00005555557fd537 in Ffuncall (nargs=4, args=0x7fffffffd6c8) at ../../master/src/eval.c:2914 fun = XIL(0x555555ddfce5) original_fun = XIL(0x2aaa9c7191d0) funcar = XIL(0x7fffffffd660) numargs = 3 val = XIL(0x7fffffffd680) count = 5 #17 0x0000555555856bfa in exec_byte_code (bytestr=XIL(0x7ffff26110fc), vector=XIL(0x7ffff2610d65), maxdepth=make_fixnum(13), args_template=make_fixnum(1025), nargs=1, args=0x7fffffffdc40) at ../../master/src/bytecode.c:632 op = 3 type = CATCHER targets = {0x555555859a8f <exec_byte_code+15219>, 0x555555859ab4 <exec_byte_code+15256>, 0x555555859ab6 <exec_byte_code+15258>, 0x555555859ab8 <exec_byte_code+15260>, 0x555555859aba <exec_byte_code+15262>, 0x555555859aba <exec_byte_code+15262>, 0x555555859b1f <exec_byte_code+15363>, 0x555555859b93 <exec_byte_code+15479>, 0x5555558564ba <exec_byte_code+1438>, 0x5555558564bc <exec_byte_code+1440>, 0x5555558564be <exec_byte_code+1442>, 0x5555558564c0 <exec_byte_code+1444>, 0x5555558564c2 <exec_byte_code+1446>, 0x5555558564c2 <exec_byte_code+1446>, 0x5555558564c8 <exec_byte_code+1452>, 0x555555856489 <exec_byte_code+1389>, 0x5555558568e0 <exec_byte_code+2500>, 0x5555558568e2 <exec_byte_code+2502>, 0x5555558568e4 <exec_byte_code+2504>, 0x5555558568e6 <exec_byte_code+2506>, 0x5555558568e8 <exec_byte_code+2508>, 0x5555558568e8 <exec_byte_code+2508>, 0x55555585691d <exec_byte_code+2561>, 0x5555558568ee <exec_byte_code+2514>, 0x555555856b12 <exec_byte_code+3062>, 0x555555856b14 <exec_byte_code+3064>, 0x555555856b16 <exec_byte_code+3066>, 0x555555856b18 <exec_byte_code+3068>, 0x555555856b1a <exec_byte_code+3070>, 0x555555856b1a <exec_byte_code+3070>, 0x555555856acc <exec_byte_code+2992>, 0x555555856ae3 <exec_byte_code+3015>, 0x555555856bc7 <exec_byte_code+3243>, 0x555555856bc9 <exec_byte_code+3245>, 0x555555856bcb <exec_byte_code+3247>, 0x555555856bcd <exec_byte_code+3249>, 0x555555856bcf <exec_byte_code+3251>, 0x555555856bcf <exec_byte_code+3251>, 0x555555856b81 <exec_byte_code+3173>, 0x555555856b98 <exec_byte_code+3196>, 0x555555856c79 <exec_byte_code+3421>, 0x555555856c7b <exec_byte_code+3423>, 0x555555856c7d <exec_byte_code+3425>, 0x555555856c7f <exec_byte_code+3427>, 0x555555856c81 <exec_byte_code+3429>, 0x555555856c81 <exec_byte_code+3429>, 0x555555856c33 <exec_byte_code+3351>, 0x555555856c4a <exec_byte_code+3374>, 0x5555558574e1 <exec_byte_code+5573>, 0x5555558573c4 <exec_byte_code+5288>, 0x5555558573bb <exec_byte_code+5279>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x55555585771b <exec_byte_code+6143>, 0x555555857831 <exec_byte_code+6421>, 0x55555585788e <exec_byte_code+6514>, 0x5555558578ee <exec_byte_code+6610>, 0x555555857950 <exec_byte_code+6708>, 0x555555856739 <exec_byte_code+2077>, 0x5555558567b4 <exec_byte_code+2200>, 0x5555558579c9 <exec_byte_code+6829>, 0x555555856676 <exec_byte_code+1882>, 0x55555585681c <exec_byte_code+2304>, 0x555555857a31 <exec_byte_code+6933>, 0x555555857a99 <exec_byte_code+7037>, 0x555555857ae1 <exec_byte_code+7109>, 0x555555857b49 <exec_byte_code+7213>, 0x555555857baf <exec_byte_code+7315>, 0x555555857c95 <exec_byte_code+7545>, 0x555555857cdd <exec_byte_code+7617>, 0x555555857d45 <exec_byte_code+7721>, 0x555555857dca <exec_byte_code+7854>, 0x555555857e12 <exec_byte_code+7926>, 0x555555857e5a <exec_byte_code+7998>, 0x555555857ec2 <exec_byte_code+8102>, 0x555555857f2a <exec_byte_code+8206>, 0x555555857f92 <exec_byte_code+8310>, 0x555555858017 <exec_byte_code+8443>, 0x555555858066 <exec_byte_code+8522>, 0x5555558580b5 <exec_byte_code+8601>, 0x55555585817c <exec_byte_code+8800>, 0x555555858275 <exec_byte_code+9049>, 0x55555585836e <exec_byte_code+9298>, 0x5555558583db <exec_byte_code+9407>, 0x555555858448 <exec_byte_code+9516>, 0x5555558584b5 <exec_byte_code+9625>, 0x555555858522 <exec_byte_code+9734>, 0x55555585858f <exec_byte_code+9843>, 0x5555558585de <exec_byte_code+9922>, 0x5555558586d8 <exec_byte_code+10172>, 0x555555858727 <exec_byte_code+10251>, 0x555555858776 <exec_byte_code+10330>, 0x5555558587c5 <exec_byte_code+10409>, 0x5555558588cb <exec_byte_code+10671>, 0x55555585723b <exec_byte_code+4895>, 0x555555858926 <exec_byte_code+10762>, 0x55555585896e <exec_byte_code+10834>, 0x555555858a30 <exec_byte_code+11028>, 0x555555858a99 <exec_byte_code+11133>, 0x555555858af4 <exec_byte_code+11224>, 0x555555858b3c <exec_byte_code+11296>, 0x555555858b7f <exec_byte_code+11363>, 0x555555858bc2 <exec_byte_code+11430>, 0x555555858c0d <exec_byte_code+11505>, 0x555555859a8f <exec_byte_code+15219>, 0x555555858c65 <exec_byte_code+11593>, 0x555555858ca8 <exec_byte_code+11660>, 0x555555858ceb <exec_byte_code+11727>, 0x555555858d2e <exec_byte_code+11794>, 0x555555858d71 <exec_byte_code+11861>, 0x555555858db4 <exec_byte_code+11928>, 0x55555585723b <exec_byte_code+4895>, 0x555555859a8f <exec_byte_code+15219>, 0x555555858dfc <exec_byte_code+12000>, 0x555555858e4e <exec_byte_code+12082>, 0x555555858e96 <exec_byte_code+12154>, 0x555555858ede <exec_byte_code+12226>, 0x555555858f46 <exec_byte_code+12330>, 0x555555858fae <exec_byte_code+12434>, 0x555555858ff6 <exec_byte_code+12506>, 0x5555558590b3 <exec_byte_code+12695>, 0x55555585911b <exec_byte_code+12799>, 0x555555859183 <exec_byte_code+12903>, 0x5555558591eb <exec_byte_code+13007>, 0x55555585922e <exec_byte_code+13074>, 0x555555859a8f <exec_byte_code+15219>, 0x555555857181 <exec_byte_code+4709>, 0x555555856d2b <exec_byte_code+3599>, 0x5555558565e4 <exec_byte_code+1736>, 0x555555856ddc <exec_byte_code+3776>, 0x555555856e60 <exec_byte_code+3908>, 0x555555856ee1 <exec_byte_code+4037>, 0x555555857135 <exec_byte_code+4633>, 0x55555585714a <exec_byte_code+4654>, 0x555555856a79 <exec_byte_code+2909>, 0x555555857204 <exec_byte_code+4840>, 0x555555857272 <exec_byte_code+4950>, 0x555555857303 <exec_byte_code+5095>, 0x55555585734c <exec_byte_code+5168>, 0x55555585752d <exec_byte_code+5649>, 0x5555558575aa <exec_byte_code+5774>, 0x55555585762f <exec_byte_code+5907>, 0x555555857695 <exec_byte_code+6009>, 0x555555856cdd <exec_byte_code+3521>, 0x555555859276 <exec_byte_code+13146>, 0x5555558592fb <exec_byte_code+13279>, 0x555555859343 <exec_byte_code+13351>, 0x55555585938b <exec_byte_code+13423>, 0x5555558593d3 <exec_byte_code+13495>, 0x55555585941b <exec_byte_code+13567>, 0x555555859483 <exec_byte_code+13671>, 0x5555558594eb <exec_byte_code+13775>, 0x555555859553 <exec_byte_code+13879>, 0x5555558595bb <exec_byte_code+13983>, 0x555555859704 <exec_byte_code+14312>, 0x55555585976c <exec_byte_code+14416>, 0x5555558597d4 <exec_byte_code+14520>, 0x55555585981c <exec_byte_code+14592>, 0x555555859884 <exec_byte_code+14696>, 0x5555558598ec <exec_byte_code+14800>, 0x555555859934 <exec_byte_code+14872>, 0x55555585997c <exec_byte_code+14944>, 0x555555858814 <exec_byte_code+10488>, 0x555555858863 <exec_byte_code+10567>, 0x5555558599cb <exec_byte_code+15023>, 0x555555859a2d <exec_byte_code+15121>, 0x555555859a8f <exec_byte_code+15219>, 0x555555856f62 <exec_byte_code+4166>, 0x555555856f7f <exec_byte_code+4195>, 0x555555856fee <exec_byte_code+4306>, 0x55555585705d <exec_byte_code+4417>, 0x5555558570c9 <exec_byte_code+4525>, 0x555555857c1d <exec_byte_code+7425>, 0x555555858104 <exec_byte_code+8680>, 0x5555558589b8 <exec_byte_code+10908>, 0x555555859c26 <exec_byte_code+15626>, 0x555555859c9b <exec_byte_code+15743>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859d31 <exec_byte_code+15893>, 0x555555859db8 <exec_byte_code+16028>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859a8f <exec_byte_code+15219>, 0x555555859f06 <exec_byte_code+16362> <repeats 64 times>} const_length = 24 bytestr_length = 138 vectorp = 0x7ffff2610d68 quitcounter = 1 '\001' stack_items = 14 sa_avail = 16134 sa_count = 5 alloc = 0x7fffffffd690 stack_base = 0x7fffffffd690 top = 0x7fffffffd6c8 stack_lim = 0x7fffffffd700 bytestr_data = 0x7fffffffd700 "\304\020\211?\205\023" pc = 0x7fffffffd762 "\006\006\071\203\211" count = 5 result = XIL(0) #18 0x00005555557fdd22 in fetch_and_exec_byte_code (fun=XIL(0x7ffff2610d35), syms_left=make_fixnum(1025), nargs=1, args=0x7fffffffdc38) at ../../master/src/eval.c:3036 #19 0x00005555557fe1a8 in funcall_lambda (fun=XIL(0x7ffff2610d35), nargs=1, arg_vector=0x7fffffffdc38) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffdbb0) syms_left = make_fixnum(1025) next = XIL(0x555555e63080) lexenv = XIL(0x1800000000) count = 5 i = 93824994985650 optional = false rest = false #20 0x00005555557fd57b in Ffuncall (nargs=2, args=0x7fffffffdc30) at ../../master/src/eval.c:2916 fun = XIL(0x7ffff2610d35) original_fun = XIL(0x4470) funcar = XIL(0) numargs = 1 val = XIL(0x7fffffffdc58) count = 4 #21 0x00005555557fcd45 in call1 (fn=XIL(0x4470), arg1=XIL(0x17b5b60)) at ../../master/src/eval.c:2774 #22 0x00005555557216bb in command_loop_1 () at ../../master/src/keyboard.c:1466 scount = 3 cmd = XIL(0x17b5b60) keybuf = {make_fixnum(113), XIL(0x7ffff2c1d0cd), XIL(0), XIL(0), XIL(0x7fffffffdd20), XIL(0x5555557fcdcf), XIL(0), XIL(0x7ffff25734c4), XIL(0x5555588c73b3), XIL(0), XIL(0x555555e63080), XIL(0), XIL(0x7fffffffdd00), XIL(0x55555571d4cf), XIL(0), XIL(0), XIL(0x555555e63080), XIL(0), XIL(0x7fffffffdd30), XIL(0x5555557f4179), XIL(0), XIL(0x555555e63080), XIL(0), XIL(0), XIL(0x7fffffffdd50), XIL(0x5555557f41cd), make_fixnum(2), make_fixnum(0), XIL(0x7fffffffdd90), XIL(0x5555557f9833)} i = 1 prev_modiff = 60 prev_buffer = 0x5555573fd880 already_adjusted = false #23 0x00005555557f92f3 in internal_condition_case (bfun=0x555555720e65 <command_loop_1>, handlers=XIL(0x90), hfun=0x555555720488 <cmd_error>) at ../../master/src/eval.c:1439 val = XIL(0x5555560c2d73) c = 0x555555f5e8f0 #24 0x0000555555720a55 in command_loop_2 (ignore=XIL(0)) at ../../master/src/keyboard.c:1094 val = make_fixnum(0) #25 0x00005555557f8703 in internal_catch (tag=XIL(0xd9e0), func=0x555555720a28 <command_loop_2>, arg=XIL(0)) at ../../master/src/eval.c:1189 val = XIL(0xd9e0) c = 0x555555f47770 #26 0x00005555557209f4 in command_loop () at ../../master/src/keyboard.c:1073 #27 0x000055555571ff71 in recursive_edit_1 () at ../../master/src/keyboard.c:720 count = 1 val = XIL(0x7fffffffdf00) #28 0x0000555555720168 in Frecursive_edit () at ../../master/src/keyboard.c:789 count = 0 buffer = XIL(0) #29 0x000055555571c04d in main (argc=2, argv=0x7fffffffe168) at ../../master/src/emacs.c:2050 stack_bottom_variable = 0x7ffff617e053 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 1 temacs = 0x0 attempt_load_pdump = true rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = 0x0 sockfd = -1 module_assertions = false Lisp Backtrace: "kill-buffer" (0xffffcc98) "gnus-server-exit" (0xffffd340) "funcall-interactively" (0xffffd338) "call-interactively" (0xffffd6d0) "command-execute" (0xffffdc38) -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-05 18:15 ` Michael Welsh Duggan @ 2021-04-05 18:45 ` martin rudalics 2021-04-05 19:57 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-05 18:45 UTC (permalink / raw) To: Michael Welsh Duggan Cc: schwab@linux-m68k.org, 47244@debbugs.gnu.org, Michael Welsh Duggan > buffer_window_count of the *Server* buffer was 1. There were three > frames that we looped over in the FOR_EACH_FRAME() loop. Of these, only > the first is interesting. In this case window_list_1() in window_loop() > returned three windows. For each window, in the > REPLACE_BUFFER_IN_WINDOWS_SAFELY case branch, EQ (w->contents, obj) > returned false. As a result, best_window is Qnil at the end, and > replace-buffer_in_windows_safely_count never gets incremented. For the > other two frames the return value of window_list_1() was Qnil. Astonishing. What are the names of these three buffers via p XBUFFER (w->contents)->name_ Do they tell you anything about the Gnus configuration you wanted to quit? I wouldn't be surprised if one of these were a dead buffer. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-05 18:45 ` martin rudalics @ 2021-04-05 19:57 ` Michael Welsh Duggan 2021-04-05 20:39 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-05 19:57 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > buffer_window_count of the *Server* buffer was 1. There were three > > frames that we looped over in the FOR_EACH_FRAME() loop. Of these, only > > the first is interesting. In this case window_list_1() in window_loop() > > returned three windows. For each window, in the > > REPLACE_BUFFER_IN_WINDOWS_SAFELY case branch, EQ (w->contents, obj) > > returned false. As a result, best_window is Qnil at the end, and > > replace-buffer_in_windows_safely_count never gets incremented. For the > > other two frames the return value of window_list_1() was Qnil. > > Astonishing. What are the names of these three buffers via > > p XBUFFER (w->contents)->name_ > > Do they tell you anything about the Gnus configuration you wanted to > quit? I wouldn't be surprised if one of these were a dead buffer. Surprisingly, no. Three frames were checked. The only buffers in windows involved in the entire process were: "build.ninja" - I had that file in another frame " *Minibuf-0*" - Looks like this was in the same frame as build.ninja? "*Server*" - This was the window whose buffer is being deleted "*scratch*" - The only window in the third frame I trace through everything in detail here. Maybe too much detail. Maybe not enough. Hopefully you can follow this session by following the line numbers (mostly in window.c) and see what is going on. The gdb session, of course, still exists, and I now know I can recursively "call replace-buffer_in_windows_safely(XIL(0x5555573fd885))" to trace through it again, if you need me to. (gdb) s 3443 if (buffer_window_count (XBUFFER (buffer))) (gdb) n 3450 FOR_EACH_FRAME (tail, frame) (gdb) n 3451 window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); (gdb) s window_loop (type=REPLACE_BUFFER_IN_WINDOWS_SAFELY, obj=XIL(0x5555573fd885), mini=true, frames=XIL(0x55555820ef55)) at ../../master/src/window.c:2967 2967 bool frame_best_window_flag = false; (gdb) n 2973 if (FRAMEP (frames)) (gdb) 2974 f = XFRAME (frames); (gdb) 2980 if (f) (gdb) 2981 frame_arg = Qlambda; (gdb) 2994 if (WINDOWP (obj)) (gdb) n 2996 else if (f) (gdb) n 2997 window = FRAME_SELECTED_WINDOW (f); (gdb) n 3001 windows = window_list_1 (window, mini ? Qt : Qnil, frame_arg); (gdb) n 3002 best_window = Qnil; (gdb) p windows $52 = XIL(0x555558be6443) (gdb) ptype type = union Lisp_X { <incomplete type> } * (gdb) n 3004 for (; CONSP (windows); windows = XCDR (windows)) (gdb) n 3008 window = XCAR (windows); (gdb) n 3009 w = XWINDOW (window); (gdb) n 3014 if (!MINI_WINDOW_P (w) (gdb) p w->contents $53 = XIL(0x5555578be555) (gdb) xbuffer $54 = (struct buffer *) 0x5555578be550 0x555557241db0 "build.ninja" (gdb) n 3046 if (EQ (w->contents, obj)) (gdb) p obj $55 = XIL(0x5555573fd885) (gdb) xbuffer $56 = (struct buffer *) 0x5555573fd880 0x5555571c18a0 "*Server*" (gdb) n 3063 break; (gdb) n 3004 for (; CONSP (windows); windows = XCDR (windows)) (gdb) n 3008 window = XCAR (windows); (gdb) n 3009 w = XWINDOW (window); (gdb) n 3014 if (!MINI_WINDOW_P (w) (gdb) p w->contents $57 = XIL(0x7ffff2a3cb15) (gdb) xbuffer $58 = (struct buffer *) 0x7ffff2a3cb10 0x7ffff2d244ea " *Minibuf-0*" (gdb) n 3017 || type == REPLACE_BUFFER_IN_WINDOWS_SAFELY (gdb) 3046 if (EQ (w->contents, obj)) (gdb) 3063 break; (gdb) 3004 for (; CONSP (windows); windows = XCDR (windows)) (gdb) 3097 return best_window; (gdb) 3098 } (gdb) replace_buffer_in_windows_safely (buffer=XIL(0x5555573fd885)) at ../../master/src/window.c:3450 3450 FOR_EACH_FRAME (tail, frame) (gdb) 3451 window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); (gdb) s window_loop (type=REPLACE_BUFFER_IN_WINDOWS_SAFELY, obj=XIL(0x5555573fd885), mini=true, frames=XIL(0x555556fa294d)) at ../../master/src/window.c:2967 2967 bool frame_best_window_flag = false; (gdb) n 2973 if (FRAMEP (frames)) (gdb) 2974 f = XFRAME (frames); (gdb) 2980 if (f) (gdb) 2981 frame_arg = Qlambda; (gdb) 2994 if (WINDOWP (obj)) (gdb) 2996 else if (f) (gdb) 2997 window = FRAME_SELECTED_WINDOW (f); (gdb) 3001 windows = window_list_1 (window, mini ? Qt : Qnil, frame_arg); (gdb) p window $59 = XIL(0x55555734b355) (gdb) xwindow $60 = (struct window *) 0x55555734b350 84x59+0+0 (gdb) p $60->contents $61 = XIL(0x5555573fd885) (gdb) xbuffer $62 = (struct buffer *) 0x5555573fd880 0x5555571c18a0 "*Server*" (gdb) s builtin_lisp_symbol (index=1) at ../../master/src/lisp.h:1007 1007 return make_lisp_symbol (&lispsym[index]); (gdb) n 1008 } (gdb) s window_list_1 (window=XIL(0x55555734b355), minibuf=XIL(0x30), all_frames=XIL(0xc0)) at ../../master/src/window.c:2863 2863 decode_next_window_args (&window, &minibuf, &all_frames); (gdb) s decode_next_window_args (window=0x7fffffffc858, minibuf=0x7fffffffc850, all_frames=0x7fffffffc848) at ../../master/src/window.c:2672 2672 struct window *w = decode_live_window (*window); (gdb) s decode_live_window (window=XIL(0x55555734b355)) at ../../master/src/window.c:246 246 if (NILP (window)) (gdb) n 249 CHECK_LIVE_WINDOW (window); (gdb) n 250 return XWINDOW (window); (gdb) n 251 } (gdb) n decode_next_window_args (window=0x7fffffffc858, minibuf=0x7fffffffc850, all_frames=0x7fffffffc848) at ../../master/src/window.c:2673 2673 Lisp_Object miniwin = XFRAME (w->frame)->minibuffer_window; (gdb) p w->contents $63 = XIL(0x5555573fd885) (gdb) xbuffer $64 = (struct buffer *) 0x5555573fd880 0x5555571c18a0 "*Server*" (gdb) n 2675 XSETWINDOW (*window, w); (gdb) n 2678 if (NILP (*minibuf)) (gdb) n 2682 else if (!EQ (*minibuf, Qt)) (gdb) n 2690 if (NILP (*all_frames)) (gdb) n 2695 else if (EQ (*all_frames, Qvisible)) (gdb) n 2697 else if (EQ (*all_frames, make_fixnum (0))) (gdb) n 2699 else if (FRAMEP (*all_frames)) (gdb) n 2701 else if (!EQ (*all_frames, Qt)) (gdb) n 2702 *all_frames = Qnil; (gdb) n 2703 } (gdb) n window_list_1 (window=XIL(0x55555734b355), minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2864 2864 list = Qnil; (gdb) n 2866 for (tail = window_list (); CONSP (tail); tail = XCDR (tail)) (gdb) s window_list () at ../../master/src/window.c:2563 2563 if (!CONSP (Vwindow_list)) (gdb) n 2581 return Vwindow_list; (gdb) p Vwindow_list $65 = XIL(0x555558bc6353) (gdb) ptype type = union Lisp_X { <incomplete type> } * (gdb) xcons $66 = (struct Lisp_Cons *) 0x555558bc6350 { u = { s = { car = XIL(0x5555571ebfc5), u = { cdr = XIL(0x555558bc6363), chain = 0x555558bc6363 } }, gcaligned = 0xc5 } } (gdb) n 2582 } (gdb) n window_list_1 (window=XIL(0x55555734b355), minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2867 2867 if (candidate_window_p (XCAR (tail), window, minibuf, all_frames)) (gdb) s candidate_window_p (window=XIL(0x5555571ebfc5), owindow=XIL(0x55555734b355), minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2605 2605 struct window *w = XWINDOW (window); (gdb) n 2606 struct frame *f = XFRAME (w->frame); (gdb) p w->contents $67 = XIL(0x5555578be555) (gdb) xbuffer $68 = (struct buffer *) 0x5555578be550 0x555557241db0 "build.ninja" (gdb) n 2607 bool candidate_p = true; (gdb) 2609 if (!BUFFERP (w->contents)) (gdb) 2611 else if (MINI_WINDOW_P (w) (gdb) 2619 else if (EQ (all_frames, Qt)) (gdb) 2621 else if (NILP (all_frames)) (gdb) 2623 eassert (WINDOWP (owindow)); (gdb) n 2624 candidate_p = EQ (w->frame, XWINDOW (owindow)->frame); (gdb) n 2661 return candidate_p; (gdb) p candidate_p $69 = false (gdb) n 2662 } (gdb) n window_list_1 (window=XIL(0x55555734b355), minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2866 2866 for (tail = window_list (); CONSP (tail); tail = XCDR (tail)) (gdb) n 2867 if (candidate_window_p (XCAR (tail), window, minibuf, all_frames)) (gdb) s candidate_window_p (window=XIL(0x55555820f3cd), owindow=XIL(0x55555734b355), minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2605 2605 struct window *w = XWINDOW (window); (gdb) n 2606 struct frame *f = XFRAME (w->frame); (gdb) p w->contents $70 = XIL(0x7ffff2a3cb15) (gdb) xbuffer $71 = (struct buffer *) 0x7ffff2a3cb10 0x7ffff2d244ea " *Minibuf-0*" (gdb) n 2607 bool candidate_p = true; (gdb) n 2609 if (!BUFFERP (w->contents)) (gdb) n 2611 else if (MINI_WINDOW_P (w) (gdb) n 2612 && (EQ (minibuf, Qlambda) (gdb) n 2613 || (WINDOWP (minibuf) && !EQ (minibuf, window)))) (gdb) n 2619 else if (EQ (all_frames, Qt)) (gdb) n 2621 else if (NILP (all_frames)) (gdb) n 2623 eassert (WINDOWP (owindow)); (gdb) n 2624 candidate_p = EQ (w->frame, XWINDOW (owindow)->frame); (gdb) n 2661 return candidate_p; (gdb) p candidate_p $72 = false (gdb) n 2662 } (gdb) window_list_1 (window=XIL(0x55555734b355), minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2866 2866 for (tail = window_list (); CONSP (tail); tail = XCDR (tail)) (gdb) 2871 list = Fnreverse (list); (gdb) n 2872 rest = Fmemq (window, list); (gdb) p list $73 = XIL(0) (gdb) n 2873 if (!NILP (rest) && !EQ (rest, list)) (gdb) p rest $74 = XIL(0) (gdb) n 2880 return list; (gdb) n 2881 } (gdb) n window_loop (type=REPLACE_BUFFER_IN_WINDOWS_SAFELY, obj=XIL(0x5555573fd885), mini=true, frames=XIL(0x555556fa294d)) at ../../master/src/window.c:3002 3002 best_window = Qnil; (gdb) p windows $75 = XIL(0) (gdb) p window $76 = XIL(0x55555734b355) (gdb) xwindow $77 = (struct window *) 0x55555734b350 84x59+0+0 (gdb) p $77->contents $78 = XIL(0x5555573fd885) (gdb) xbuffer $79 = (struct buffer *) 0x5555573fd880 0x5555571c18a0 "*Server*" (gdb) n 3004 for (; CONSP (windows); windows = XCDR (windows)) (gdb) 3097 return best_window; (gdb) 3098 } (gdb) replace_buffer_in_windows_safely (buffer=XIL(0x5555573fd885)) at ../../master/src/window.c:3450 3450 FOR_EACH_FRAME (tail, frame) (gdb) 3451 window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); (gdb) s window_loop (type=REPLACE_BUFFER_IN_WINDOWS_SAFELY, obj=XIL(0x5555573fd885), mini=true, frames=XIL(0x555555eff9dd)) at ../../master/src/window.c:2967 2967 bool frame_best_window_flag = false; (gdb) n 2973 if (FRAMEP (frames)) (gdb) 2974 f = XFRAME (frames); (gdb) 2980 if (f) (gdb) 2981 frame_arg = Qlambda; (gdb) 2994 if (WINDOWP (obj)) (gdb) 2996 else if (f) (gdb) 2997 window = FRAME_SELECTED_WINDOW (f); (gdb) 3001 windows = window_list_1 (window, mini ? Qt : Qnil, frame_arg); (gdb) p window $80 = XIL(0x555555effc45) (gdb) xwindow $81 = (struct window *) 0x555555effc40 80x23+0+1 (gdb) p $81->contents $82 = XIL(0x7ffff256f6fd) (gdb) xbuffer $83 = (struct buffer *) 0x7ffff256f6f8 0x7ffff2d2003a "*scratch*" (gdb) s builtin_lisp_symbol (index=1) at ../../master/src/lisp.h:1007 1007 return make_lisp_symbol (&lispsym[index]); (gdb) n 1008 } (gdb) s window_list_1 (window=XIL(0x555555effc45), minibuf=XIL(0x30), all_frames=XIL(0xc0)) at ../../master/src/window.c:2863 2863 decode_next_window_args (&window, &minibuf, &all_frames); (gdb) n 2864 list = Qnil; (gdb) 2866 for (tail = window_list (); CONSP (tail); tail = XCDR (tail)) (gdb) 2867 if (candidate_window_p (XCAR (tail), window, minibuf, all_frames)) (gdb) s candidate_window_p (window=XIL(0x5555571ebfc5), owindow=XIL(0x555555effc45), minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2605 2605 struct window *w = XWINDOW (window); (gdb) n 2606 struct frame *f = XFRAME (w->frame); (gdb) p w->contents $87 = XIL(0x5555578be555) (gdb) xbuffer $88 = (struct buffer *) 0x5555578be550 0x555557241db0 "build.ninja" (gdb) n 2607 bool candidate_p = true; (gdb) n 2609 if (!BUFFERP (w->contents)) (gdb) n 2611 else if (MINI_WINDOW_P (w) (gdb) n 2619 else if (EQ (all_frames, Qt)) (gdb) n 2621 else if (NILP (all_frames)) (gdb) n 2623 eassert (WINDOWP (owindow)); (gdb) n 2624 candidate_p = EQ (w->frame, XWINDOW (owindow)->frame); (gdb) n 2661 return candidate_p; (gdb) p candidate_p $89 = false (gdb) n 2662 } (gdb) n window_list_1 (window=XIL(0x555555effc45), minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2866 2866 for (tail = window_list (); CONSP (tail); tail = XCDR (tail)) (gdb) n 2867 if (candidate_window_p (XCAR (tail), window, minibuf, all_frames)) (gdb) s candidate_window_p (window=XIL(0x55555820f3cd), owindow=XIL(0x555555effc45), minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2605 2605 struct window *w = XWINDOW (window); (gdb) n 2606 struct frame *f = XFRAME (w->frame); (gdb) p w->contents $90 = XIL(0x7ffff2a3cb15) (gdb) xbuffer $91 = (struct buffer *) 0x7ffff2a3cb10 0x7ffff2d244ea " *Minibuf-0*" (gdb) n 2607 bool candidate_p = true; (gdb) n 2609 if (!BUFFERP (w->contents)) (gdb) n 2611 else if (MINI_WINDOW_P (w) (gdb) n 2612 && (EQ (minibuf, Qlambda) (gdb) n 2613 || (WINDOWP (minibuf) && !EQ (minibuf, window)))) (gdb) n 2619 else if (EQ (all_frames, Qt)) (gdb) n 2621 else if (NILP (all_frames)) (gdb) n 2623 eassert (WINDOWP (owindow)); (gdb) n 2624 candidate_p = EQ (w->frame, XWINDOW (owindow)->frame); (gdb) n 2661 return candidate_p; (gdb) p candidate_p $92 = false (gdb) n 2662 } (gdb) n window_list_1 (window=XIL(0x555555effc45), minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2866 2866 for (tail = window_list (); CONSP (tail); tail = XCDR (tail)) (gdb) n 2871 list = Fnreverse (list); (gdb) n 2872 rest = Fmemq (window, list); (gdb) n 2873 if (!NILP (rest) && !EQ (rest, list)) (gdb) n 2880 return list; (gdb) p list $93 = XIL(0) (gdb) n 2881 } (gdb) n window_loop (type=REPLACE_BUFFER_IN_WINDOWS_SAFELY, obj=XIL(0x5555573fd885), mini=true, frames=XIL(0x555555eff9dd)) at ../../master/src/window.c:3002 3002 best_window = Qnil; (gdb) n 3004 for (; CONSP (windows); windows = XCDR (windows)) (gdb) n 3097 return best_window; (gdb) n 3098 } (gdb) n replace_buffer_in_windows_safely (buffer=XIL(0x5555573fd885)) at ../../master/src/window.c:3450 3450 FOR_EACH_FRAME (tail, frame) (gdb) n 3454 eassert (count == replace_buffer_in_windows_safely_count); (gdb) p count $94 = 1 (gdb) p replace_buffer_in_windows_safely_count $95 = 0 -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-05 19:57 ` Michael Welsh Duggan @ 2021-04-05 20:39 ` martin rudalics 2021-04-05 20:56 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-05 20:39 UTC (permalink / raw) To: Michael Welsh Duggan Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org > Surprisingly, no. Three frames were checked. The only buffers in > windows involved in the entire process were: > > "build.ninja" - I had that file in another frame > " *Minibuf-0*" - Looks like this was in the same frame as build.ninja? > "*Server*" - This was the window whose buffer is being deleted But *Server* _is_ the buffer that shall be killed IIUC - the obj passed to window_loop. I nowhere see that you tried p XBUFFER (w->contents)->name_ below. Basically when you encounter the if (EQ (w->contents, obj)) eventually w->contents should be that buffer. And apparently w->contents never is that buffer. Can you check again? martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-05 20:39 ` martin rudalics @ 2021-04-05 20:56 ` Michael Welsh Duggan 2021-04-06 8:10 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-05 20:56 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: >> Surprisingly, no. Three frames were checked. The only buffers in >> windows involved in the entire process were: >> >> "build.ninja" - I had that file in another frame >> " *Minibuf-0*" - Looks like this was in the same frame as build.ninja? >> "*Server*" - This was the window whose buffer is being deleted > > But *Server* _is_ the buffer that shall be killed IIUC - the obj passed > to window_loop. I nowhere see that you tried > > p XBUFFER (w->contents)->name_ > > below. Basically when you encounter the > > if (EQ (w->contents, obj)) > > eventually w->contents should be that buffer. And apparently > w->contents never is that buffer. Can you check again? Actually, what I did is use xbuffer, which as part of it outputs the name_. For example: (gdb) p w->contents $53 = XIL(0x5555578be555) (gdb) xbuffer $54 = (struct buffer *) 0x5555578be550 0x555557241db0 "build.ninja" In this case the name_ field is "build.ninja". The definition of xbuffer is: define xbuffer xgetptr $ print (struct buffer *) $ptr xgetptr $->name_ output $ptr ? (char *) ((struct Lisp_String *) $ptr)->u.s.data : "DEAD" echo \n end document xbuffer Set $ as a buffer pointer and the name of the buffer. This command assumes $ is an Emacs Lisp buffer value. end When window_list_1() gets called with the window that has "*Server*" as the buffer, window_list() (as called on line 2866) does not return a list that contains that window. I do not know how Vwindow_list (which is what is returned by window_list() gets updated. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-05 20:56 ` Michael Welsh Duggan @ 2021-04-06 8:10 ` martin rudalics 2021-04-06 14:40 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-06 8:10 UTC (permalink / raw) To: Michael Welsh Duggan Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org > Actually, what I did is use xbuffer, which as part of it outputs the > name_. For example: > > (gdb) p w->contents > $53 = XIL(0x5555578be555) > (gdb) xbuffer > $54 = (struct buffer *) 0x5555578be550 > 0x555557241db0 "build.ninja" > > In this case the name_ field is "build.ninja". The definition of > xbuffer is: OK. But please let me reassess what you said earlier: > There were three > frames that we looped over in the FOR_EACH_FRAME() loop. Of these, only > the first is interesting. In this case window_list_1() in window_loop() > returned three windows. For each window, in the > REPLACE_BUFFER_IN_WINDOWS_SAFELY case branch, EQ (w->contents, obj) > returned false. So if one of these three windows on the first frame shows (showed) "build.ninja" then what do (did) the other two windows show? > As a result, best_window is Qnil at the end, and > replace-buffer_in_windows_safely_count never gets incremented. For the > other two frames the return value of window_list_1() was Qnil. The latter could be another problem but should not concern us for the moment - do these frames get killed in the course? > When window_list_1() gets called with the window that has "*Server*" as > the buffer, window_list() (as called on line 2866) does not return a > list that contains that window. I do not know how Vwindow_list (which > is what is returned by window_list() gets updated. Vwindow_list is a cache of the list of all windows and is (re-)built by window_list when it is nil. It is set to nil (that is, the cache gets invalidated) whenever a window is deleted or created. What is the value of Vwindow_list when window_list_1() gets called with the window that has "*Server*" as the buffer? martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-06 8:10 ` martin rudalics @ 2021-04-06 14:40 ` Michael Welsh Duggan 2021-04-06 16:12 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-06 14:40 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: >> Actually, what I did is use xbuffer, which as part of it outputs the >> name_. For example: >> >> (gdb) p w->contents >> $53 = XIL(0x5555578be555) >> (gdb) xbuffer >> $54 = (struct buffer *) 0x5555578be550 >> 0x555557241db0 "build.ninja" >> >> In this case the name_ field is "build.ninja". The definition of >> xbuffer is: > > OK. But please let me reassess what you said earlier: > >> There were three >> frames that we looped over in the FOR_EACH_FRAME() loop. Of these, only >> the first is interesting. In this case window_list_1() in window_loop() >> returned three windows. For each window, in the >> REPLACE_BUFFER_IN_WINDOWS_SAFELY case branch, EQ (w->contents, obj) >> returned false. > > So if one of these three windows on the first frame shows (showed) > "build.ninja" then what do (did) the other two windows show? I was somewhat incorrect. The first frame has two windows: build.ninja and a minibuffer. See below for more. >> As a result, best_window is Qnil at the end, and >> replace-buffer_in_windows_safely_count never gets incremented. For the >> other two frames the return value of window_list_1() was Qnil. > > The latter could be another problem but should not concern us for the > moment - do these frames get killed in the course? The two frames that returned no windows were the invisible daemon frame "F1" and the frame containing the window containing the "*Server*" buffer. >> When window_list_1() gets called with the window that has "*Server*" as >> the buffer, window_list() (as called on line 2866) does not return a >> list that contains that window. I do not know how Vwindow_list (which >> is what is returned by window_list() gets updated. > > Vwindow_list is a cache of the list of all windows and is (re-)built by > window_list when it is nil. It is set to nil (that is, the cache gets > invalidated) whenever a window is deleted or created. What is the value > of Vwindow_list when window_list_1() gets called with the window that > has "*Server*" as the buffer? Here is the state as I've been able to determine from the debugger: Vframe_list contains three entries: "build.ninja", "*Server*", and "F1". This matches reality. "F1" is the invisible frame created by --daemon. Frame "build.ninja" has a selected_window whose contents are the buffer "build.ninja". Frame "*Server*" has a selected_window whose contents are the buffer "*Server*". Frame "F1" has a selected_window whose contents are the buffer "*scratch*". Vwindow_list contains two entries: A window whose contents are "build.ninja", and a window whose contents are " *Minibuf-0*". Importantly, Vwindow_list does not contain the window whose contents are "*Server*". Since the window_list_1() call uses the value of Vwindow_list to create its result, the loop in window_loop() will never compare EQ in the REPLACE_BUFFER_IN_WINDOWS_SAFELY case clause. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-06 14:40 ` Michael Welsh Duggan @ 2021-04-06 16:12 ` martin rudalics 2021-04-06 16:48 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-06 16:12 UTC (permalink / raw) To: Michael Welsh Duggan Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org > Here is the state as I've been able to determine from the debugger: > > Vframe_list contains three entries: "build.ninja", "*Server*", and > "F1". This matches reality. "F1" is the invisible frame created by > --daemon. > > Frame "build.ninja" has a selected_window whose contents are the buffer > "build.ninja". > > Frame "*Server*" has a selected_window whose contents are the buffer > "*Server*". > > Frame "F1" has a selected_window whose contents are the buffer > "*scratch*". > > Vwindow_list contains two entries: A window whose contents are > "build.ninja", and a window whose contents are " *Minibuf-0*". > > Importantly, Vwindow_list does not contain the window whose contents are > "*Server*". Since the window_list_1() call uses the value of > Vwindow_list to create its result, the loop in window_loop() will never > compare EQ in the REPLACE_BUFFER_IN_WINDOWS_SAFELY case clause. Impressive, thanks. This means that if earlier everything worked as intended someone did (1) set Vwindow_list to nil (because otherwise the *Server* window would still figure in it), and (2) window_list () recreated Vwindow_list but did _not_ include the *Server* window. The mysterious aspect is (2): Why did window_list skip the *Server* window? What is the value of FRAME_ROOT_WINDOW (f) where f is the *Server* frame? What is the name of that window's buffer? IIUC the *Server* frame does not have a minibuffer window - correct? martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-06 16:12 ` martin rudalics @ 2021-04-06 16:48 ` Michael Welsh Duggan 2021-04-06 17:00 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-06 16:48 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > Here is the state as I've been able to determine from the debugger: > > > > Vframe_list contains three entries: "build.ninja", "*Server*", and > > "F1". This matches reality. "F1" is the invisible frame created by > > --daemon. > > > > Frame "build.ninja" has a selected_window whose contents are the buffer > > "build.ninja". > > > > Frame "*Server*" has a selected_window whose contents are the buffer > > "*Server*". > > > > Frame "F1" has a selected_window whose contents are the buffer > > "*scratch*". > > > > Vwindow_list contains two entries: A window whose contents are > > "build.ninja", and a window whose contents are " *Minibuf-0*". > > > > Importantly, Vwindow_list does not contain the window whose contents are > > "*Server*". Since the window_list_1() call uses the value of > > Vwindow_list to create its result, the loop in window_loop() will never > > compare EQ in the REPLACE_BUFFER_IN_WINDOWS_SAFELY case clause. > > Impressive, thanks. This means that if earlier everything worked as > intended someone did > > (1) set Vwindow_list to nil (because otherwise the *Server* window would > still figure in it), and > > (2) window_list () recreated Vwindow_list but did _not_ include the > *Server* window. > > The mysterious aspect is (2): Why did window_list skip the *Server* > window? Good question. I plan to set Vwindow_list to nil and call it to see what happens. > What is the value of FRAME_ROOT_WINDOW (f) where f is the > *Server* frame? What is the name of that window's buffer? It's a window containing the buffer "*Server*". > IIUC the *Server* frame does not have a minibuffer window - correct? It didn't appear in Vwindow_list, but it does have a minibuffer. (gdb) p $116->minibuffer_window $139 = XIL(0x555556fc8185) (gdb) xwindow $140 = (struct window *) 0x555556fc8180 84x1+0+59 (gdb) p $140->contents $141 = XIL(0x7ffff2a3cb15) (gdb) xbuffer $142 = (struct buffer *) 0x7ffff2a3cb10 0x7ffff2d244ea " *Minibuf-0*" I will note that the window itself is different than the one on the Vwindow_list with the same contents. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-06 16:48 ` Michael Welsh Duggan @ 2021-04-06 17:00 ` martin rudalics 2021-04-06 17:24 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-06 17:00 UTC (permalink / raw) To: Michael Welsh Duggan Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org >> The mysterious aspect is (2): Why did window_list skip the *Server* >> window? > > Good question. I plan to set Vwindow_list to nil and call it to see > what happens. This should resolve the mystery. >> What is the value of FRAME_ROOT_WINDOW (f) where f is the >> *Server* frame? What is the name of that window's buffer? > > It's a window containing the buffer "*Server*". So a bad FRAME_ROOT_WINDOW can't be the cause for (2). >> IIUC the *Server* frame does not have a minibuffer window - correct? > > It didn't appear in Vwindow_list, but it does have a minibuffer. > > (gdb) p $116->minibuffer_window > $139 = XIL(0x555556fc8185) > (gdb) xwindow > $140 = (struct window *) 0x555556fc8180 > 84x1+0+59 > (gdb) p $140->contents > $141 = XIL(0x7ffff2a3cb15) > (gdb) xbuffer > $142 = (struct buffer *) 0x7ffff2a3cb10 > 0x7ffff2d244ea " *Minibuf-0*" > > I will note that the window itself is different than the one on the > Vwindow_list with the same contents. Are you sure it's on the same frame as the *Server* window (w->frame gives you that)? What is the value of w->next for the *Server* window? martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-06 17:00 ` martin rudalics @ 2021-04-06 17:24 ` Michael Welsh Duggan 2021-04-07 2:22 ` Michael Welsh Duggan 2021-04-07 9:00 ` martin rudalics 0 siblings, 2 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-06 17:24 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > >> The mysterious aspect is (2): Why did window_list skip the *Server* > >> window? > > > > Good question. I plan to set Vwindow_list to nil and call it to see > > what happens. > > This should resolve the mystery. I wish it did. After doing this, Vwindow_list has six entries, one for each selected_window on each frame, and one for each minibuffer window on each frame. This includes the "*Server*" buffer. > >> What is the value of FRAME_ROOT_WINDOW (f) where f is the > >> *Server* frame? What is the name of that window's buffer? > > > > It's a window containing the buffer "*Server*". > > So a bad FRAME_ROOT_WINDOW can't be the cause for (2). > > >> IIUC the *Server* frame does not have a minibuffer window - correct? > > > > It didn't appear in Vwindow_list, but it does have a minibuffer. > > > > (gdb) p $116->minibuffer_window > > $139 = XIL(0x555556fc8185) > > (gdb) xwindow > > $140 = (struct window *) 0x555556fc8180 > > 84x1+0+59 > > (gdb) p $140->contents > > $141 = XIL(0x7ffff2a3cb15) > > (gdb) xbuffer > > $142 = (struct buffer *) 0x7ffff2a3cb10 > > 0x7ffff2d244ea " *Minibuf-0*" > > > > I will note that the window itself is different than the one on the > > Vwindow_list with the same contents. > > Are you sure it's on the same frame as the *Server* window (w->frame > gives you that)? What is the value of w->next for the *Server* window? I am certain. w->next on that window is a minibuffer window. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-06 17:24 ` Michael Welsh Duggan @ 2021-04-07 2:22 ` Michael Welsh Duggan 2021-04-07 7:52 ` Andreas Schwab 2021-04-07 9:00 ` martin rudalics 2021-04-07 9:00 ` martin rudalics 1 sibling, 2 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-07 2:22 UTC (permalink / raw) To: Michael Welsh Duggan Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org Michael Welsh Duggan <mwd@cert.org> writes: > martin rudalics <rudalics@gmx.at> writes: > >> >> The mysterious aspect is (2): Why did window_list skip the *Server* >> >> window? >> > >> > Good question. I plan to set Vwindow_list to nil and call it to see >> > what happens. >> >> This should resolve the mystery. > > I wish it did. After doing this, Vwindow_list has six entries, one for > each selected_window on each frame, and one for each minibuffer window > on each frame. This includes the "*Server*" buffer. Just a shot in the dark here. The only way I can think of this occurring (Vwindow_list being too small), is that something modified Vwindow_list when we don't expect it to be modified. I looked through all the uses of Vwindow_list and window_list(), and they all look kosher. The only modification seems to be setting Vwindow_list to nil. But window_list() does call into lisp (nconc2, which calls Fnconc) when constructing Vwindow_list, and it uses Vwindow_list as a temporary in the process. Is it possible that during that call something happens asynchronously (via gc?) that calls something that sets Vwindow_list to nil again, while Vwindow_list is being constructed? I don't think so, off hand, but I'm grasping at straws. -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 2:22 ` Michael Welsh Duggan @ 2021-04-07 7:52 ` Andreas Schwab 2021-04-07 9:00 ` martin rudalics 1 sibling, 0 replies; 160+ messages in thread From: Andreas Schwab @ 2021-04-07 7:52 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: 47244@debbugs.gnu.org, Michael Welsh Duggan On Apr 06 2021, Michael Welsh Duggan wrote: > But window_list() does call into lisp (nconc2, which calls Fnconc) when > constructing Vwindow_list, and it uses Vwindow_list as a temporary in > the process. Is it possible that during that call something happens > asynchronously (via gc?) nconc doesn't allocate any lisp data, since it is destructive. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 2:22 ` Michael Welsh Duggan 2021-04-07 7:52 ` Andreas Schwab @ 2021-04-07 9:00 ` martin rudalics 2021-04-07 12:42 ` Michael Welsh Duggan 1 sibling, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-07 9:00 UTC (permalink / raw) To: Michael Welsh Duggan, Michael Welsh Duggan Cc: schwab@linux-m68k.org, 47244@debbugs.gnu.org [-- Attachment #1: Type: text/plain, Size: 1240 bytes --] > Just a shot in the dark here. The only way I can think of this > occurring (Vwindow_list being too small), is that something modified > Vwindow_list when we don't expect it to be modified. I looked through > all the uses of Vwindow_list and window_list(), and they all look > kosher. The only modification seems to be setting Vwindow_list to nil. > But window_list() does call into lisp (nconc2, which calls Fnconc) when > constructing Vwindow_list, and it uses Vwindow_list as a temporary in > the process. Is it possible that during that call something happens > asynchronously (via gc?) that calls something that sets Vwindow_list > to nil again, while Vwindow_list is being constructed? Improbable but I attached some code that could detect such an incidence. Put a breakpoint at the Vwindow_list = window_list_2; line. > I don't think > so, off hand, but I'm grasping at straws. I also added a variable called `window-list-lengths' which records the last 20 or so last changes in the number of windows seen by window_list. Maybe you can detect some strange 2 ~> 6 or 6 ~> 2 change while running Gnus. I'm still not sure whether your daemon setup could be involved somehow. martin [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: selected_window_contents.diff --] [-- Type: text/x-patch; name="selected_window_contents.diff", Size: 9280 bytes --] diff --git a/src/buffer.c b/src/buffer.c index 8e33162989..70b37e61a2 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1951,6 +1951,9 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", This gets rid of them for certain. */ reset_buffer_local_variables (b, 1); + if (!b->base_buffer) + eassert (b->window_count == 0); + bset_name (b, Qnil); block_input (); @@ -1991,6 +1994,8 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", run_buffer_list_update_hook (b); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qt; } \f @@ -2151,6 +2156,9 @@ set_buffer_internal_1 (register struct buffer *b) BUFFER_CHECK_INDIRECTION (b); + if (!BUFFER_LIVE_P (b)) + error ("Selecting deleted buffer"); + old_buf = current_buffer; current_buffer = b; last_known_column_point = -1; /* Invalidate indentation cache. */ diff --git a/src/window.c b/src/window.c index eb16e2a433..16c75a13d5 100644 --- a/src/window.c +++ b/src/window.c @@ -307,7 +307,11 @@ wset_buffer (struct window *w, Lisp_Object val) if (BUFFERP (val)) /* Make sure that we do not assign the buffer to an internal window. */ - eassert (MARKERP (w->start) && MARKERP (w->pointm)); + { + eassert (BUFFER_LIVE_P (XBUFFER (val))); + eassert (MARKERP (w->start) && MARKERP (w->pointm)); + } + w->contents = val; adjust_window_count (w, 1); } @@ -315,6 +319,7 @@ wset_buffer (struct window *w, Lisp_Object val) static void wset_old_buffer (struct window *w, Lisp_Object val) { + eassert (BUFFER_LIVE_P (XBUFFER (val))); w->old_buffer = val; } @@ -594,6 +599,8 @@ select_window_1 (Lisp_Object window, bool inhibit_point_swap) selected_window = window; + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Go to the point recorded in the window. This is important when the buffer is in more than one window. It also matters when @@ -2556,6 +2563,7 @@ window_list (void) if (!CONSP (Vwindow_list)) { Lisp_Object tail, frame; + Lisp_Object window_list_2 = Qnil; Vwindow_list = Qnil; FOR_EACH_FRAME (tail, frame) @@ -2569,6 +2577,42 @@ window_list (void) arglist = Fnreverse (arglist); Vwindow_list = nconc2 (Vwindow_list, arglist); } + + if (NILP (window_list_lengths)) + window_list_lengths + = Fcons (make_fixnum (list_length (Vwindow_list)), Qnil); + else + { + int old_length = XFIXNUM (Fcar (window_list_lengths)); + int new_length = list_length (Vwindow_list); + + if (old_length != new_length) + { + Lisp_Object twentieth; + + window_list_lengths + = Fcons (make_fixnum (new_length), window_list_lengths); + + /* Crop to 20 elements. */ + twentieth = Fnthcdr (make_fixnum (20), window_list_lengths); + + if (!NILP (twentieth)) + XSETCDR (twentieth, Qnil); + } + } + + FOR_EACH_FRAME (tail, frame) + { + Lisp_Object arglist = Qnil; + + foreach_window (XFRAME (frame), add_window_to_list, &arglist); + arglist = Fnreverse (arglist); + window_list_2 = nconc2 (window_list_2, arglist); + } + + if (NILP (Fequal (Vwindow_list, window_list_2))) + Vwindow_list = window_list_2; + } return Vwindow_list; @@ -2950,6 +2994,8 @@ DEFUN ("window-list-1", Fwindow_list_1, Swindow_list_1, 0, 3, 0, CHECK_ALL_WINDOWS /* Arg is ignored */ }; +static int replace_buffer_in_windows_safely_count; + static Lisp_Object window_loop (enum window_loop type, Lisp_Object obj, bool mini, Lisp_Object frames) @@ -3048,6 +3094,8 @@ window_loop (enum window_loop type, Lisp_Object obj, bool mini, if (EQ (window, selected_window) && XBUFFER (w->contents) == current_buffer) Fset_buffer (w->contents); + + replace_buffer_in_windows_safely_count += 1; } break; @@ -3411,6 +3459,8 @@ DEFUN ("delete-other-windows-internal", Fdelete_other_windows_internal, replace_buffer_in_windows (Lisp_Object buffer) { call1 (Qreplace_buffer_in_windows, buffer); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* If BUFFER is shown in a window, safely replace it with some other @@ -3419,7 +3469,28 @@ replace_buffer_in_windows (Lisp_Object buffer) void replace_buffer_in_windows_safely (Lisp_Object buffer) { - if (buffer_window_count (XBUFFER (buffer))) + if (!NILP (Fstring_equal (XBUFFER (buffer)->name_, + build_string ("*Server*")))) + { + int count = buffer_window_count (XBUFFER (buffer)); + + replace_buffer_in_windows_safely_count = 0; + + + if (buffer_window_count (XBUFFER (buffer))) + { + Lisp_Object tail, frame; + + /* A single call to window_loop won't do the job because it only + considers frames on the current keyboard. So loop manually over + frames, and handle each one. */ + FOR_EACH_FRAME (tail, frame) + window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); + } + + eassert (count == replace_buffer_in_windows_safely_count); + } + else if (buffer_window_count (XBUFFER (buffer))) { Lisp_Object tail, frame; @@ -3429,6 +3500,7 @@ replace_buffer_in_windows_safely (Lisp_Object buffer) FOR_EACH_FRAME (tail, frame) window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); } + } \f /* The following three routines are needed for running a window's @@ -3960,6 +4032,8 @@ run_window_change_functions (void) /* Record changes for all frames (if asked for), selected window and frame. */ unbind_to (count, Qnil); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Make WINDOW display BUFFER. RUN_HOOKS_P means it's allowed @@ -4054,6 +4128,9 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer, if (!samebuf && !MINI_WINDOW_P (w) && !WINDOW_PSEUDO_P (w)) FRAME_WINDOW_CHANGE (XFRAME (w->frame)) = true; + if (WINDOWP (selected_window)) + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + unbind_to (count, Qnil); } @@ -5174,6 +5251,8 @@ DEFUN ("delete-window-internal", Fdelete_window_internal, Sdelete_window_interna error ("Deletion failed"); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qnil; } \f @@ -7233,6 +7312,9 @@ DEFUN ("set-window-configuration", Fset_window_configuration, minibuf_selected_window = data->minibuf_selected_window; SAFE_FREE (); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return FRAME_LIVE_P (f) ? Qt : Qnil; } @@ -8479,6 +8561,10 @@ syms_of_window (void) displayed after a scrolling operation to be somewhat inaccurate. */); fast_but_imprecise_scrolling = false; + DEFVAR_LISP ("window-list-lengths", window_list_lengths, + doc: /* Last lengths of `window-list'. */); + window_list_lengths = Qnil; + defsubr (&Sselected_window); defsubr (&Sold_selected_window); defsubr (&Sminibuffer_window); diff --git a/src/xdisp.c b/src/xdisp.c index cc0a689ba3..ea64e5037a 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -12980,6 +12980,8 @@ restore_selected_window (Lisp_Object window) /* Abort if we cannot find a live frame. */ emacs_abort (); } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Restore WINDOW, if live, as its frame's selected window. */ @@ -12997,6 +12999,8 @@ restore_frame_selected_window (Lisp_Object window) if (EQ (frame, selected_frame)) selected_window = window; } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Update the tab-bar item list for frame F. This has to be done @@ -13074,6 +13078,8 @@ update_tab_bar (struct frame *f, bool save_match_data) XSETFRAME (frame, f); selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); #endif /* Build desired tab-bar items from keymaps. */ @@ -14010,6 +14016,8 @@ update_tool_bar (struct frame *f, bool save_match_data) selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Build desired tool-bar items from keymaps. */ new_tool_bar = tool_bar_items (Fcopy_sequence (f->tool_bar_items), @@ -17246,6 +17254,8 @@ run_window_scroll_functions (Lisp_Object window, struct text_pos startp) set_buffer_internal (XBUFFER (w->contents)); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return startp; } @@ -25450,6 +25460,8 @@ display_mode_lines (struct window *w) unbind_to (count, Qnil); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + if (n > 0) w->must_be_updated_p = true; return n; ^ permalink raw reply related [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 9:00 ` martin rudalics @ 2021-04-07 12:42 ` Michael Welsh Duggan 2021-04-07 13:35 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-07 12:42 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org, Michael Welsh Duggan martin rudalics <rudalics@gmx.at> writes: >> Just a shot in the dark here. The only way I can think of this >> occurring (Vwindow_list being too small), is that something modified >> Vwindow_list when we don't expect it to be modified. I looked through >> all the uses of Vwindow_list and window_list(), and they all look >> kosher. The only modification seems to be setting Vwindow_list to nil. >> But window_list() does call into lisp (nconc2, which calls Fnconc) when >> constructing Vwindow_list, and it uses Vwindow_list as a temporary in >> the process. Is it possible that during that call something happens >> asynchronously (via gc?) that calls something that sets Vwindow_list >> to nil again, while Vwindow_list is being constructed? > > Improbable but I attached some code that could detect such an > incidence. Put a breakpoint at the > > Vwindow_list = window_list_2; > > line. > >> I don't think >> so, off hand, but I'm grasping at straws. > > I also added a variable called `window-list-lengths' which records the > last 20 or so last changes in the number of windows seen by window_list. > Maybe you can detect some strange 2 ~> 6 or 6 ~> 2 change while running > Gnus. I'm still not sure whether your daemon setup could be involved > somehow. I can run with this, but I am uncertain how I should be using it. What should I be trapping on and looking at? I'm guessing the same process as I used before, but we get another variable we can look at in the process? -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 12:42 ` Michael Welsh Duggan @ 2021-04-07 13:35 ` martin rudalics 2021-04-07 15:29 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-07 13:35 UTC (permalink / raw) To: Michael Welsh Duggan Cc: schwab@linux-m68k.org, 47244@debbugs.gnu.org, Michael Welsh Duggan > I can run with this, but I am uncertain how I should be using it. What > should I be trapping on and looking at? I'm guessing the same process > as I used before, but we get another variable we can look at in the > process? Occasionally, with your two visible frames setup for Gnus look at its value. So far we only know that it can eventually become 2 and by explicitly setting Vframe_list to nil and triggering a window_list call it gets set to 6. I'd like to know whether it can become 2 earlier and/or we can detect some sort of pattern how it gets set to that value. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 13:35 ` martin rudalics @ 2021-04-07 15:29 ` Michael Welsh Duggan 2021-04-07 16:16 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-07 15:29 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > I can run with this, but I am uncertain how I should be using it. What > > should I be trapping on and looking at? I'm guessing the same process > > as I used before, but we get another variable we can look at in the > > process? > > Occasionally, with your two visible frames setup for Gnus look at its > value. So far we only know that it can eventually become 2 and by > explicitly setting Vframe_list to nil and triggering a window_list call > it gets set to 6. I'd like to know whether it can become 2 earlier > and/or we can detect some sort of pattern how it gets set to that value. Don't know where to go from here, but I have a breakpoint set on replace_buffer_in_windows_safely_count = 0; conditioned on count != 0. I've hit that, and here's some info. Don't know where to go from here, but I'm happy to give more info if requested. Thread 3.1 "emacs" hit Breakpoint 5, replace_buffer_in_windows_safely ( buffer=XIL(0x555556c75c9d)) at ../../master/src/window.c:3477 3477 replace_buffer_in_windows_safely_count = 0; (gdb) p Vwindow_list $1 = XIL(0x555557f034d3) (gdb) p list_length(Vwindow_list) $2 = 2 (gdb) p Vwindow_list $3 = XIL(0x555557f034d3) (gdb) xlist $4 = 0x55555791df75 Lisp_Vectorlike PVEC_WINDOW $5 = (struct window *) 0x55555791df70 100x57+0+0 --- $6 = 0x5555577f28a5 Lisp_Vectorlike PVEC_WINDOW $7 = (struct window *) 0x5555577f28a0 100x1+0+57 --- nil (gdb) p $5->contents $8 = XIL(0x5555579dc345) (gdb) xbuffer $9 = (struct buffer *) 0x5555579dc340 0x555557e69358 "build.py" (gdb) p $7->contents $10 = XIL(0x7ffff2a3cb25) (gdb) xbuffer $11 = (struct buffer *) 0x7ffff2a3cb20 0x7ffff2d244ea " *Minibuf-0*" (gdb) p window_list_lengths $12 = XIL(0x5555575cd343) (gdb) xlist $13 = 0x1a Lisp_Int0 $14 = 6 --- $15 = 0x1e Lisp_Int1 $16 = 7 --- $17 = 0x1a Lisp_Int0 $18 = 6 --- $19 = 0x1e Lisp_Int1 $20 = 7 --- $21 = 0x1a Lisp_Int0 $22 = 6 --- $23 = 0x1e Lisp_Int1 $24 = 7 --- $25 = 0x1a Lisp_Int0 $26 = 6 --- $27 = 0x1e Lisp_Int1 $28 = 7 --- $29 = 0x1a Lisp_Int0 $30 = 6 --- $31 = 0x22 Lisp_Int0 $32 = 8 --- ... $33 = 93825046649712 (gdb) p Vframe_list $34 = XIL(0x5555582da543) (gdb) xlist $35 = 0x555558285545 Lisp_Vectorlike PVEC_FRAME $36 = (struct frame *) 0x555558285540 "build.py" --- $37 = 0x555556fc830d Lisp_Vectorlike PVEC_FRAME $38 = (struct frame *) 0x555556fc8308 "*Server*" --- $39 = 0x555555eff9dd Lisp_Vectorlike PVEC_FRAME $40 = (struct frame *) 0x555555eff9d8 "F1" --- nil -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 15:29 ` Michael Welsh Duggan @ 2021-04-07 16:16 ` martin rudalics 2021-04-07 17:37 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-07 16:16 UTC (permalink / raw) To: Michael Welsh Duggan Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org [-- Attachment #1: Type: text/plain, Size: 640 bytes --] > Don't know where to go from here, but I have a breakpoint set on > > replace_buffer_in_windows_safely_count = 0; > > conditioned on count != 0. Good. IIUC this > (gdb) p list_length(Vwindow_list) > $2 = 2 and this > (gdb) xlist > $13 = 0x1a > Lisp_Int0 > $14 = 6 together indicate that Vwindow_list spontaneously shrinks from 6 to 2 elements (which is "impossible" as we know already). Attaching the next patch which should catch this situation automatically. It will still be of no help because we won't catch the one that apparently clobbers that list but hopefully more useful than the previous diff. martin [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: selected_window_contents.diff --] [-- Type: text/x-patch; name="selected_window_contents.diff", Size: 7773 bytes --] diff --git a/src/buffer.c b/src/buffer.c index 8e33162989..70b37e61a2 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1951,6 +1951,9 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", This gets rid of them for certain. */ reset_buffer_local_variables (b, 1); + if (!b->base_buffer) + eassert (b->window_count == 0); + bset_name (b, Qnil); block_input (); @@ -1991,6 +1994,8 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", run_buffer_list_update_hook (b); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qt; } \f @@ -2151,6 +2156,9 @@ set_buffer_internal_1 (register struct buffer *b) BUFFER_CHECK_INDIRECTION (b); + if (!BUFFER_LIVE_P (b)) + error ("Selecting deleted buffer"); + old_buf = current_buffer; current_buffer = b; last_known_column_point = -1; /* Invalidate indentation cache. */ diff --git a/src/window.c b/src/window.c index eb16e2a433..c6fbe24742 100644 --- a/src/window.c +++ b/src/window.c @@ -87,6 +87,8 @@ by setting it to nil. */ Lisp_Object Vwindow_list; +static int window_list_length = 0; + /* True mean window_change_record has to record all live frames. */ static bool window_change_record_frames; @@ -307,7 +309,11 @@ wset_buffer (struct window *w, Lisp_Object val) if (BUFFERP (val)) /* Make sure that we do not assign the buffer to an internal window. */ - eassert (MARKERP (w->start) && MARKERP (w->pointm)); + { + eassert (BUFFER_LIVE_P (XBUFFER (val))); + eassert (MARKERP (w->start) && MARKERP (w->pointm)); + } + w->contents = val; adjust_window_count (w, 1); } @@ -315,6 +321,7 @@ wset_buffer (struct window *w, Lisp_Object val) static void wset_old_buffer (struct window *w, Lisp_Object val) { + eassert (BUFFER_LIVE_P (XBUFFER (val))); w->old_buffer = val; } @@ -594,6 +601,8 @@ select_window_1 (Lisp_Object window, bool inhibit_point_swap) selected_window = window; + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Go to the point recorded in the window. This is important when the buffer is in more than one window. It also matters when @@ -2569,7 +2578,11 @@ window_list (void) arglist = Fnreverse (arglist); Vwindow_list = nconc2 (Vwindow_list, arglist); } + + window_list_length = list_length (Vwindow_list); } + else + eassert (window_list_length == list_length (Vwindow_list)); return Vwindow_list; } @@ -2950,6 +2963,8 @@ DEFUN ("window-list-1", Fwindow_list_1, Swindow_list_1, 0, 3, 0, CHECK_ALL_WINDOWS /* Arg is ignored */ }; +static int replace_buffer_in_windows_safely_count; + static Lisp_Object window_loop (enum window_loop type, Lisp_Object obj, bool mini, Lisp_Object frames) @@ -3048,6 +3063,8 @@ window_loop (enum window_loop type, Lisp_Object obj, bool mini, if (EQ (window, selected_window) && XBUFFER (w->contents) == current_buffer) Fset_buffer (w->contents); + + replace_buffer_in_windows_safely_count += 1; } break; @@ -3411,6 +3428,8 @@ DEFUN ("delete-other-windows-internal", Fdelete_other_windows_internal, replace_buffer_in_windows (Lisp_Object buffer) { call1 (Qreplace_buffer_in_windows, buffer); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* If BUFFER is shown in a window, safely replace it with some other @@ -3419,7 +3438,28 @@ replace_buffer_in_windows (Lisp_Object buffer) void replace_buffer_in_windows_safely (Lisp_Object buffer) { - if (buffer_window_count (XBUFFER (buffer))) + if (!NILP (Fstring_equal (XBUFFER (buffer)->name_, + build_string ("*Server*")))) + { + int count = buffer_window_count (XBUFFER (buffer)); + + replace_buffer_in_windows_safely_count = 0; + + + if (buffer_window_count (XBUFFER (buffer))) + { + Lisp_Object tail, frame; + + /* A single call to window_loop won't do the job because it only + considers frames on the current keyboard. So loop manually over + frames, and handle each one. */ + FOR_EACH_FRAME (tail, frame) + window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); + } + + eassert (count == replace_buffer_in_windows_safely_count); + } + else if (buffer_window_count (XBUFFER (buffer))) { Lisp_Object tail, frame; @@ -3960,6 +4000,8 @@ run_window_change_functions (void) /* Record changes for all frames (if asked for), selected window and frame. */ unbind_to (count, Qnil); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Make WINDOW display BUFFER. RUN_HOOKS_P means it's allowed @@ -4054,6 +4096,9 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer, if (!samebuf && !MINI_WINDOW_P (w) && !WINDOW_PSEUDO_P (w)) FRAME_WINDOW_CHANGE (XFRAME (w->frame)) = true; + if (WINDOWP (selected_window)) + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + unbind_to (count, Qnil); } @@ -5174,6 +5219,8 @@ DEFUN ("delete-window-internal", Fdelete_window_internal, Sdelete_window_interna error ("Deletion failed"); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qnil; } \f @@ -7233,6 +7280,9 @@ DEFUN ("set-window-configuration", Fset_window_configuration, minibuf_selected_window = data->minibuf_selected_window; SAFE_FREE (); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return FRAME_LIVE_P (f) ? Qt : Qnil; } diff --git a/src/xdisp.c b/src/xdisp.c index cc0a689ba3..ea64e5037a 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -12980,6 +12980,8 @@ restore_selected_window (Lisp_Object window) /* Abort if we cannot find a live frame. */ emacs_abort (); } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Restore WINDOW, if live, as its frame's selected window. */ @@ -12997,6 +12999,8 @@ restore_frame_selected_window (Lisp_Object window) if (EQ (frame, selected_frame)) selected_window = window; } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Update the tab-bar item list for frame F. This has to be done @@ -13074,6 +13078,8 @@ update_tab_bar (struct frame *f, bool save_match_data) XSETFRAME (frame, f); selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); #endif /* Build desired tab-bar items from keymaps. */ @@ -14010,6 +14016,8 @@ update_tool_bar (struct frame *f, bool save_match_data) selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Build desired tool-bar items from keymaps. */ new_tool_bar = tool_bar_items (Fcopy_sequence (f->tool_bar_items), @@ -17246,6 +17254,8 @@ run_window_scroll_functions (Lisp_Object window, struct text_pos startp) set_buffer_internal (XBUFFER (w->contents)); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return startp; } @@ -25450,6 +25460,8 @@ display_mode_lines (struct window *w) unbind_to (count, Qnil); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + if (n > 0) w->must_be_updated_p = true; return n; ^ permalink raw reply related [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 16:16 ` martin rudalics @ 2021-04-07 17:37 ` Michael Welsh Duggan 2021-04-07 17:55 ` Michael Welsh Duggan ` (2 more replies) 0 siblings, 3 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-07 17:37 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > Don't know where to go from here, but I have a breakpoint set on > > > > replace_buffer_in_windows_safely_count = 0; > > > > conditioned on count != 0. > > Good. IIUC this > > > (gdb) p list_length(Vwindow_list) > > $2 = 2 > > and this > > > (gdb) xlist > > $13 = 0x1a > > Lisp_Int0 > > $14 = 6 > > together indicate that Vwindow_list spontaneously shrinks from 6 to 2 > elements (which is "impossible" as we know already). Attaching the next > patch which should catch this situation automatically. It will still be > of no help because we won't catch the one that apparently clobbers that > list but hopefully more useful than the previous diff. Triggered. Here's the backtrace: #0 terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at ../../master/src/emacs.c:379 #1 0x00005555557c4aa2 in die (msg=0x5555559105c8 "window_list_length == list_length (Vwindow_list)", file=0x55555590f9cf "../../master/src/window.c", line=2585) at ../../master/src/alloc.c:7420 #2 0x000055555564b3ea in window_list () at ../../master/src/window.c:2585 #3 0x000055555564bfec in window_list_1 (window=XIL(0x555556f6f995), minibuf=XIL(0xc0), all_frames=XIL(0x30)) at ../../master/src/window.c:2872 tail = XIL(0x7ffff26647bd) list = XIL(0) rest = XIL(0x7ffff26647c0) #4 0x000055555564c332 in Fwindow_list_1 (window=XIL(0), minibuf=XIL(0), all_frames=XIL(0x30)) at ../../master/src/window.c:2946 #5 0x00005555557fdb25 in funcall_subr (subr=0x555555dd4960 <Swindow_list_1>, numargs=3, args=0x7fffffffbfa0) at ../../master/src/eval.c:2992 internal_argbuf = {XIL(0x7fffffffbed0), XIL(0x1000000000), XIL(0x555555dd4960), XIL(0x7fffffffbed8), make_fixnum(23456248746435), XIL(0x10557f41d5), XIL(0x555555dd4965), XIL(0x7fffffffbef0)} internal_args = 0x7fffffffbfa0 #6 0x00005555557fd593 in Ffuncall (nargs=4, args=0x7fffffffbf98) at ../../master/src/eval.c:2914 fun = XIL(0x555555dd4965) original_fun = XIL(0x2aaa9c71a7a8) funcar = XIL(0x7fffffffbf50) numargs = 3 val = XIL(0x55555792ff75) count = 12 #7 0x0000555555856c56 in exec_byte_code (bytestr=XIL(0x7ffff277c864), vector=XIL(0x7ffff277c80d), maxdepth=make_fixnum(8), args_template=make_fixnum(256), nargs=1, args=0x7fffffffc4b0) at ../../master/src/bytecode.c:632 op = 3 type = (CATCHER_ALL | unknown: 0x20) targets = {0x555555859aeb <exec_byte_code+15219>, 0x555555859b10 <exec_byte_code+15256>, 0x555555859b12 <exec_byte_code+15258>, 0x555555859b14 <exec_byte_code+15260>, 0x555555859b16 <exec_byte_code+15262>, 0x555555859b16 <exec_byte_code+15262>, 0x555555859b7b <exec_byte_code+15363>, 0x555555859bef <exec_byte_code+15479>, 0x555555856516 <exec_byte_code+1438>, 0x555555856518 <exec_byte_code+1440>, 0x55555585651a <exec_byte_code+1442>, 0x55555585651c <exec_byte_code+1444>, 0x55555585651e <exec_byte_code+1446>, 0x55555585651e <exec_byte_code+1446>, 0x555555856524 <exec_byte_code+1452>, 0x5555558564e5 <exec_byte_code+1389>, 0x55555585693c <exec_byte_code+2500>, 0x55555585693e <exec_byte_code+2502>, 0x555555856940 <exec_byte_code+2504>, 0x555555856942 <exec_byte_code+2506>, 0x555555856944 <exec_byte_code+2508>, 0x555555856944 <exec_byte_code+2508>, 0x555555856979 <exec_byte_code+2561>, 0x55555585694a <exec_byte_code+2514>, 0x555555856b6e <exec_byte_code+3062>, 0x555555856b70 <exec_byte_code+3064>, 0x555555856b72 <exec_byte_code+3066>, 0x555555856b74 <exec_byte_code+3068>, 0x555555856b76 <exec_byte_code+3070>, 0x555555856b76 <exec_byte_code+3070>, 0x555555856b28 <exec_byte_code+2992>, 0x555555856b3f <exec_byte_code+3015>, 0x555555856c23 <exec_byte_code+3243>, 0x555555856c25 <exec_byte_code+3245>, 0x555555856c27 <exec_byte_code+3247>, 0x555555856c29 <exec_byte_code+3249>, 0x555555856c2b <exec_byte_code+3251>, 0x555555856c2b <exec_byte_code+3251>, 0x555555856bdd <exec_byte_code+3173>, 0x555555856bf4 <exec_byte_code+3196>, 0x555555856cd5 <exec_byte_code+3421>, 0x555555856cd7 <exec_byte_code+3423>, 0x555555856cd9 <exec_byte_code+3425>, 0x555555856cdb <exec_byte_code+3427>, 0x555555856cdd <exec_byte_code+3429>, 0x555555856cdd <exec_byte_code+3429>, 0x555555856c8f <exec_byte_code+3351>, 0x555555856ca6 <exec_byte_code+3374>, 0x55555585753d <exec_byte_code+5573>, 0x555555857420 <exec_byte_code+5288>, 0x555555857417 <exec_byte_code+5279>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555857777 <exec_byte_code+6143>, 0x55555585788d <exec_byte_code+6421>, 0x5555558578ea <exec_byte_code+6514>, 0x55555585794a <exec_byte_code+6610>, 0x5555558579ac <exec_byte_code+6708>, 0x555555856795 <exec_byte_code+2077>, 0x555555856810 <exec_byte_code+2200>, 0x555555857a25 <exec_byte_code+6829>, 0x5555558566d2 <exec_byte_code+1882>, 0x555555856878 <exec_byte_code+2304>, 0x555555857a8d <exec_byte_code+6933>, 0x555555857af5 <exec_byte_code+7037>, 0x555555857b3d <exec_byte_code+7109>, 0x555555857ba5 <exec_byte_code+7213>, 0x555555857c0b <exec_byte_code+7315>, 0x555555857cf1 <exec_byte_code+7545>, 0x555555857d39 <exec_byte_code+7617>, 0x555555857da1 <exec_byte_code+7721>, 0x555555857e26 <exec_byte_code+7854>, 0x555555857e6e <exec_byte_code+7926>, 0x555555857eb6 <exec_byte_code+7998>, 0x555555857f1e <exec_byte_code+8102>, 0x555555857f86 <exec_byte_code+8206>, 0x555555857fee <exec_byte_code+8310>, 0x555555858073 <exec_byte_code+8443>, 0x5555558580c2 <exec_byte_code+8522>, 0x555555858111 <exec_byte_code+8601>, 0x5555558581d8 <exec_byte_code+8800>, 0x5555558582d1 <exec_byte_code+9049>, 0x5555558583ca <exec_byte_code+9298>, 0x555555858437 <exec_byte_code+9407>, 0x5555558584a4 <exec_byte_code+9516>, 0x555555858511 <exec_byte_code+9625>, 0x55555585857e <exec_byte_code+9734>, 0x5555558585eb <exec_byte_code+9843>, 0x55555585863a <exec_byte_code+9922>, 0x555555858734 <exec_byte_code+10172>, 0x555555858783 <exec_byte_code+10251>, 0x5555558587d2 <exec_byte_code+10330>, 0x555555858821 <exec_byte_code+10409>, 0x555555858927 <exec_byte_code+10671>, 0x555555857297 <exec_byte_code+4895>, 0x555555858982 <exec_byte_code+10762>, 0x5555558589ca <exec_byte_code+10834>, 0x555555858a8c <exec_byte_code+11028>, 0x555555858af5 <exec_byte_code+11133>, 0x555555858b50 <exec_byte_code+11224>, 0x555555858b98 <exec_byte_code+11296>, 0x555555858bdb <exec_byte_code+11363>, 0x555555858c1e <exec_byte_code+11430>, 0x555555858c69 <exec_byte_code+11505>, 0x555555859aeb <exec_byte_code+15219>, 0x555555858cc1 <exec_byte_code+11593>, 0x555555858d04 <exec_byte_code+11660>, 0x555555858d47 <exec_byte_code+11727>, 0x555555858d8a <exec_byte_code+11794>, 0x555555858dcd <exec_byte_code+11861>, 0x555555858e10 <exec_byte_code+11928>, 0x555555857297 <exec_byte_code+4895>, 0x555555859aeb <exec_byte_code+15219>, 0x555555858e58 <exec_byte_code+12000>, 0x555555858eaa <exec_byte_code+12082>, 0x555555858ef2 <exec_byte_code+12154>, 0x555555858f3a <exec_byte_code+12226>, 0x555555858fa2 <exec_byte_code+12330>, 0x55555585900a <exec_byte_code+12434>, 0x555555859052 <exec_byte_code+12506>, 0x55555585910f <exec_byte_code+12695>, 0x555555859177 <exec_byte_code+12799>, 0x5555558591df <exec_byte_code+12903>, 0x555555859247 <exec_byte_code+13007>, 0x55555585928a <exec_byte_code+13074>, 0x555555859aeb <exec_byte_code+15219>, 0x5555558571dd <exec_byte_code+4709>, 0x555555856d87 <exec_byte_code+3599>, 0x555555856640 <exec_byte_code+1736>, 0x555555856e38 <exec_byte_code+3776>, 0x555555856ebc <exec_byte_code+3908>, 0x555555856f3d <exec_byte_code+4037>, 0x555555857191 <exec_byte_code+4633>, 0x5555558571a6 <exec_byte_code+4654>, 0x555555856ad5 <exec_byte_code+2909>, 0x555555857260 <exec_byte_code+4840>, 0x5555558572ce <exec_byte_code+4950>, 0x55555585735f <exec_byte_code+5095>, 0x5555558573a8 <exec_byte_code+5168>, 0x555555857589 <exec_byte_code+5649>, 0x555555857606 <exec_byte_code+5774>, 0x55555585768b <exec_byte_code+5907>, 0x5555558576f1 <exec_byte_code+6009>, 0x555555856d39 <exec_byte_code+3521>, 0x5555558592d2 <exec_byte_code+13146>, 0x555555859357 <exec_byte_code+13279>, 0x55555585939f <exec_byte_code+13351>, 0x5555558593e7 <exec_byte_code+13423>, 0x55555585942f <exec_byte_code+13495>, 0x555555859477 <exec_byte_code+13567>, 0x5555558594df <exec_byte_code+13671>, 0x555555859547 <exec_byte_code+13775>, 0x5555558595af <exec_byte_code+13879>, 0x555555859617 <exec_byte_code+13983>, 0x555555859760 <exec_byte_code+14312>, 0x5555558597c8 <exec_byte_code+14416>, 0x555555859830 <exec_byte_code+14520>, 0x555555859878 <exec_byte_code+14592>, 0x5555558598e0 <exec_byte_code+14696>, 0x555555859948 <exec_byte_code+14800>, 0x555555859990 <exec_byte_code+14872>, 0x5555558599d8 <exec_byte_code+14944>, 0x555555858870 <exec_byte_code+10488>, 0x5555558588bf <exec_byte_code+10567>, 0x555555859a27 <exec_byte_code+15023>, 0x555555859a89 <exec_byte_code+15121>, 0x555555859aeb <exec_byte_code+15219>, 0x555555856fbe <exec_byte_code+4166>, 0x555555856fdb <exec_byte_code+4195>, 0x55555585704a <exec_byte_code+4306>, 0x5555558570b9 <exec_byte_code+4417>, 0x555555857125 <exec_byte_code+4525>, 0x555555857c79 <exec_byte_code+7425>, 0x555555858160 <exec_byte_code+8680>, 0x555555858a14 <exec_byte_code+10908>, 0x555555859c82 <exec_byte_code+15626>, 0x555555859cf7 <exec_byte_code+15743>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859d8d <exec_byte_code+15893>, 0x555555859e14 <exec_byte_code+16028>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859f62 <exec_byte_code+16362> <repeats 64 times>} const_length = 10 bytestr_length = 56 vectorp = 0x7ffff277c810 quitcounter = 1 '\001' stack_items = 9 sa_avail = 16256 sa_count = 12 alloc = 0x7fffffffbf80 stack_base = 0x7fffffffbf80 top = 0x7fffffffbf98 stack_lim = 0x7fffffffbfc8 bytestr_data = 0x7fffffffbfc8 "\300\001!\301\302\211\303#\211\205\067" pc = 0x7fffffffbfd0 "\211\205\067" count = 12 result = XIL(0xc557d245f) #8 0x00005555557fdd7e in fetch_and_exec_byte_code (fun=XIL(0x7ffff277c7b5), syms_left=make_fixnum(256), nargs=1, args=0x7fffffffc4a8) at ../../master/src/eval.c:3036 #9 0x00005555557fe204 in funcall_lambda (fun=XIL(0x7ffff277c7b5), nargs=1, arg_vector=0x7fffffffc4a8) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffc420) syms_left = make_fixnum(256) next = XIL(0x555555e63080) lexenv = XIL(0x1800000000) count = 12 i = 93824994985742 optional = false rest = false #10 0x00005555557fd5d7 in Ffuncall (nargs=2, args=0x7fffffffc4a0) at ../../master/src/eval.c:2916 fun = XIL(0x7ffff277c7b5) original_fun = XIL(0xbd60) funcar = XIL(0x7fffffffc470) numargs = 1 val = XIL(0x555555e63080) count = 11 #11 0x00005555557fcda1 in call1 (fn=XIL(0xbd60), arg1=XIL(0x55555792ff75)) at ../../master/src/eval.c:2774 #12 0x000055555564d83c in replace_buffer_in_windows (buffer=XIL(0x55555792ff75)) at ../../master/src/window.c:3430 #13 0x0000555555758d98 in Fkill_buffer (buffer_or_name=XIL(0x55555792ff75)) at ../../master/src/buffer.c:1830 buffer = XIL(0x55555792ff75) b = 0x55555792ff70 tem = make_fixnum(23456248581479) m = 0x7fffffffc5f0 #14 0x00005555557fdacb in funcall_subr (subr=0x555555dd9ce0 <Skill_buffer>, numargs=1, args=0x7fffffffc710) at ../../master/src/eval.c:2987 internal_argbuf = {XIL(0x7fffffffc650), XIL(0x1000000000), XIL(0x555555dd9ce0), XIL(0x7fffffffc658), make_fixnum(23456248746435), XIL(0x10557f41d5), XIL(0x555555dd9ce5), XIL(0x7fffffffc670)} internal_args = 0x7fffffffc710 #15 0x00005555557fd593 in Ffuncall (nargs=2, args=0x7fffffffc708) at ../../master/src/eval.c:2914 fun = XIL(0x555555dd9ce5) original_fun = XIL(0x2aaa9c7147c0) funcar = XIL(0x7fffffffc6d0) numargs = 1 val = XIL(0x7fffffffc6f0) count = 10 #16 0x0000555555856c56 in exec_byte_code (bytestr=XIL(0x7ffff25c7454), vector=XIL(0x555558229a65), maxdepth=make_fixnum(2), args_template=make_fixnum(0), nargs=0, args=0x7fffffffcbc0) at ../../master/src/bytecode.c:632 op = 1 type = (CONDITION_CASE | unknown: 0x5588e68c) targets = {0x555555859aeb <exec_byte_code+15219>, 0x555555859b10 <exec_byte_code+15256>, 0x555555859b12 <exec_byte_code+15258>, 0x555555859b14 <exec_byte_code+15260>, 0x555555859b16 <exec_byte_code+15262>, 0x555555859b16 <exec_byte_code+15262>, 0x555555859b7b <exec_byte_code+15363>, 0x555555859bef <exec_byte_code+15479>, 0x555555856516 <exec_byte_code+1438>, 0x555555856518 <exec_byte_code+1440>, 0x55555585651a <exec_byte_code+1442>, 0x55555585651c <exec_byte_code+1444>, 0x55555585651e <exec_byte_code+1446>, 0x55555585651e <exec_byte_code+1446>, 0x555555856524 <exec_byte_code+1452>, 0x5555558564e5 <exec_byte_code+1389>, 0x55555585693c <exec_byte_code+2500>, 0x55555585693e <exec_byte_code+2502>, 0x555555856940 <exec_byte_code+2504>, 0x555555856942 <exec_byte_code+2506>, 0x555555856944 <exec_byte_code+2508>, 0x555555856944 <exec_byte_code+2508>, 0x555555856979 <exec_byte_code+2561>, 0x55555585694a <exec_byte_code+2514>, 0x555555856b6e <exec_byte_code+3062>, 0x555555856b70 <exec_byte_code+3064>, 0x555555856b72 <exec_byte_code+3066>, 0x555555856b74 <exec_byte_code+3068>, 0x555555856b76 <exec_byte_code+3070>, 0x555555856b76 <exec_byte_code+3070>, 0x555555856b28 <exec_byte_code+2992>, 0x555555856b3f <exec_byte_code+3015>, 0x555555856c23 <exec_byte_code+3243>, 0x555555856c25 <exec_byte_code+3245>, 0x555555856c27 <exec_byte_code+3247>, 0x555555856c29 <exec_byte_code+3249>, 0x555555856c2b <exec_byte_code+3251>, 0x555555856c2b <exec_byte_code+3251>, 0x555555856bdd <exec_byte_code+3173>, 0x555555856bf4 <exec_byte_code+3196>, 0x555555856cd5 <exec_byte_code+3421>, 0x555555856cd7 <exec_byte_code+3423>, 0x555555856cd9 <exec_byte_code+3425>, 0x555555856cdb <exec_byte_code+3427>, 0x555555856cdd <exec_byte_code+3429>, 0x555555856cdd <exec_byte_code+3429>, 0x555555856c8f <exec_byte_code+3351>, 0x555555856ca6 <exec_byte_code+3374>, 0x55555585753d <exec_byte_code+5573>, 0x555555857420 <exec_byte_code+5288>, 0x555555857417 <exec_byte_code+5279>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555857777 <exec_byte_code+6143>, 0x55555585788d <exec_byte_code+6421>, 0x5555558578ea <exec_byte_code+6514>, 0x55555585794a <exec_byte_code+6610>, 0x5555558579ac <exec_byte_code+6708>, 0x555555856795 <exec_byte_code+2077>, 0x555555856810 <exec_byte_code+2200>, 0x555555857a25 <exec_byte_code+6829>, 0x5555558566d2 <exec_byte_code+1882>, 0x555555856878 <exec_byte_code+2304>, 0x555555857a8d <exec_byte_code+6933>, 0x555555857af5 <exec_byte_code+7037>, 0x555555857b3d <exec_byte_code+7109>, 0x555555857ba5 <exec_byte_code+7213>, 0x555555857c0b <exec_byte_code+7315>, 0x555555857cf1 <exec_byte_code+7545>, 0x555555857d39 <exec_byte_code+7617>, 0x555555857da1 <exec_byte_code+7721>, 0x555555857e26 <exec_byte_code+7854>, 0x555555857e6e <exec_byte_code+7926>, 0x555555857eb6 <exec_byte_code+7998>, 0x555555857f1e <exec_byte_code+8102>, 0x555555857f86 <exec_byte_code+8206>, 0x555555857fee <exec_byte_code+8310>, 0x555555858073 <exec_byte_code+8443>, 0x5555558580c2 <exec_byte_code+8522>, 0x555555858111 <exec_byte_code+8601>, 0x5555558581d8 <exec_byte_code+8800>, 0x5555558582d1 <exec_byte_code+9049>, 0x5555558583ca <exec_byte_code+9298>, 0x555555858437 <exec_byte_code+9407>, 0x5555558584a4 <exec_byte_code+9516>, 0x555555858511 <exec_byte_code+9625>, 0x55555585857e <exec_byte_code+9734>, 0x5555558585eb <exec_byte_code+9843>, 0x55555585863a <exec_byte_code+9922>, 0x555555858734 <exec_byte_code+10172>, 0x555555858783 <exec_byte_code+10251>, 0x5555558587d2 <exec_byte_code+10330>, 0x555555858821 <exec_byte_code+10409>, 0x555555858927 <exec_byte_code+10671>, 0x555555857297 <exec_byte_code+4895>, 0x555555858982 <exec_byte_code+10762>, 0x5555558589ca <exec_byte_code+10834>, 0x555555858a8c <exec_byte_code+11028>, 0x555555858af5 <exec_byte_code+11133>, 0x555555858b50 <exec_byte_code+11224>, 0x555555858b98 <exec_byte_code+11296>, 0x555555858bdb <exec_byte_code+11363>, 0x555555858c1e <exec_byte_code+11430>, 0x555555858c69 <exec_byte_code+11505>, 0x555555859aeb <exec_byte_code+15219>, 0x555555858cc1 <exec_byte_code+11593>, 0x555555858d04 <exec_byte_code+11660>, 0x555555858d47 <exec_byte_code+11727>, 0x555555858d8a <exec_byte_code+11794>, 0x555555858dcd <exec_byte_code+11861>, 0x555555858e10 <exec_byte_code+11928>, 0x555555857297 <exec_byte_code+4895>, 0x555555859aeb <exec_byte_code+15219>, 0x555555858e58 <exec_byte_code+12000>, 0x555555858eaa <exec_byte_code+12082>, 0x555555858ef2 <exec_byte_code+12154>, 0x555555858f3a <exec_byte_code+12226>, 0x555555858fa2 <exec_byte_code+12330>, 0x55555585900a <exec_byte_code+12434>, 0x555555859052 <exec_byte_code+12506>, 0x55555585910f <exec_byte_code+12695>, 0x555555859177 <exec_byte_code+12799>, 0x5555558591df <exec_byte_code+12903>, 0x555555859247 <exec_byte_code+13007>, 0x55555585928a <exec_byte_code+13074>, 0x555555859aeb <exec_byte_code+15219>, 0x5555558571dd <exec_byte_code+4709>, 0x555555856d87 <exec_byte_code+3599>, 0x555555856640 <exec_byte_code+1736>, 0x555555856e38 <exec_byte_code+3776>, 0x555555856ebc <exec_byte_code+3908>, 0x555555856f3d <exec_byte_code+4037>, 0x555555857191 <exec_byte_code+4633>, 0x5555558571a6 <exec_byte_code+4654>, 0x555555856ad5 <exec_byte_code+2909>, 0x555555857260 <exec_byte_code+4840>, 0x5555558572ce <exec_byte_code+4950>, 0x55555585735f <exec_byte_code+5095>, 0x5555558573a8 <exec_byte_code+5168>, 0x555555857589 <exec_byte_code+5649>, 0x555555857606 <exec_byte_code+5774>, 0x55555585768b <exec_byte_code+5907>, 0x5555558576f1 <exec_byte_code+6009>, 0x555555856d39 <exec_byte_code+3521>, 0x5555558592d2 <exec_byte_code+13146>, 0x555555859357 <exec_byte_code+13279>, 0x55555585939f <exec_byte_code+13351>, 0x5555558593e7 <exec_byte_code+13423>, 0x55555585942f <exec_byte_code+13495>, 0x555555859477 <exec_byte_code+13567>, 0x5555558594df <exec_byte_code+13671>, 0x555555859547 <exec_byte_code+13775>, 0x5555558595af <exec_byte_code+13879>, 0x555555859617 <exec_byte_code+13983>, 0x555555859760 <exec_byte_code+14312>, 0x5555558597c8 <exec_byte_code+14416>, 0x555555859830 <exec_byte_code+14520>, 0x555555859878 <exec_byte_code+14592>, 0x5555558598e0 <exec_byte_code+14696>, 0x555555859948 <exec_byte_code+14800>, 0x555555859990 <exec_byte_code+14872>, 0x5555558599d8 <exec_byte_code+14944>, 0x555555858870 <exec_byte_code+10488>, 0x5555558588bf <exec_byte_code+10567>, 0x555555859a27 <exec_byte_code+15023>, 0x555555859a89 <exec_byte_code+15121>, 0x555555859aeb <exec_byte_code+15219>, 0x555555856fbe <exec_byte_code+4166>, 0x555555856fdb <exec_byte_code+4195>, 0x55555585704a <exec_byte_code+4306>, 0x5555558570b9 <exec_byte_code+4417>, 0x555555857125 <exec_byte_code+4525>, 0x555555857c79 <exec_byte_code+7425>, 0x555555858160 <exec_byte_code+8680>, 0x555555858a14 <exec_byte_code+10908>, 0x555555859c82 <exec_byte_code+15626>, 0x555555859cf7 <exec_byte_code+15743>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859d8d <exec_byte_code+15893>, 0x555555859e14 <exec_byte_code+16028>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859f62 <exec_byte_code+16362> <repeats 64 times>} const_length = 3 bytestr_length = 10 vectorp = 0x555558229a68 quitcounter = 1 '\001' stack_items = 3 sa_avail = 16350 sa_count = 10 alloc = 0x7fffffffc700 stack_base = 0x7fffffffc700 top = 0x7fffffffc708 stack_lim = 0x7fffffffc718 bytestr_data = 0x7fffffffc718 "\301\300!\205\t" pc = 0x7fffffffc721 "\207\377\377\377\177" count = 10 result = XIL(0x9) #17 0x00005555557fdd7e in fetch_and_exec_byte_code (fun=XIL(0x555557821b4d), syms_left=make_fixnum(0), nargs=0, args=0x7fffffffcbc0) at ../../master/src/eval.c:3036 #18 0x00005555557fe204 in funcall_lambda (fun=XIL(0x555557821b4d), nargs=0, arg_vector=0x7fffffffcbc0) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffcb40) syms_left = make_fixnum(0) next = XIL(0x1) lexenv = XIL(0x1800000000) count = 10 i = 93824994985742 optional = false rest = false #19 0x00005555557fd5d7 in Ffuncall (nargs=1, args=0x7fffffffcbb8) at ../../master/src/eval.c:2916 fun = XIL(0x555557821b4d) original_fun = XIL(0x555557821b4d) funcar = XIL(0x7fffffffcb70) numargs = 0 val = XIL(0x555555e63080) count = 9 #20 0x0000555555855f75 in bcall0 (f=XIL(0x555557821b4d)) at ../../master/src/bytecode.c:340 #21 0x00005555557ffa0b in do_one_unbind (this_binding=0x7fffffffcc30, unwinding=true, bindflag=SET_INTERNAL_UNBIND) at ../../master/src/eval.c:3575 #22 0x00005555557ffe37 in unbind_to (count=8, value=XIL(0)) at ../../master/src/eval.c:3713 this_binding = { kind = SPECPDL_UNWIND, unwind = { kind = SPECPDL_UNWIND, func = 0x555555855f58 <bcall0>, arg = XIL(0x555557821b4d), eval_depth = 4 }, unwind_array = { kind = SPECPDL_UNWIND, nelts = 93824995385176, array = 0x555557821b4d }, unwind_ptr = { kind = SPECPDL_UNWIND, func = 0x555555855f58 <bcall0>, arg = 0x555557821b4d }, unwind_int = { kind = SPECPDL_UNWIND, func = 0x555555855f58 <bcall0>, arg = 1468144461 }, unwind_intmax = { kind = SPECPDL_UNWIND, func = 0x555555855f58 <bcall0>, arg = 93825028725581 }, unwind_excursion = { kind = SPECPDL_UNWIND, marker = XIL(0x555555855f58), window = XIL(0x555557821b4d) }, unwind_void = { kind = SPECPDL_UNWIND, func = 0x555555855f58 <bcall0> }, let = { kind = SPECPDL_UNWIND, symbol = XIL(0x555555855f58), old_value = XIL(0x555557821b4d), where = XIL(0x4), saved_value = XIL(0) }, bt = { kind = SPECPDL_UNWIND, debug_on_exit = false, function = XIL(0x555555855f58), args = 0x555557821b4d, nargs = 4 } } quitf = XIL(0) #23 0x0000555555856d07 in exec_byte_code (bytestr=XIL(0x7ffff2908874), vector=XIL(0x7ffff2908525), maxdepth=make_fixnum(23), args_template=make_fixnum(257), nargs=1, args=0x7fffffffd3e0) at ../../master/src/bytecode.c:652 op = 2 type = (unknown: 0xffffd230) targets = {0x555555859aeb <exec_byte_code+15219>, 0x555555859b10 <exec_byte_code+15256>, 0x555555859b12 <exec_byte_code+15258>, 0x555555859b14 <exec_byte_code+15260>, 0x555555859b16 <exec_byte_code+15262>, 0x555555859b16 <exec_byte_code+15262>, 0x555555859b7b <exec_byte_code+15363>, 0x555555859bef <exec_byte_code+15479>, 0x555555856516 <exec_byte_code+1438>, 0x555555856518 <exec_byte_code+1440>, 0x55555585651a <exec_byte_code+1442>, 0x55555585651c <exec_byte_code+1444>, 0x55555585651e <exec_byte_code+1446>, 0x55555585651e <exec_byte_code+1446>, 0x555555856524 <exec_byte_code+1452>, 0x5555558564e5 <exec_byte_code+1389>, 0x55555585693c <exec_byte_code+2500>, 0x55555585693e <exec_byte_code+2502>, 0x555555856940 <exec_byte_code+2504>, 0x555555856942 <exec_byte_code+2506>, 0x555555856944 <exec_byte_code+2508>, 0x555555856944 <exec_byte_code+2508>, 0x555555856979 <exec_byte_code+2561>, 0x55555585694a <exec_byte_code+2514>, 0x555555856b6e <exec_byte_code+3062>, 0x555555856b70 <exec_byte_code+3064>, 0x555555856b72 <exec_byte_code+3066>, 0x555555856b74 <exec_byte_code+3068>, 0x555555856b76 <exec_byte_code+3070>, 0x555555856b76 <exec_byte_code+3070>, 0x555555856b28 <exec_byte_code+2992>, 0x555555856b3f <exec_byte_code+3015>, 0x555555856c23 <exec_byte_code+3243>, 0x555555856c25 <exec_byte_code+3245>, 0x555555856c27 <exec_byte_code+3247>, 0x555555856c29 <exec_byte_code+3249>, 0x555555856c2b <exec_byte_code+3251>, 0x555555856c2b <exec_byte_code+3251>, 0x555555856bdd <exec_byte_code+3173>, 0x555555856bf4 <exec_byte_code+3196>, 0x555555856cd5 <exec_byte_code+3421>, 0x555555856cd7 <exec_byte_code+3423>, 0x555555856cd9 <exec_byte_code+3425>, 0x555555856cdb <exec_byte_code+3427>, 0x555555856cdd <exec_byte_code+3429>, 0x555555856cdd <exec_byte_code+3429>, 0x555555856c8f <exec_byte_code+3351>, 0x555555856ca6 <exec_byte_code+3374>, 0x55555585753d <exec_byte_code+5573>, 0x555555857420 <exec_byte_code+5288>, 0x555555857417 <exec_byte_code+5279>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555857777 <exec_byte_code+6143>, 0x55555585788d <exec_byte_code+6421>, 0x5555558578ea <exec_byte_code+6514>, 0x55555585794a <exec_byte_code+6610>, 0x5555558579ac <exec_byte_code+6708>, 0x555555856795 <exec_byte_code+2077>, 0x555555856810 <exec_byte_code+2200>, 0x555555857a25 <exec_byte_code+6829>, 0x5555558566d2 <exec_byte_code+1882>, 0x555555856878 <exec_byte_code+2304>, 0x555555857a8d <exec_byte_code+6933>, 0x555555857af5 <exec_byte_code+7037>, 0x555555857b3d <exec_byte_code+7109>, 0x555555857ba5 <exec_byte_code+7213>, 0x555555857c0b <exec_byte_code+7315>, 0x555555857cf1 <exec_byte_code+7545>, 0x555555857d39 <exec_byte_code+7617>, 0x555555857da1 <exec_byte_code+7721>, 0x555555857e26 <exec_byte_code+7854>, 0x555555857e6e <exec_byte_code+7926>, 0x555555857eb6 <exec_byte_code+7998>, 0x555555857f1e <exec_byte_code+8102>, 0x555555857f86 <exec_byte_code+8206>, 0x555555857fee <exec_byte_code+8310>, 0x555555858073 <exec_byte_code+8443>, 0x5555558580c2 <exec_byte_code+8522>, 0x555555858111 <exec_byte_code+8601>, 0x5555558581d8 <exec_byte_code+8800>, 0x5555558582d1 <exec_byte_code+9049>, 0x5555558583ca <exec_byte_code+9298>, 0x555555858437 <exec_byte_code+9407>, 0x5555558584a4 <exec_byte_code+9516>, 0x555555858511 <exec_byte_code+9625>, 0x55555585857e <exec_byte_code+9734>, 0x5555558585eb <exec_byte_code+9843>, 0x55555585863a <exec_byte_code+9922>, 0x555555858734 <exec_byte_code+10172>, 0x555555858783 <exec_byte_code+10251>, 0x5555558587d2 <exec_byte_code+10330>, 0x555555858821 <exec_byte_code+10409>, 0x555555858927 <exec_byte_code+10671>, 0x555555857297 <exec_byte_code+4895>, 0x555555858982 <exec_byte_code+10762>, 0x5555558589ca <exec_byte_code+10834>, 0x555555858a8c <exec_byte_code+11028>, 0x555555858af5 <exec_byte_code+11133>, 0x555555858b50 <exec_byte_code+11224>, 0x555555858b98 <exec_byte_code+11296>, 0x555555858bdb <exec_byte_code+11363>, 0x555555858c1e <exec_byte_code+11430>, 0x555555858c69 <exec_byte_code+11505>, 0x555555859aeb <exec_byte_code+15219>, 0x555555858cc1 <exec_byte_code+11593>, 0x555555858d04 <exec_byte_code+11660>, 0x555555858d47 <exec_byte_code+11727>, 0x555555858d8a <exec_byte_code+11794>, 0x555555858dcd <exec_byte_code+11861>, 0x555555858e10 <exec_byte_code+11928>, 0x555555857297 <exec_byte_code+4895>, 0x555555859aeb <exec_byte_code+15219>, 0x555555858e58 <exec_byte_code+12000>, 0x555555858eaa <exec_byte_code+12082>, 0x555555858ef2 <exec_byte_code+12154>, 0x555555858f3a <exec_byte_code+12226>, 0x555555858fa2 <exec_byte_code+12330>, 0x55555585900a <exec_byte_code+12434>, 0x555555859052 <exec_byte_code+12506>, 0x55555585910f <exec_byte_code+12695>, 0x555555859177 <exec_byte_code+12799>, 0x5555558591df <exec_byte_code+12903>, 0x555555859247 <exec_byte_code+13007>, 0x55555585928a <exec_byte_code+13074>, 0x555555859aeb <exec_byte_code+15219>, 0x5555558571dd <exec_byte_code+4709>, 0x555555856d87 <exec_byte_code+3599>, 0x555555856640 <exec_byte_code+1736>, 0x555555856e38 <exec_byte_code+3776>, 0x555555856ebc <exec_byte_code+3908>, 0x555555856f3d <exec_byte_code+4037>, 0x555555857191 <exec_byte_code+4633>, 0x5555558571a6 <exec_byte_code+4654>, 0x555555856ad5 <exec_byte_code+2909>, 0x555555857260 <exec_byte_code+4840>, 0x5555558572ce <exec_byte_code+4950>, 0x55555585735f <exec_byte_code+5095>, 0x5555558573a8 <exec_byte_code+5168>, 0x555555857589 <exec_byte_code+5649>, 0x555555857606 <exec_byte_code+5774>, 0x55555585768b <exec_byte_code+5907>, 0x5555558576f1 <exec_byte_code+6009>, 0x555555856d39 <exec_byte_code+3521>, 0x5555558592d2 <exec_byte_code+13146>, 0x555555859357 <exec_byte_code+13279>, 0x55555585939f <exec_byte_code+13351>, 0x5555558593e7 <exec_byte_code+13423>, 0x55555585942f <exec_byte_code+13495>, 0x555555859477 <exec_byte_code+13567>, 0x5555558594df <exec_byte_code+13671>, 0x555555859547 <exec_byte_code+13775>, 0x5555558595af <exec_byte_code+13879>, 0x555555859617 <exec_byte_code+13983>, 0x555555859760 <exec_byte_code+14312>, 0x5555558597c8 <exec_byte_code+14416>, 0x555555859830 <exec_byte_code+14520>, 0x555555859878 <exec_byte_code+14592>, 0x5555558598e0 <exec_byte_code+14696>, 0x555555859948 <exec_byte_code+14800>, 0x555555859990 <exec_byte_code+14872>, 0x5555558599d8 <exec_byte_code+14944>, 0x555555858870 <exec_byte_code+10488>, 0x5555558588bf <exec_byte_code+10567>, 0x555555859a27 <exec_byte_code+15023>, 0x555555859a89 <exec_byte_code+15121>, 0x555555859aeb <exec_byte_code+15219>, 0x555555856fbe <exec_byte_code+4166>, 0x555555856fdb <exec_byte_code+4195>, 0x55555585704a <exec_byte_code+4306>, 0x5555558570b9 <exec_byte_code+4417>, 0x555555857125 <exec_byte_code+4525>, 0x555555857c79 <exec_byte_code+7425>, 0x555555858160 <exec_byte_code+8680>, 0x555555858a14 <exec_byte_code+10908>, 0x555555859c82 <exec_byte_code+15626>, 0x555555859cf7 <exec_byte_code+15743>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859d8d <exec_byte_code+15893>, 0x555555859e14 <exec_byte_code+16028>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859f62 <exec_byte_code+16362> <repeats 64 times>} const_length = 51 bytestr_length = 494 vectorp = 0x7ffff2908528 quitcounter = 59 ';' stack_items = 24 sa_avail = 15698 sa_count = 7 alloc = 0x7fffffffcc80 stack_base = 0x7fffffffcc80 top = 0x7fffffffccb0 stack_lim = 0x7fffffffcd40 bytestr_data = 0x7fffffffcd40 "\211??\205\355\001\b\302p\001\031\303\304\302\"r\211q\210\305\306\002\"\216\004c\210eb\210`dW\203\345\001`lj\211\211g\310U\203\234\001\311\061:" pc = 0x7fffffffcf28 "\262\001)\266\203\207" count = 7 result = XIL(0) #24 0x00005555557fdd7e in fetch_and_exec_byte_code (fun=XIL(0x7ffff29084f5), syms_left=make_fixnum(257), nargs=1, args=0x7fffffffd3d8) at ../../master/src/eval.c:3036 #25 0x00005555557fe204 in funcall_lambda (fun=XIL(0x7ffff29084f5), nargs=1, arg_vector=0x7fffffffd3d8) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffd350) syms_left = make_fixnum(257) next = XIL(0x555555e63080) lexenv = XIL(0x1800000000) count = 7 i = 93824994985742 optional = false rest = false #26 0x00005555557fd5d7 in Ffuncall (nargs=2, args=0x7fffffffd3d0) at ../../master/src/eval.c:2916 fun = XIL(0x7ffff29084f5) original_fun = XIL(0xcff0) funcar = XIL(0x555555e63080) numargs = 1 val = XIL(0x5af0) count = 6 #27 0x00005555557fcda1 in call1 (fn=XIL(0xcff0), arg1=XIL(0x555556232084)) at ../../master/src/eval.c:2774 #28 0x0000555555830f9f in print_error_message (data=XIL(0x5555584b93b3), stream=XIL(0x30), context=0x7ffff2c64148 "", caller=XIL(0)) at ../../master/src/print.c:944 error_conditions = XIL(0x7ffff2c2da13) errname = XIL(0xb820) errmsg = XIL(0x55555571d57f) file_error = XIL(0x7fffffffd4c0) tail = XIL(0x30) #29 0x000055555572094e in Fcommand_error_default_function (data=XIL(0x5555584b93b3), context=XIL(0x7ffff25734c4), signal=XIL(0)) at ../../master/src/keyboard.c:1032 sf = 0x555556f6f728 #30 0x00005555557fdb25 in funcall_subr (subr=0x555555dd86a0 <Scommand_error_default_function>, numargs=3, args=0x7fffffffd628) at ../../master/src/eval.c:2992 internal_argbuf = {XIL(0x7fffffffd570), XIL(0x1000000000), XIL(0x555555dd86a0), XIL(0x7fffffffd578), make_fixnum(23456248746435), XIL(0x10557f41d5), XIL(0x555555dd86a5), XIL(0x7fffffffd590)} internal_args = 0x7fffffffd628 #31 0x00005555557fd593 in Ffuncall (nargs=4, args=0x7fffffffd620) at ../../master/src/eval.c:2914 fun = XIL(0x555555dd86a5) original_fun = XIL(0x2aaa9ccc8548) funcar = XIL(0x7fffffffd5f0) numargs = 3 val = XIL(0x7fffffffd610) count = 5 #32 0x00005555557fc6b7 in Fapply (nargs=2, args=0x7fffffffd7e8) at ../../master/src/eval.c:2544 i = 4 funcall_nargs = 4 funcall_args = 0x7fffffffd620 spread_arg = XIL(0) fun = XIL(0x555555dd86a5) sa_avail = 16352 sa_count = 5 numargs = 3 retval = XIL(0) #33 0x00005555557fd9bc in funcall_subr (subr=0x555555de04a0 <Sapply>, numargs=2, args=0x7fffffffd7e8) at ../../master/src/eval.c:2967 #34 0x00005555557fd593 in Ffuncall (nargs=3, args=0x7fffffffd7e0) at ../../master/src/eval.c:2914 fun = XIL(0x555555de04a5) original_fun = XIL(0x2d60) funcar = XIL(0x7fffffffd7a0) numargs = 2 val = XIL(0x7fffffffdcc8) count = 4 #35 0x0000555555856c56 in exec_byte_code (bytestr=XIL(0x7ffff258f0e4), vector=XIL(0x7ffff2c1d0fd), maxdepth=make_fixnum(5), args_template=make_fixnum(128), nargs=3, args=0x7fffffffdcc8) at ../../master/src/bytecode.c:632 op = 2 type = (unknown: 0xffffdb10) targets = {0x555555859aeb <exec_byte_code+15219>, 0x555555859b10 <exec_byte_code+15256>, 0x555555859b12 <exec_byte_code+15258>, 0x555555859b14 <exec_byte_code+15260>, 0x555555859b16 <exec_byte_code+15262>, 0x555555859b16 <exec_byte_code+15262>, 0x555555859b7b <exec_byte_code+15363>, 0x555555859bef <exec_byte_code+15479>, 0x555555856516 <exec_byte_code+1438>, 0x555555856518 <exec_byte_code+1440>, 0x55555585651a <exec_byte_code+1442>, 0x55555585651c <exec_byte_code+1444>, 0x55555585651e <exec_byte_code+1446>, 0x55555585651e <exec_byte_code+1446>, 0x555555856524 <exec_byte_code+1452>, 0x5555558564e5 <exec_byte_code+1389>, 0x55555585693c <exec_byte_code+2500>, 0x55555585693e <exec_byte_code+2502>, 0x555555856940 <exec_byte_code+2504>, 0x555555856942 <exec_byte_code+2506>, 0x555555856944 <exec_byte_code+2508>, 0x555555856944 <exec_byte_code+2508>, 0x555555856979 <exec_byte_code+2561>, 0x55555585694a <exec_byte_code+2514>, 0x555555856b6e <exec_byte_code+3062>, 0x555555856b70 <exec_byte_code+3064>, 0x555555856b72 <exec_byte_code+3066>, 0x555555856b74 <exec_byte_code+3068>, 0x555555856b76 <exec_byte_code+3070>, 0x555555856b76 <exec_byte_code+3070>, 0x555555856b28 <exec_byte_code+2992>, 0x555555856b3f <exec_byte_code+3015>, 0x555555856c23 <exec_byte_code+3243>, 0x555555856c25 <exec_byte_code+3245>, 0x555555856c27 <exec_byte_code+3247>, 0x555555856c29 <exec_byte_code+3249>, 0x555555856c2b <exec_byte_code+3251>, 0x555555856c2b <exec_byte_code+3251>, 0x555555856bdd <exec_byte_code+3173>, 0x555555856bf4 <exec_byte_code+3196>, 0x555555856cd5 <exec_byte_code+3421>, 0x555555856cd7 <exec_byte_code+3423>, 0x555555856cd9 <exec_byte_code+3425>, 0x555555856cdb <exec_byte_code+3427>, 0x555555856cdd <exec_byte_code+3429>, 0x555555856cdd <exec_byte_code+3429>, 0x555555856c8f <exec_byte_code+3351>, 0x555555856ca6 <exec_byte_code+3374>, 0x55555585753d <exec_byte_code+5573>, 0x555555857420 <exec_byte_code+5288>, 0x555555857417 <exec_byte_code+5279>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555857777 <exec_byte_code+6143>, 0x55555585788d <exec_byte_code+6421>, 0x5555558578ea <exec_byte_code+6514>, 0x55555585794a <exec_byte_code+6610>, 0x5555558579ac <exec_byte_code+6708>, 0x555555856795 <exec_byte_code+2077>, 0x555555856810 <exec_byte_code+2200>, 0x555555857a25 <exec_byte_code+6829>, 0x5555558566d2 <exec_byte_code+1882>, 0x555555856878 <exec_byte_code+2304>, 0x555555857a8d <exec_byte_code+6933>, 0x555555857af5 <exec_byte_code+7037>, 0x555555857b3d <exec_byte_code+7109>, 0x555555857ba5 <exec_byte_code+7213>, 0x555555857c0b <exec_byte_code+7315>, 0x555555857cf1 <exec_byte_code+7545>, 0x555555857d39 <exec_byte_code+7617>, 0x555555857da1 <exec_byte_code+7721>, 0x555555857e26 <exec_byte_code+7854>, 0x555555857e6e <exec_byte_code+7926>, 0x555555857eb6 <exec_byte_code+7998>, 0x555555857f1e <exec_byte_code+8102>, 0x555555857f86 <exec_byte_code+8206>, 0x555555857fee <exec_byte_code+8310>, 0x555555858073 <exec_byte_code+8443>, 0x5555558580c2 <exec_byte_code+8522>, 0x555555858111 <exec_byte_code+8601>, 0x5555558581d8 <exec_byte_code+8800>, 0x5555558582d1 <exec_byte_code+9049>, 0x5555558583ca <exec_byte_code+9298>, 0x555555858437 <exec_byte_code+9407>, 0x5555558584a4 <exec_byte_code+9516>, 0x555555858511 <exec_byte_code+9625>, 0x55555585857e <exec_byte_code+9734>, 0x5555558585eb <exec_byte_code+9843>, 0x55555585863a <exec_byte_code+9922>, 0x555555858734 <exec_byte_code+10172>, 0x555555858783 <exec_byte_code+10251>, 0x5555558587d2 <exec_byte_code+10330>, 0x555555858821 <exec_byte_code+10409>, 0x555555858927 <exec_byte_code+10671>, 0x555555857297 <exec_byte_code+4895>, 0x555555858982 <exec_byte_code+10762>, 0x5555558589ca <exec_byte_code+10834>, 0x555555858a8c <exec_byte_code+11028>, 0x555555858af5 <exec_byte_code+11133>, 0x555555858b50 <exec_byte_code+11224>, 0x555555858b98 <exec_byte_code+11296>, 0x555555858bdb <exec_byte_code+11363>, 0x555555858c1e <exec_byte_code+11430>, 0x555555858c69 <exec_byte_code+11505>, 0x555555859aeb <exec_byte_code+15219>, 0x555555858cc1 <exec_byte_code+11593>, 0x555555858d04 <exec_byte_code+11660>, 0x555555858d47 <exec_byte_code+11727>, 0x555555858d8a <exec_byte_code+11794>, 0x555555858dcd <exec_byte_code+11861>, 0x555555858e10 <exec_byte_code+11928>, 0x555555857297 <exec_byte_code+4895>, 0x555555859aeb <exec_byte_code+15219>, 0x555555858e58 <exec_byte_code+12000>, 0x555555858eaa <exec_byte_code+12082>, 0x555555858ef2 <exec_byte_code+12154>, 0x555555858f3a <exec_byte_code+12226>, 0x555555858fa2 <exec_byte_code+12330>, 0x55555585900a <exec_byte_code+12434>, 0x555555859052 <exec_byte_code+12506>, 0x55555585910f <exec_byte_code+12695>, 0x555555859177 <exec_byte_code+12799>, 0x5555558591df <exec_byte_code+12903>, 0x555555859247 <exec_byte_code+13007>, 0x55555585928a <exec_byte_code+13074>, 0x555555859aeb <exec_byte_code+15219>, 0x5555558571dd <exec_byte_code+4709>, 0x555555856d87 <exec_byte_code+3599>, 0x555555856640 <exec_byte_code+1736>, 0x555555856e38 <exec_byte_code+3776>, 0x555555856ebc <exec_byte_code+3908>, 0x555555856f3d <exec_byte_code+4037>, 0x555555857191 <exec_byte_code+4633>, 0x5555558571a6 <exec_byte_code+4654>, 0x555555856ad5 <exec_byte_code+2909>, 0x555555857260 <exec_byte_code+4840>, 0x5555558572ce <exec_byte_code+4950>, 0x55555585735f <exec_byte_code+5095>, 0x5555558573a8 <exec_byte_code+5168>, 0x555555857589 <exec_byte_code+5649>, 0x555555857606 <exec_byte_code+5774>, 0x55555585768b <exec_byte_code+5907>, 0x5555558576f1 <exec_byte_code+6009>, 0x555555856d39 <exec_byte_code+3521>, 0x5555558592d2 <exec_byte_code+13146>, 0x555555859357 <exec_byte_code+13279>, 0x55555585939f <exec_byte_code+13351>, 0x5555558593e7 <exec_byte_code+13423>, 0x55555585942f <exec_byte_code+13495>, 0x555555859477 <exec_byte_code+13567>, 0x5555558594df <exec_byte_code+13671>, 0x555555859547 <exec_byte_code+13775>, 0x5555558595af <exec_byte_code+13879>, 0x555555859617 <exec_byte_code+13983>, 0x555555859760 <exec_byte_code+14312>, 0x5555558597c8 <exec_byte_code+14416>, 0x555555859830 <exec_byte_code+14520>, 0x555555859878 <exec_byte_code+14592>, 0x5555558598e0 <exec_byte_code+14696>, 0x555555859948 <exec_byte_code+14800>, 0x555555859990 <exec_byte_code+14872>, 0x5555558599d8 <exec_byte_code+14944>, 0x555555858870 <exec_byte_code+10488>, 0x5555558588bf <exec_byte_code+10567>, 0x555555859a27 <exec_byte_code+15023>, 0x555555859a89 <exec_byte_code+15121>, 0x555555859aeb <exec_byte_code+15219>, 0x555555856fbe <exec_byte_code+4166>, 0x555555856fdb <exec_byte_code+4195>, 0x55555585704a <exec_byte_code+4306>, 0x5555558570b9 <exec_byte_code+4417>, 0x555555857125 <exec_byte_code+4525>, 0x555555857c79 <exec_byte_code+7425>, 0x555555858160 <exec_byte_code+8680>, 0x555555858a14 <exec_byte_code+10908>, 0x555555859c82 <exec_byte_code+15626>, 0x555555859cf7 <exec_byte_code+15743>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859d8d <exec_byte_code+15893>, 0x555555859e14 <exec_byte_code+16028>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859aeb <exec_byte_code+15219>, 0x555555859f62 <exec_byte_code+16362> <repeats 64 times>} const_length = 4 bytestr_length = 10 vectorp = 0x7ffff2c1d100 quitcounter = 1 '\001' stack_items = 6 sa_avail = 16326 sa_count = 4 alloc = 0x7fffffffd7d0 stack_base = 0x7fffffffd7d0 top = 0x7fffffffd7e0 stack_lim = 0x7fffffffd800 bytestr_data = 0x7fffffffd800 "\300\302\002\"\300\301\003\"\210\207" pc = 0x7fffffffd804 "\300\301\003\"\210\207" count = 4 result = XIL(0x5555557f41d5) #36 0x00005555557fdd7e in fetch_and_exec_byte_code (fun=XIL(0x7ffff2c1d0cd), syms_left=make_fixnum(128), nargs=3, args=0x7fffffffdcc8) at ../../master/src/eval.c:3036 #37 0x00005555557fe204 in funcall_lambda (fun=XIL(0x7ffff2c1d0cd), nargs=3, arg_vector=0x7fffffffdcc8) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffdc30) syms_left = make_fixnum(128) next = make_fixnum(2) lexenv = XIL(0x1800000003) count = 4 i = 93824994985742 optional = false rest = false #38 0x00005555557fd5d7 in Ffuncall (nargs=4, args=0x7fffffffdcc0) at ../../master/src/eval.c:2916 fun = XIL(0x7ffff2c1d0cd) original_fun = XIL(0x7ffff2c1d0cd) funcar = XIL(0x7fffffffdc70) numargs = 3 val = XIL(0x7fffffffdc90) count = 3 #39 0x00005555557fce2b in call3 (fn=XIL(0x7ffff2c1d0cd), arg1=XIL(0x5555584b93b3), arg2=XIL(0x7ffff25734c4), arg3=XIL(0)) at ../../master/src/eval.c:2788 #40 0x0000555555720769 in cmd_error_internal (data=XIL(0x5555584b93b3), context=0x7fffffffdd70 "") at ../../master/src/keyboard.c:987 #41 0x0000555555720637 in cmd_error (data=XIL(0x5555584b93b3)) at ../../master/src/keyboard.c:956 old_level = XIL(0) old_length = XIL(0) macroerror = "\000\000\000\000\000\000\000\000\360\350\365UUU\000\000\260\335\377\377\001\000\000\000\002\000\000\000\000\000\000\000\000x\000\000\000\000\000\000\230\227\177UUU\000\000\360h" #42 0x00005555557f9347 in internal_condition_case (bfun=0x555555720ec1 <command_loop_1>, handlers=XIL(0x90), hfun=0x5555557204e4 <cmd_error>) at ../../master/src/eval.c:1435 val = XIL(0x5555584b93b3) c = 0x555555f5e8f0 #43 0x0000555555720ab1 in command_loop_2 (ignore=XIL(0)) at ../../master/src/keyboard.c:1094 val = make_fixnum(0) #44 0x00005555557f875f in internal_catch (tag=XIL(0xd9e0), func=0x555555720a84 <command_loop_2>, arg=XIL(0)) at ../../master/src/eval.c:1189 val = XIL(0xd9e0) c = 0x555555f47770 #45 0x0000555555720a50 in command_loop () at ../../master/src/keyboard.c:1073 #46 0x000055555571ffcd in recursive_edit_1 () at ../../master/src/keyboard.c:720 count = 1 val = XIL(0x7fffffffdf00) #47 0x00005555557201c4 in Frecursive_edit () at ../../master/src/keyboard.c:789 count = 0 buffer = XIL(0) #48 0x000055555571c0a9 in main (argc=2, argv=0x7fffffffe168) at ../../master/src/emacs.c:2050 stack_bottom_variable = 0x7ffff617e053 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 1 temacs = 0x0 attempt_load_pdump = true rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = 0x0 sockfd = -1 module_assertions = false Lisp Backtrace: "window-list-1" (0xffffbfa0) "replace-buffer-in-windows" (0xffffc4a8) "kill-buffer" (0xffffc710) 0x57821b48 PVEC_COMPILED "substitute-command-keys" (0xffffd3d8) "command-error-default-function" (0xffffd628) "apply" (0xffffd7e8) 0xf2c1d0c8 PVEC_COMPILED -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 17:37 ` Michael Welsh Duggan @ 2021-04-07 17:55 ` Michael Welsh Duggan 2021-04-07 18:31 ` Michael Welsh Duggan 2021-04-07 18:48 ` martin rudalics 2 siblings, 0 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-07 17:55 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org Michael Welsh Duggan <mwd@cert.org> writes: > martin rudalics <rudalics@gmx.at> writes: > >> > Don't know where to go from here, but I have a breakpoint set on >> > >> > replace_buffer_in_windows_safely_count = 0; >> > >> > conditioned on count != 0. >> >> Good. IIUC this >> >> > (gdb) p list_length(Vwindow_list) >> > $2 = 2 >> >> and this >> >> > (gdb) xlist >> > $13 = 0x1a >> > Lisp_Int0 >> > $14 = 6 >> >> together indicate that Vwindow_list spontaneously shrinks from 6 to 2 >> elements (which is "impossible" as we know already). Attaching the next >> patch which should catch this situation automatically. It will still be >> of no help because we won't catch the one that apparently clobbers that >> list but hopefully more useful than the previous diff. > > Triggered. Here's the backtrace: [...] And, to be clear: (gdb) up #2 0x000055555564b3ea in window_list () at ../../master/src/window.c:2585 2585 eassert (window_list_length == list_length (Vwindow_list)); (gdb) p window_list_length $1 = 6 (gdb) p list_length(Vwindow_list) $2 = 2 -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 17:37 ` Michael Welsh Duggan 2021-04-07 17:55 ` Michael Welsh Duggan @ 2021-04-07 18:31 ` Michael Welsh Duggan 2021-04-07 19:25 ` Michael Welsh Duggan 2021-04-07 19:40 ` Eli Zaretskii 2021-04-07 18:48 ` martin rudalics 2 siblings, 2 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-07 18:31 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org Michael Welsh Duggan <mwd@cert.org> writes: > martin rudalics <rudalics@gmx.at> writes: > >> > Don't know where to go from here, but I have a breakpoint set on >> > >> > replace_buffer_in_windows_safely_count = 0; >> > >> > conditioned on count != 0. >> >> Good. IIUC this >> >> > (gdb) p list_length(Vwindow_list) >> > $2 = 2 >> >> and this >> >> > (gdb) xlist >> > $13 = 0x1a >> > Lisp_Int0 >> > $14 = 6 >> >> together indicate that Vwindow_list spontaneously shrinks from 6 to 2 >> elements (which is "impossible" as we know already). Attaching the next >> patch which should catch this situation automatically. It will still be >> of no help because we won't catch the one that apparently clobbers that >> list but hopefully more useful than the previous diff. > > Triggered. Here's the backtrace: Context for what was going on when the assert was triggered: As usual, when triggering this, I had turned off the VPN, and Gnus hung when trying to fetch mail or news over an existing connection. I typed C-g a couple of times to get back interactivity. This is when the assert happened. In past instances the next step would have been to bring up the *Server* buffer, close and re-open connections, and then quit the *Server* buffer. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 18:31 ` Michael Welsh Duggan @ 2021-04-07 19:25 ` Michael Welsh Duggan 2021-04-07 20:25 ` martin rudalics 2021-04-07 19:40 ` Eli Zaretskii 1 sibling, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-07 19:25 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org Michael Welsh Duggan <mwd@cert.org> writes: > Michael Welsh Duggan <mwd@cert.org> writes: > >> martin rudalics <rudalics@gmx.at> writes: >> >>> > Don't know where to go from here, but I have a breakpoint set on >>> > >>> > replace_buffer_in_windows_safely_count = 0; >>> > >>> > conditioned on count != 0. >>> >>> Good. IIUC this >>> >>> > (gdb) p list_length(Vwindow_list) >>> > $2 = 2 >>> >>> and this >>> >>> > (gdb) xlist >>> > $13 = 0x1a >>> > Lisp_Int0 >>> > $14 = 6 >>> >>> together indicate that Vwindow_list spontaneously shrinks from 6 to 2 >>> elements (which is "impossible" as we know already). Attaching the next >>> patch which should catch this situation automatically. It will still be >>> of no help because we won't catch the one that apparently clobbers that >>> list but hopefully more useful than the previous diff. Using watchpoints on Vwindow_list that are turned off when in window_list() and ignored when it is set to nil, I was at least able to determine that whatever is modifying the list is doing so destructively, not by setting a new value. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 19:25 ` Michael Welsh Duggan @ 2021-04-07 20:25 ` martin rudalics 2021-04-07 20:32 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-07 20:25 UTC (permalink / raw) To: Michael Welsh Duggan Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org > Using watchpoints on Vwindow_list that are turned off when in > window_list() and ignored when it is set to nil, I was at least able to > determine that whatever is modifying the list is doing so destructively, > not by setting a new value. Since I don't believe in miracles I expected that. But I've been searching our code base repeatedly and nowhere found a clue that that list - the return value of window_list - would be modified in such a deterministic and orderly way. Maybe I'm blind already. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 20:25 ` martin rudalics @ 2021-04-07 20:32 ` Michael Welsh Duggan 2021-04-08 6:59 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-07 20:32 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org, Michael Welsh Duggan martin rudalics <rudalics@gmx.at> writes: >> Using watchpoints on Vwindow_list that are turned off when in >> window_list() and ignored when it is set to nil, I was at least able to >> determine that whatever is modifying the list is doing so destructively, >> not by setting a new value. > > Since I don't believe in miracles I expected that. But I've been > searching our code base repeatedly and nowhere found a clue that that > list - the return value of window_list - would be modified in such a > deterministic and orderly way. Maybe I'm blind already. FWIW, I've been trying to do the same and have been similarly unsuccessful. -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 20:32 ` Michael Welsh Duggan @ 2021-04-08 6:59 ` martin rudalics 2021-04-08 10:47 ` Gregory Heytings 2021-04-08 14:35 ` Michael Welsh Duggan 0 siblings, 2 replies; 160+ messages in thread From: martin rudalics @ 2021-04-08 6:59 UTC (permalink / raw) To: Michael Welsh Duggan Cc: schwab@linux-m68k.org, 47244@debbugs.gnu.org, Michael Welsh Duggan [-- Attachment #1: Type: text/plain, Size: 575 bytes --] > FWIW, I've been trying to do the same and have been similarly > unsuccessful. I attach a version where I make a shadow copy of Vwindow_list called Vwindow_list_2. The two should behave the same just that Vwindow_list_2 is never accessed by other code. So we can put an assertion like eassert (!NILP (Fequal (Vwindow_list, Vwindow_list_2))); anywhere in the code. I put one in window_list and it should trigger the same way as the length check before. Now if anyone can suggest some strategic positions where to put these assertions, I'll be all ears. martin [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: selected_window_contents.diff --] [-- Type: text/x-patch; name="selected_window_contents.diff", Size: 11404 bytes --] diff --git a/src/buffer.c b/src/buffer.c index 8e33162989..70b37e61a2 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1951,6 +1951,9 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", This gets rid of them for certain. */ reset_buffer_local_variables (b, 1); + if (!b->base_buffer) + eassert (b->window_count == 0); + bset_name (b, Qnil); block_input (); @@ -1991,6 +1994,8 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", run_buffer_list_update_hook (b); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qt; } \f @@ -2151,6 +2156,9 @@ set_buffer_internal_1 (register struct buffer *b) BUFFER_CHECK_INDIRECTION (b); + if (!BUFFER_LIVE_P (b)) + error ("Selecting deleted buffer"); + old_buf = current_buffer; current_buffer = b; last_known_column_point = -1; /* Invalidate indentation cache. */ diff --git a/src/nsfns.m b/src/nsfns.m index 5c4cc915e7..82136b0639 100644 --- a/src/nsfns.m +++ b/src/nsfns.m @@ -1447,7 +1447,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side. /* Make sure windows on this frame appear in calls to next-window and similar functions. */ - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; return unbind_to (count, frame); } diff --git a/src/w32fns.c b/src/w32fns.c index 9db367bfaf..f2d5e34c3e 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -6148,7 +6148,7 @@ DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame, /* Make sure windows on this frame appear in calls to next-window and similar functions. */ - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; return unbind_to (count, frame); } diff --git a/src/window.c b/src/window.c index eb16e2a433..da0d2bc57d 100644 --- a/src/window.c +++ b/src/window.c @@ -86,6 +86,7 @@ Functions creating or deleting windows should invalidate this cache by setting it to nil. */ Lisp_Object Vwindow_list; +Lisp_Object Vwindow_list_2; /* True mean window_change_record has to record all live frames. */ static bool window_change_record_frames; @@ -307,7 +308,11 @@ wset_buffer (struct window *w, Lisp_Object val) if (BUFFERP (val)) /* Make sure that we do not assign the buffer to an internal window. */ - eassert (MARKERP (w->start) && MARKERP (w->pointm)); + { + eassert (BUFFER_LIVE_P (XBUFFER (val))); + eassert (MARKERP (w->start) && MARKERP (w->pointm)); + } + w->contents = val; adjust_window_count (w, 1); } @@ -315,6 +320,7 @@ wset_buffer (struct window *w, Lisp_Object val) static void wset_old_buffer (struct window *w, Lisp_Object val) { + eassert (BUFFER_LIVE_P (XBUFFER (val))); w->old_buffer = val; } @@ -594,6 +600,8 @@ select_window_1 (Lisp_Object window, bool inhibit_point_swap) selected_window = window; + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Go to the point recorded in the window. This is important when the buffer is in more than one window. It also matters when @@ -2569,7 +2577,11 @@ window_list (void) arglist = Fnreverse (arglist); Vwindow_list = nconc2 (Vwindow_list, arglist); } + + Vwindow_list_2 = Fcopy_sequence (Vwindow_list); } + else + eassert (!NILP (Fequal (Vwindow_list, Vwindow_list_2))); return Vwindow_list; } @@ -2950,6 +2962,8 @@ DEFUN ("window-list-1", Fwindow_list_1, Swindow_list_1, 0, 3, 0, CHECK_ALL_WINDOWS /* Arg is ignored */ }; +static int replace_buffer_in_windows_safely_count; + static Lisp_Object window_loop (enum window_loop type, Lisp_Object obj, bool mini, Lisp_Object frames) @@ -3048,6 +3062,8 @@ window_loop (enum window_loop type, Lisp_Object obj, bool mini, if (EQ (window, selected_window) && XBUFFER (w->contents) == current_buffer) Fset_buffer (w->contents); + + replace_buffer_in_windows_safely_count += 1; } break; @@ -3277,7 +3293,7 @@ DEFUN ("delete-other-windows-internal", Fdelete_other_windows_internal, free_window_matrices (r); fset_redisplay (f); - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; if (!WINDOW_LEAF_P (w)) { @@ -3411,6 +3427,8 @@ DEFUN ("delete-other-windows-internal", Fdelete_other_windows_internal, replace_buffer_in_windows (Lisp_Object buffer) { call1 (Qreplace_buffer_in_windows, buffer); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* If BUFFER is shown in a window, safely replace it with some other @@ -3419,7 +3437,28 @@ replace_buffer_in_windows (Lisp_Object buffer) void replace_buffer_in_windows_safely (Lisp_Object buffer) { - if (buffer_window_count (XBUFFER (buffer))) + if (!NILP (Fstring_equal (XBUFFER (buffer)->name_, + build_string ("*Server*")))) + { + int count = buffer_window_count (XBUFFER (buffer)); + + replace_buffer_in_windows_safely_count = 0; + + + if (buffer_window_count (XBUFFER (buffer))) + { + Lisp_Object tail, frame; + + /* A single call to window_loop won't do the job because it only + considers frames on the current keyboard. So loop manually over + frames, and handle each one. */ + FOR_EACH_FRAME (tail, frame) + window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); + } + + eassert (count == replace_buffer_in_windows_safely_count); + } + else if (buffer_window_count (XBUFFER (buffer))) { Lisp_Object tail, frame; @@ -3960,6 +3999,8 @@ run_window_change_functions (void) /* Record changes for all frames (if asked for), selected window and frame. */ unbind_to (count, Qnil); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Make WINDOW display BUFFER. RUN_HOOKS_P means it's allowed @@ -4054,6 +4095,9 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer, if (!samebuf && !MINI_WINDOW_P (w) && !WINDOW_PSEUDO_P (w)) FRAME_WINDOW_CHANGE (XFRAME (w->frame)) = true; + if (WINDOWP (selected_window)) + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + unbind_to (count, Qnil); } @@ -4296,7 +4340,7 @@ make_window (void) w->scroll_bar_height = -1; w->column_number_displayed = -1; /* Reset window_list. */ - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; /* Return window. */ XSETWINDOW (window, w); return window; @@ -5086,7 +5130,7 @@ DEFUN ("delete-window-internal", Fdelete_window_internal, Sdelete_window_interna } fset_redisplay (f); - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; wset_next (w, Qnil); /* Don't delete w->next too. */ free_window_matrices (w); @@ -5174,6 +5218,8 @@ DEFUN ("delete-window-internal", Fdelete_window_internal, Sdelete_window_interna error ("Deletion failed"); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qnil; } \f @@ -7233,6 +7279,9 @@ DEFUN ("set-window-configuration", Fset_window_configuration, minibuf_selected_window = data->minibuf_selected_window; SAFE_FREE (); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return FRAME_LIVE_P (f) ? Qt : Qnil; } @@ -7279,7 +7328,7 @@ delete_all_child_windows (Lisp_Object window) wset_buffer (w, Qnil); } - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; } \f static ptrdiff_t @@ -8128,8 +8177,9 @@ init_window_once (void) selected_window = Qnil; staticpro (&selected_window); - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; staticpro (&Vwindow_list); + staticpro (&Vwindow_list_2); minibuf_selected_window = Qnil; staticpro (&minibuf_selected_window); @@ -8148,6 +8198,7 @@ init_window_once (void) PDUMPER_RESET_LV (minibuf_window, Qnil); PDUMPER_RESET_LV (selected_window, Qnil); PDUMPER_RESET_LV (Vwindow_list, Qnil); + PDUMPER_RESET_LV (Vwindow_list_2, Qnil); PDUMPER_RESET_LV (minibuf_selected_window, Qnil); /* Hack: if mode_line_in_non_selected_windows is true (which it may @@ -8178,7 +8229,7 @@ init_window_once (void) void init_window (void) { - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; } void diff --git a/src/window.h b/src/window.h index b6f88e8f55..74d3cbb7be 100644 --- a/src/window.h +++ b/src/window.h @@ -1171,6 +1171,7 @@ #define CHECK_LIVE_WINDOW(WINDOW) \ /* These used to be in lisp.h. */ extern Lisp_Object Vwindow_list; +extern Lisp_Object Vwindow_list_2; extern Lisp_Object window_list (void); extern Lisp_Object window_parameter (struct window *, Lisp_Object parameter); diff --git a/src/xdisp.c b/src/xdisp.c index cc0a689ba3..ea64e5037a 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -12980,6 +12980,8 @@ restore_selected_window (Lisp_Object window) /* Abort if we cannot find a live frame. */ emacs_abort (); } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Restore WINDOW, if live, as its frame's selected window. */ @@ -12997,6 +12999,8 @@ restore_frame_selected_window (Lisp_Object window) if (EQ (frame, selected_frame)) selected_window = window; } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Update the tab-bar item list for frame F. This has to be done @@ -13074,6 +13078,8 @@ update_tab_bar (struct frame *f, bool save_match_data) XSETFRAME (frame, f); selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); #endif /* Build desired tab-bar items from keymaps. */ @@ -14010,6 +14016,8 @@ update_tool_bar (struct frame *f, bool save_match_data) selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Build desired tool-bar items from keymaps. */ new_tool_bar = tool_bar_items (Fcopy_sequence (f->tool_bar_items), @@ -17246,6 +17254,8 @@ run_window_scroll_functions (Lisp_Object window, struct text_pos startp) set_buffer_internal (XBUFFER (w->contents)); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return startp; } @@ -25450,6 +25460,8 @@ display_mode_lines (struct window *w) unbind_to (count, Qnil); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + if (n > 0) w->must_be_updated_p = true; return n; diff --git a/src/xfns.c b/src/xfns.c index d90644819b..fbe9014555 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -4225,7 +4225,7 @@ DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame, /* Make sure windows on this frame appear in calls to next-window and similar functions. */ - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; return unbind_to (count, frame); } ^ permalink raw reply related [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 6:59 ` martin rudalics @ 2021-04-08 10:47 ` Gregory Heytings 2021-04-08 11:39 ` Eli Zaretskii 2021-04-08 12:03 ` martin rudalics 2021-04-08 14:35 ` Michael Welsh Duggan 1 sibling, 2 replies; 160+ messages in thread From: Gregory Heytings @ 2021-04-08 10:47 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244, Michael Welsh Duggan > > Now if anyone can suggest some strategic positions where to put these > assertions, I'll be all ears. > I'm really impressed by your patience. I have no suggestion, but a question: why don't you try to bisect this bug? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 10:47 ` Gregory Heytings @ 2021-04-08 11:39 ` Eli Zaretskii 2021-04-08 12:06 ` Andreas Schwab 2021-04-08 12:03 ` martin rudalics 1 sibling, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-04-08 11:39 UTC (permalink / raw) To: Gregory Heytings; +Cc: mwd, schwab, 47244, mwd > Date: Thu, 08 Apr 2021 10:47:55 +0000 > From: Gregory Heytings <gregory@heytings.org> > Cc: Michael Welsh Duggan <mwd@md5i.com>, > "schwab@linux-m68k.org" <schwab@linux-m68k.org>, 47244@debbugs.gnu.org, > Michael Welsh Duggan <mwd@cert.org> > > I have no suggestion, but a question: why don't you try to bisect > this bug? Bisection requires to know the last commit where the bug didn't exist. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 11:39 ` Eli Zaretskii @ 2021-04-08 12:06 ` Andreas Schwab 2021-04-08 12:29 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Andreas Schwab @ 2021-04-08 12:06 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd, Gregory Heytings, 47244, mwd On Apr 08 2021, Eli Zaretskii wrote: > Bisection requires to know the last commit where the bug didn't exist. Not the *last* commit, that what bisection is for to find out. It just requires *any* commit where the bug didn't exist. But it also requires a reliable on/off condition for the bug. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 12:06 ` Andreas Schwab @ 2021-04-08 12:29 ` Eli Zaretskii 2021-04-08 12:43 ` Gregory Heytings 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-04-08 12:29 UTC (permalink / raw) To: Andreas Schwab; +Cc: mwd, gregory, 47244, mwd > From: Andreas Schwab <schwab@linux-m68k.org> > Cc: Gregory Heytings <gregory@heytings.org>, rudalics@gmx.at, > mwd@md5i.com, 47244@debbugs.gnu.org, mwd@cert.org > Date: Thu, 08 Apr 2021 14:06:14 +0200 > > On Apr 08 2021, Eli Zaretskii wrote: > > > Bisection requires to know the last commit where the bug didn't exist. > > Not the *last* commit, that what bisection is for to find out. It just > requires *any* commit where the bug didn't exist. Right, but that's unknown as well here. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 12:29 ` Eli Zaretskii @ 2021-04-08 12:43 ` Gregory Heytings 2021-04-08 12:59 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Gregory Heytings @ 2021-04-08 12:43 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd, Andreas Schwab, 47244, mwd >>> Bisection requires to know the last commit where the bug didn't exist. >> >> Not the *last* commit, that what bisection is for to find out. It just >> requires *any* commit where the bug didn't exist. > > Right, but that's unknown as well here. > Usually the first step in bisecting is to find some distant commit where the bug did not exist. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 12:43 ` Gregory Heytings @ 2021-04-08 12:59 ` Eli Zaretskii 2021-04-08 16:20 ` Gregory Heytings 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-04-08 12:59 UTC (permalink / raw) To: Gregory Heytings; +Cc: mwd, schwab, 47244, mwd > Date: Thu, 08 Apr 2021 12:43:02 +0000 > From: Gregory Heytings <gregory@heytings.org> > cc: Andreas Schwab <schwab@linux-m68k.org>, mwd@md5i.com, > 47244@debbugs.gnu.org, mwd@cert.org > > >>> Bisection requires to know the last commit where the bug didn't exist. > >> > >> Not the *last* commit, that what bisection is for to find out. It just > >> requires *any* commit where the bug didn't exist. > > > > Right, but that's unknown as well here. > > > > Usually the first step in bisecting is to find some distant commit where > the bug did not exist. Sure, but given the time it takes to reproduce the problem, that could take much longer than what Martin is doing now. And if you go far enough into the past, Emacs will stop building successfully, so you are stuck there. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 12:59 ` Eli Zaretskii @ 2021-04-08 16:20 ` Gregory Heytings 0 siblings, 0 replies; 160+ messages in thread From: Gregory Heytings @ 2021-04-08 16:20 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd, schwab, 47244, mwd >>>>> Bisection requires to know the last commit where the bug didn't >>>>> exist. >>>> >>>> Not the *last* commit, that what bisection is for to find out. It >>>> just requires *any* commit where the bug didn't exist. >>> >>> Right, but that's unknown as well here. >> >> Usually the first step in bisecting is to find some distant commit >> where the bug did not exist. > > Sure, but given the time it takes to reproduce the problem, that could > take much longer than what Martin is doing now. And if you go far > enough into the past, Emacs will stop building successfully, so you are > stuck there. > IIUC the problems happens once a day or so. I'd try to see if it still happens with HEAD~2500, HEAD~5000, HEAD~7500, HEAD~10000. All of them build successfully, and doing this doesn't cost anything. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 10:47 ` Gregory Heytings 2021-04-08 11:39 ` Eli Zaretskii @ 2021-04-08 12:03 ` martin rudalics 2021-04-08 12:24 ` Gregory Heytings 1 sibling, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-08 12:03 UTC (permalink / raw) To: Gregory Heytings Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244, Michael Welsh Duggan > I have no suggestion, but a question: why don't you try to bisect this bug? Probably because this bug sits just around the corner - we are only not able to see it. Bisecting is problematic for two reasons: It takes Michael some time to reproduce the bug and it's not yet clear whether the functionality of an older Emacs would allow him to reproduce that bug in the first place. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 12:03 ` martin rudalics @ 2021-04-08 12:24 ` Gregory Heytings 2021-04-08 13:39 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: Gregory Heytings @ 2021-04-08 12:24 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244, Michael Welsh Duggan >> I have no suggestion, but a question: why don't you try to bisect this >> bug? > > Probably because this bug sits just around the corner - we are only not > able to see it. Bisecting is problematic for two reasons: It takes > Michael some time to reproduce the bug and it's not yet clear whether > the functionality of an older Emacs would allow him to reproduce that > bug in the first place. > I see, but still, given the time you've already spent on this, would it not be easier to check whether say HEAD~2000 already has the bug? IIUC the reproduction is always under the same condition: resetting Gnus after switching the VPN. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 12:24 ` Gregory Heytings @ 2021-04-08 13:39 ` Michael Welsh Duggan 0 siblings, 0 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-08 13:39 UTC (permalink / raw) To: Gregory Heytings Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org Gregory Heytings <gregory@heytings.org> writes: >>> I have no suggestion, but a question: why don't you try to bisect this >>> bug? >> >> Probably because this bug sits just around the corner - we are only not >> able to see it. Bisecting is problematic for two reasons: It takes >> Michael some time to reproduce the bug and it's not yet clear whether >> the functionality of an older Emacs would allow him to reproduce that >> bug in the first place. >> > > I see, but still, given the time you've already spent on this, would it > not be easier to check whether say HEAD~2000 already has the bug? IIUC > the reproduction is always under the same condition: resetting Gnus after > switching the VPN. Unfortunately, although it always triggers under the same condition, it doesn't trigger every time I'm in that condition. In fact, I don't know that I've every been able to trigger it more than twice in a day, even when manually attempting to create the circumstances that might do so. And some days I haven't been able to trigger it at all. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 6:59 ` martin rudalics 2021-04-08 10:47 ` Gregory Heytings @ 2021-04-08 14:35 ` Michael Welsh Duggan 2021-04-08 15:08 ` Eli Zaretskii 2021-04-08 15:21 ` Michael Welsh Duggan 1 sibling, 2 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-08 14:35 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > FWIW, I've been trying to do the same and have been similarly > > unsuccessful. > > I attach a version where I make a shadow copy of Vwindow_list called > Vwindow_list_2. The two should behave the same just that Vwindow_list_2 > is never accessed by other code. So we can put an assertion like > > eassert (!NILP (Fequal (Vwindow_list, Vwindow_list_2))); > > anywhere in the code. I put one in window_list and it should trigger > the same way as the length check before. > > Now if anyone can suggest some strategic positions where to put these > assertions, I'll be all ears. I've yet to run this code yet (will do so shortly), but I'd like to mention that some other debugging I've been doing involving tricky breakpoint commands is implying that, somehow, list_windows() is getting called while list_windows() is still running. I've got a breakpoint at the beginning of the if clause in window_list() and one at the end, and it looks like I'm seeing the first one get called twice without the second getting called inbetween. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 14:35 ` Michael Welsh Duggan @ 2021-04-08 15:08 ` Eli Zaretskii 2021-04-08 15:24 ` Andreas Schwab 2021-04-08 15:21 ` Michael Welsh Duggan 1 sibling, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-04-08 15:08 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Date: Thu, 08 Apr 2021 10:35:53 -0400 > Cc: Michael Welsh Duggan <mwd@md5i.com>, > "schwab@linux-m68k.org" <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > > I've yet to run this code yet (will do so shortly), but I'd like to > mention that some other debugging I've been doing involving tricky > breakpoint commands is implying that, somehow, list_windows() is getting > called while list_windows() is still running. I've got a breakpoint > at the beginning of the if clause in window_list() and one at the end, > and it looks like I'm seeing the first one get called twice without the > second getting called inbetween. That could mean some code signals an error, or throws to catchpoint, before the second breakpoint is hit. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 15:08 ` Eli Zaretskii @ 2021-04-08 15:24 ` Andreas Schwab 0 siblings, 0 replies; 160+ messages in thread From: Andreas Schwab @ 2021-04-08 15:24 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd, 47244, Michael Welsh Duggan On Apr 08 2021, Eli Zaretskii wrote: > That could mean some code signals an error, or throws to catchpoint, > before the second breakpoint is hit. I don't think the window_list function can be interrupted. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 14:35 ` Michael Welsh Duggan 2021-04-08 15:08 ` Eli Zaretskii @ 2021-04-08 15:21 ` Michael Welsh Duggan 2021-04-08 15:33 ` Michael Welsh Duggan ` (2 more replies) 1 sibling, 3 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-08 15:21 UTC (permalink / raw) To: Michael Welsh Duggan Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org Michael Welsh Duggan <mwd@cert.org> writes: > martin rudalics <rudalics@gmx.at> writes: > >> > FWIW, I've been trying to do the same and have been similarly >> > unsuccessful. >> >> I attach a version where I make a shadow copy of Vwindow_list called >> Vwindow_list_2. The two should behave the same just that Vwindow_list_2 >> is never accessed by other code. So we can put an assertion like >> >> eassert (!NILP (Fequal (Vwindow_list, Vwindow_list_2))); >> >> anywhere in the code. I put one in window_list and it should trigger >> the same way as the length check before. >> >> Now if anyone can suggest some strategic positions where to put these >> assertions, I'll be all ears. > > I've yet to run this code yet (will do so shortly), but I'd like to > mention that some other debugging I've been doing involving tricky > breakpoint commands is implying that, somehow, list_windows() is getting > called while list_windows() is still running. I've got a breakpoint > at the beginning of the if clause in window_list() and one at the end, > and it looks like I'm seeing the first one get called twice without the > second getting called inbetween. Okay, close, but not quite. What seems to be happening is this: list_windows() is called while Vwindow_list is nil, and the if branch is taken. Something causes list_windows() to exit without reaching the end of the if block. This leaves Vwindow_list partially created. The next time list_windows() is called it returns the partially created list. To determine this I put a breakpoint at the beginning of the if block that sets a gdb convenience variable called $in_list_windows to one and continues. I put a breakpoint at the end of that block that sets it to zero and continues. I put a third condition breakpoint at the entrance to list_windows() that only triggers if $in_list_windows is one. This triggered with the included backtrace. Once again, the state triggered when, due to the VPN state changing, a background gnus demon hung trying to fetch mail. The trigger was me hitting C-g twice rapidly in succession to regain interactivity. Can anyone recommend a means to check if this my theory is true? Does list_windows() need to be protected against quit? #0 window_list () at ../../master/src/window.c:2566 #1 0x000055555564c0be in window_list_1 (window=XIL(0x555556f6f995), minibuf=XIL(0xc0), all_frames=XIL(0x30)) at ../../master/src/window.c:2886 tail = XIL(0x7ffff26647bd) list = XIL(0) rest = XIL(0x7ffff26647c0) #2 0x000055555564c404 in Fwindow_list_1 (window=XIL(0), minibuf=XIL(0), all_frames=XIL(0x30)) at ../../master/src/window.c:2960 #3 0x00005555557fdc14 in funcall_subr (subr=0x555555dd4960 <Swindow_list_1>, numargs=3, args=0x7fffffffbfa0) at ../../master/src/eval.c:2992 internal_argbuf = {XIL(0x7fffffffbed0), XIL(0x1000000000), XIL(0x555555dd4960), XIL(0x7fffffffbed8), XIL(0x5555557f47fd), XIL(0x10557f42c4), XIL(0x555555dd4965), XIL(0x7fffffffbef0)} internal_args = 0x7fffffffbfa0 #4 0x00005555557fd682 in Ffuncall (nargs=4, args=0x7fffffffbf98) at ../../master/src/eval.c:2914 fun = XIL(0x555555dd4965) original_fun = XIL(0x2aaa9c71a7a8) funcar = XIL(0x7fffffffbf50) numargs = 3 val = XIL(0x55555854b805) count = 12 #5 0x0000555555856d45 in exec_byte_code (bytestr=XIL(0x7ffff277c864), vector=XIL(0x7ffff277c80d), maxdepth=make_fixnum(8), args_template=make_fixnum(256), nargs=1, args=0x7fffffffc4b0) at ../../master/src/bytecode.c:632 op = 3 type = (CONDITION_CASE | unknown: 0x8) targets = {0x555555859bda <exec_byte_code+15219>, 0x555555859bff <exec_byte_code+15256>, 0x555555859c01 <exec_byte_code+15258>, 0x555555859c03 <exec_byte_code+15260>, 0x555555859c05 <exec_byte_code+15262>, 0x555555859c05 <exec_byte_code+15262>, 0x555555859c6a <exec_byte_code+15363>, 0x555555859cde <exec_byte_code+15479>, 0x555555856605 <exec_byte_code+1438>, 0x555555856607 <exec_byte_code+1440>, 0x555555856609 <exec_byte_code+1442>, 0x55555585660b <exec_byte_code+1444>, 0x55555585660d <exec_byte_code+1446>, 0x55555585660d <exec_byte_code+1446>, 0x555555856613 <exec_byte_code+1452>, 0x5555558565d4 <exec_byte_code+1389>, 0x555555856a2b <exec_byte_code+2500>, 0x555555856a2d <exec_byte_code+2502>, 0x555555856a2f <exec_byte_code+2504>, 0x555555856a31 <exec_byte_code+2506>, 0x555555856a33 <exec_byte_code+2508>, 0x555555856a33 <exec_byte_code+2508>, 0x555555856a68 <exec_byte_code+2561>, 0x555555856a39 <exec_byte_code+2514>, 0x555555856c5d <exec_byte_code+3062>, 0x555555856c5f <exec_byte_code+3064>, 0x555555856c61 <exec_byte_code+3066>, 0x555555856c63 <exec_byte_code+3068>, 0x555555856c65 <exec_byte_code+3070>, 0x555555856c65 <exec_byte_code+3070>, 0x555555856c17 <exec_byte_code+2992>, 0x555555856c2e <exec_byte_code+3015>, 0x555555856d12 <exec_byte_code+3243>, 0x555555856d14 <exec_byte_code+3245>, 0x555555856d16 <exec_byte_code+3247>, 0x555555856d18 <exec_byte_code+3249>, 0x555555856d1a <exec_byte_code+3251>, 0x555555856d1a <exec_byte_code+3251>, 0x555555856ccc <exec_byte_code+3173>, 0x555555856ce3 <exec_byte_code+3196>, 0x555555856dc4 <exec_byte_code+3421>, 0x555555856dc6 <exec_byte_code+3423>, 0x555555856dc8 <exec_byte_code+3425>, 0x555555856dca <exec_byte_code+3427>, 0x555555856dcc <exec_byte_code+3429>, 0x555555856dcc <exec_byte_code+3429>, 0x555555856d7e <exec_byte_code+3351>, 0x555555856d95 <exec_byte_code+3374>, 0x55555585762c <exec_byte_code+5573>, 0x55555585750f <exec_byte_code+5288>, 0x555555857506 <exec_byte_code+5279>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555857866 <exec_byte_code+6143>, 0x55555585797c <exec_byte_code+6421>, 0x5555558579d9 <exec_byte_code+6514>, 0x555555857a39 <exec_byte_code+6610>, 0x555555857a9b <exec_byte_code+6708>, 0x555555856884 <exec_byte_code+2077>, 0x5555558568ff <exec_byte_code+2200>, 0x555555857b14 <exec_byte_code+6829>, 0x5555558567c1 <exec_byte_code+1882>, 0x555555856967 <exec_byte_code+2304>, 0x555555857b7c <exec_byte_code+6933>, 0x555555857be4 <exec_byte_code+7037>, 0x555555857c2c <exec_byte_code+7109>, 0x555555857c94 <exec_byte_code+7213>, 0x555555857cfa <exec_byte_code+7315>, 0x555555857de0 <exec_byte_code+7545>, 0x555555857e28 <exec_byte_code+7617>, 0x555555857e90 <exec_byte_code+7721>, 0x555555857f15 <exec_byte_code+7854>, 0x555555857f5d <exec_byte_code+7926>, 0x555555857fa5 <exec_byte_code+7998>, 0x55555585800d <exec_byte_code+8102>, 0x555555858075 <exec_byte_code+8206>, 0x5555558580dd <exec_byte_code+8310>, 0x555555858162 <exec_byte_code+8443>, 0x5555558581b1 <exec_byte_code+8522>, 0x555555858200 <exec_byte_code+8601>, 0x5555558582c7 <exec_byte_code+8800>, 0x5555558583c0 <exec_byte_code+9049>, 0x5555558584b9 <exec_byte_code+9298>, 0x555555858526 <exec_byte_code+9407>, 0x555555858593 <exec_byte_code+9516>, 0x555555858600 <exec_byte_code+9625>, 0x55555585866d <exec_byte_code+9734>, 0x5555558586da <exec_byte_code+9843>, 0x555555858729 <exec_byte_code+9922>, 0x555555858823 <exec_byte_code+10172>, 0x555555858872 <exec_byte_code+10251>, 0x5555558588c1 <exec_byte_code+10330>, 0x555555858910 <exec_byte_code+10409>, 0x555555858a16 <exec_byte_code+10671>, 0x555555857386 <exec_byte_code+4895>, 0x555555858a71 <exec_byte_code+10762>, 0x555555858ab9 <exec_byte_code+10834>, 0x555555858b7b <exec_byte_code+11028>, 0x555555858be4 <exec_byte_code+11133>, 0x555555858c3f <exec_byte_code+11224>, 0x555555858c87 <exec_byte_code+11296>, 0x555555858cca <exec_byte_code+11363>, 0x555555858d0d <exec_byte_code+11430>, 0x555555858d58 <exec_byte_code+11505>, 0x555555859bda <exec_byte_code+15219>, 0x555555858db0 <exec_byte_code+11593>, 0x555555858df3 <exec_byte_code+11660>, 0x555555858e36 <exec_byte_code+11727>, 0x555555858e79 <exec_byte_code+11794>, 0x555555858ebc <exec_byte_code+11861>, 0x555555858eff <exec_byte_code+11928>, 0x555555857386 <exec_byte_code+4895>, 0x555555859bda <exec_byte_code+15219>, 0x555555858f47 <exec_byte_code+12000>, 0x555555858f99 <exec_byte_code+12082>, 0x555555858fe1 <exec_byte_code+12154>, 0x555555859029 <exec_byte_code+12226>, 0x555555859091 <exec_byte_code+12330>, 0x5555558590f9 <exec_byte_code+12434>, 0x555555859141 <exec_byte_code+12506>, 0x5555558591fe <exec_byte_code+12695>, 0x555555859266 <exec_byte_code+12799>, 0x5555558592ce <exec_byte_code+12903>, 0x555555859336 <exec_byte_code+13007>, 0x555555859379 <exec_byte_code+13074>, 0x555555859bda <exec_byte_code+15219>, 0x5555558572cc <exec_byte_code+4709>, 0x555555856e76 <exec_byte_code+3599>, 0x55555585672f <exec_byte_code+1736>, 0x555555856f27 <exec_byte_code+3776>, 0x555555856fab <exec_byte_code+3908>, 0x55555585702c <exec_byte_code+4037>, 0x555555857280 <exec_byte_code+4633>, 0x555555857295 <exec_byte_code+4654>, 0x555555856bc4 <exec_byte_code+2909>, 0x55555585734f <exec_byte_code+4840>, 0x5555558573bd <exec_byte_code+4950>, 0x55555585744e <exec_byte_code+5095>, 0x555555857497 <exec_byte_code+5168>, 0x555555857678 <exec_byte_code+5649>, 0x5555558576f5 <exec_byte_code+5774>, 0x55555585777a <exec_byte_code+5907>, 0x5555558577e0 <exec_byte_code+6009>, 0x555555856e28 <exec_byte_code+3521>, 0x5555558593c1 <exec_byte_code+13146>, 0x555555859446 <exec_byte_code+13279>, 0x55555585948e <exec_byte_code+13351>, 0x5555558594d6 <exec_byte_code+13423>, 0x55555585951e <exec_byte_code+13495>, 0x555555859566 <exec_byte_code+13567>, 0x5555558595ce <exec_byte_code+13671>, 0x555555859636 <exec_byte_code+13775>, 0x55555585969e <exec_byte_code+13879>, 0x555555859706 <exec_byte_code+13983>, 0x55555585984f <exec_byte_code+14312>, 0x5555558598b7 <exec_byte_code+14416>, 0x55555585991f <exec_byte_code+14520>, 0x555555859967 <exec_byte_code+14592>, 0x5555558599cf <exec_byte_code+14696>, 0x555555859a37 <exec_byte_code+14800>, 0x555555859a7f <exec_byte_code+14872>, 0x555555859ac7 <exec_byte_code+14944>, 0x55555585895f <exec_byte_code+10488>, 0x5555558589ae <exec_byte_code+10567>, 0x555555859b16 <exec_byte_code+15023>, 0x555555859b78 <exec_byte_code+15121>, 0x555555859bda <exec_byte_code+15219>, 0x5555558570ad <exec_byte_code+4166>, 0x5555558570ca <exec_byte_code+4195>, 0x555555857139 <exec_byte_code+4306>, 0x5555558571a8 <exec_byte_code+4417>, 0x555555857214 <exec_byte_code+4525>, 0x555555857d68 <exec_byte_code+7425>, 0x55555585824f <exec_byte_code+8680>, 0x555555858b03 <exec_byte_code+10908>, 0x555555859d71 <exec_byte_code+15626>, 0x555555859de6 <exec_byte_code+15743>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859e7c <exec_byte_code+15893>, 0x555555859f03 <exec_byte_code+16028>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x55555585a051 <exec_byte_code+16362> <repeats 64 times>} const_length = 10 bytestr_length = 56 vectorp = 0x7ffff277c810 quitcounter = 1 '\001' stack_items = 9 sa_avail = 16256 sa_count = 12 alloc = 0x7fffffffbf80 stack_base = 0x7fffffffbf80 top = 0x7fffffffbf98 stack_lim = 0x7fffffffbfc8 bytestr_data = 0x7fffffffbfc8 "\300\001!\301\302\211\303#\211\205\067" pc = 0x7fffffffbfd0 "\211\205\067" count = 12 result = make_fixnum(13243468115) #6 0x00005555557fde6d in fetch_and_exec_byte_code (fun=XIL(0x7ffff277c7b5), syms_left=make_fixnum(256), nargs=1, args=0x7fffffffc4a8) at ../../master/src/eval.c:3036 #7 0x00005555557fe2f3 in funcall_lambda (fun=XIL(0x7ffff277c7b5), nargs=1, arg_vector=0x7fffffffc4a8) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffc420) syms_left = make_fixnum(256) next = XIL(0x555555e63080) lexenv = XIL(0x1800000000) count = 12 i = 93824994985981 optional = false rest = false #8 0x00005555557fd6c6 in Ffuncall (nargs=2, args=0x7fffffffc4a0) at ../../master/src/eval.c:2916 fun = XIL(0x7ffff277c7b5) original_fun = XIL(0xbd60) funcar = XIL(0x7fffffffc470) numargs = 1 val = XIL(0x555555e63080) count = 11 #9 0x00005555557fce90 in call1 (fn=XIL(0xbd60), arg1=XIL(0x55555854b805)) at ../../master/src/eval.c:2774 #10 0x000055555564d90e in replace_buffer_in_windows (buffer=XIL(0x55555854b805)) at ../../master/src/window.c:3444 #11 0x0000555555758e87 in Fkill_buffer (buffer_or_name=XIL(0x55555854b805)) at ../../master/src/buffer.c:1830 buffer = XIL(0x55555854b805) b = 0x55555854b800 tem = XIL(0x55555575368d) m = 0x7fffffffc5f0 #12 0x00005555557fdbba in funcall_subr (subr=0x555555dd9ce0 <Skill_buffer>, numargs=1, args=0x7fffffffc710) at ../../master/src/eval.c:2987 internal_argbuf = {XIL(0x7fffffffc650), XIL(0x1000000000), XIL(0x555555dd9ce0), XIL(0x7fffffffc658), XIL(0x5555557f47fd), XIL(0x10557f42c4), XIL(0x555555dd9ce5), XIL(0x7fffffffc670)} internal_args = 0x7fffffffc710 #13 0x00005555557fd682 in Ffuncall (nargs=2, args=0x7fffffffc708) at ../../master/src/eval.c:2914 fun = XIL(0x555555dd9ce5) original_fun = XIL(0x2aaa9c7147c0) funcar = XIL(0x7fffffffc6d0) numargs = 1 val = XIL(0x7fffffffc6f0) count = 10 #14 0x0000555555856d45 in exec_byte_code (bytestr=XIL(0x7ffff25c7454), vector=XIL(0x555557d4ffdd), maxdepth=make_fixnum(2), args_template=make_fixnum(0), nargs=0, args=0x7fffffffcbc0) at ../../master/src/bytecode.c:632 op = 1 type = (unknown: 0x5588e77c) targets = {0x555555859bda <exec_byte_code+15219>, 0x555555859bff <exec_byte_code+15256>, 0x555555859c01 <exec_byte_code+15258>, 0x555555859c03 <exec_byte_code+15260>, 0x555555859c05 <exec_byte_code+15262>, 0x555555859c05 <exec_byte_code+15262>, 0x555555859c6a <exec_byte_code+15363>, 0x555555859cde <exec_byte_code+15479>, 0x555555856605 <exec_byte_code+1438>, 0x555555856607 <exec_byte_code+1440>, 0x555555856609 <exec_byte_code+1442>, 0x55555585660b <exec_byte_code+1444>, 0x55555585660d <exec_byte_code+1446>, 0x55555585660d <exec_byte_code+1446>, 0x555555856613 <exec_byte_code+1452>, 0x5555558565d4 <exec_byte_code+1389>, 0x555555856a2b <exec_byte_code+2500>, 0x555555856a2d <exec_byte_code+2502>, 0x555555856a2f <exec_byte_code+2504>, 0x555555856a31 <exec_byte_code+2506>, 0x555555856a33 <exec_byte_code+2508>, 0x555555856a33 <exec_byte_code+2508>, 0x555555856a68 <exec_byte_code+2561>, 0x555555856a39 <exec_byte_code+2514>, 0x555555856c5d <exec_byte_code+3062>, 0x555555856c5f <exec_byte_code+3064>, 0x555555856c61 <exec_byte_code+3066>, 0x555555856c63 <exec_byte_code+3068>, 0x555555856c65 <exec_byte_code+3070>, 0x555555856c65 <exec_byte_code+3070>, 0x555555856c17 <exec_byte_code+2992>, 0x555555856c2e <exec_byte_code+3015>, 0x555555856d12 <exec_byte_code+3243>, 0x555555856d14 <exec_byte_code+3245>, 0x555555856d16 <exec_byte_code+3247>, 0x555555856d18 <exec_byte_code+3249>, 0x555555856d1a <exec_byte_code+3251>, 0x555555856d1a <exec_byte_code+3251>, 0x555555856ccc <exec_byte_code+3173>, 0x555555856ce3 <exec_byte_code+3196>, 0x555555856dc4 <exec_byte_code+3421>, 0x555555856dc6 <exec_byte_code+3423>, 0x555555856dc8 <exec_byte_code+3425>, 0x555555856dca <exec_byte_code+3427>, 0x555555856dcc <exec_byte_code+3429>, 0x555555856dcc <exec_byte_code+3429>, 0x555555856d7e <exec_byte_code+3351>, 0x555555856d95 <exec_byte_code+3374>, 0x55555585762c <exec_byte_code+5573>, 0x55555585750f <exec_byte_code+5288>, 0x555555857506 <exec_byte_code+5279>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555857866 <exec_byte_code+6143>, 0x55555585797c <exec_byte_code+6421>, 0x5555558579d9 <exec_byte_code+6514>, 0x555555857a39 <exec_byte_code+6610>, 0x555555857a9b <exec_byte_code+6708>, 0x555555856884 <exec_byte_code+2077>, 0x5555558568ff <exec_byte_code+2200>, 0x555555857b14 <exec_byte_code+6829>, 0x5555558567c1 <exec_byte_code+1882>, 0x555555856967 <exec_byte_code+2304>, 0x555555857b7c <exec_byte_code+6933>, 0x555555857be4 <exec_byte_code+7037>, 0x555555857c2c <exec_byte_code+7109>, 0x555555857c94 <exec_byte_code+7213>, 0x555555857cfa <exec_byte_code+7315>, 0x555555857de0 <exec_byte_code+7545>, 0x555555857e28 <exec_byte_code+7617>, 0x555555857e90 <exec_byte_code+7721>, 0x555555857f15 <exec_byte_code+7854>, 0x555555857f5d <exec_byte_code+7926>, 0x555555857fa5 <exec_byte_code+7998>, 0x55555585800d <exec_byte_code+8102>, 0x555555858075 <exec_byte_code+8206>, 0x5555558580dd <exec_byte_code+8310>, 0x555555858162 <exec_byte_code+8443>, 0x5555558581b1 <exec_byte_code+8522>, 0x555555858200 <exec_byte_code+8601>, 0x5555558582c7 <exec_byte_code+8800>, 0x5555558583c0 <exec_byte_code+9049>, 0x5555558584b9 <exec_byte_code+9298>, 0x555555858526 <exec_byte_code+9407>, 0x555555858593 <exec_byte_code+9516>, 0x555555858600 <exec_byte_code+9625>, 0x55555585866d <exec_byte_code+9734>, 0x5555558586da <exec_byte_code+9843>, 0x555555858729 <exec_byte_code+9922>, 0x555555858823 <exec_byte_code+10172>, 0x555555858872 <exec_byte_code+10251>, 0x5555558588c1 <exec_byte_code+10330>, 0x555555858910 <exec_byte_code+10409>, 0x555555858a16 <exec_byte_code+10671>, 0x555555857386 <exec_byte_code+4895>, 0x555555858a71 <exec_byte_code+10762>, 0x555555858ab9 <exec_byte_code+10834>, 0x555555858b7b <exec_byte_code+11028>, 0x555555858be4 <exec_byte_code+11133>, 0x555555858c3f <exec_byte_code+11224>, 0x555555858c87 <exec_byte_code+11296>, 0x555555858cca <exec_byte_code+11363>, 0x555555858d0d <exec_byte_code+11430>, 0x555555858d58 <exec_byte_code+11505>, 0x555555859bda <exec_byte_code+15219>, 0x555555858db0 <exec_byte_code+11593>, 0x555555858df3 <exec_byte_code+11660>, 0x555555858e36 <exec_byte_code+11727>, 0x555555858e79 <exec_byte_code+11794>, 0x555555858ebc <exec_byte_code+11861>, 0x555555858eff <exec_byte_code+11928>, 0x555555857386 <exec_byte_code+4895>, 0x555555859bda <exec_byte_code+15219>, 0x555555858f47 <exec_byte_code+12000>, 0x555555858f99 <exec_byte_code+12082>, 0x555555858fe1 <exec_byte_code+12154>, 0x555555859029 <exec_byte_code+12226>, 0x555555859091 <exec_byte_code+12330>, 0x5555558590f9 <exec_byte_code+12434>, 0x555555859141 <exec_byte_code+12506>, 0x5555558591fe <exec_byte_code+12695>, 0x555555859266 <exec_byte_code+12799>, 0x5555558592ce <exec_byte_code+12903>, 0x555555859336 <exec_byte_code+13007>, 0x555555859379 <exec_byte_code+13074>, 0x555555859bda <exec_byte_code+15219>, 0x5555558572cc <exec_byte_code+4709>, 0x555555856e76 <exec_byte_code+3599>, 0x55555585672f <exec_byte_code+1736>, 0x555555856f27 <exec_byte_code+3776>, 0x555555856fab <exec_byte_code+3908>, 0x55555585702c <exec_byte_code+4037>, 0x555555857280 <exec_byte_code+4633>, 0x555555857295 <exec_byte_code+4654>, 0x555555856bc4 <exec_byte_code+2909>, 0x55555585734f <exec_byte_code+4840>, 0x5555558573bd <exec_byte_code+4950>, 0x55555585744e <exec_byte_code+5095>, 0x555555857497 <exec_byte_code+5168>, 0x555555857678 <exec_byte_code+5649>, 0x5555558576f5 <exec_byte_code+5774>, 0x55555585777a <exec_byte_code+5907>, 0x5555558577e0 <exec_byte_code+6009>, 0x555555856e28 <exec_byte_code+3521>, 0x5555558593c1 <exec_byte_code+13146>, 0x555555859446 <exec_byte_code+13279>, 0x55555585948e <exec_byte_code+13351>, 0x5555558594d6 <exec_byte_code+13423>, 0x55555585951e <exec_byte_code+13495>, 0x555555859566 <exec_byte_code+13567>, 0x5555558595ce <exec_byte_code+13671>, 0x555555859636 <exec_byte_code+13775>, 0x55555585969e <exec_byte_code+13879>, 0x555555859706 <exec_byte_code+13983>, 0x55555585984f <exec_byte_code+14312>, 0x5555558598b7 <exec_byte_code+14416>, 0x55555585991f <exec_byte_code+14520>, 0x555555859967 <exec_byte_code+14592>, 0x5555558599cf <exec_byte_code+14696>, 0x555555859a37 <exec_byte_code+14800>, 0x555555859a7f <exec_byte_code+14872>, 0x555555859ac7 <exec_byte_code+14944>, 0x55555585895f <exec_byte_code+10488>, 0x5555558589ae <exec_byte_code+10567>, 0x555555859b16 <exec_byte_code+15023>, 0x555555859b78 <exec_byte_code+15121>, 0x555555859bda <exec_byte_code+15219>, 0x5555558570ad <exec_byte_code+4166>, 0x5555558570ca <exec_byte_code+4195>, 0x555555857139 <exec_byte_code+4306>, 0x5555558571a8 <exec_byte_code+4417>, 0x555555857214 <exec_byte_code+4525>, 0x555555857d68 <exec_byte_code+7425>, 0x55555585824f <exec_byte_code+8680>, 0x555555858b03 <exec_byte_code+10908>, 0x555555859d71 <exec_byte_code+15626>, 0x555555859de6 <exec_byte_code+15743>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859e7c <exec_byte_code+15893>, 0x555555859f03 <exec_byte_code+16028>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x55555585a051 <exec_byte_code+16362> <repeats 64 times>} const_length = 3 bytestr_length = 10 vectorp = 0x555557d4ffe0 quitcounter = 1 '\001' stack_items = 3 sa_avail = 16350 sa_count = 10 alloc = 0x7fffffffc700 stack_base = 0x7fffffffc700 top = 0x7fffffffc708 stack_lim = 0x7fffffffc718 bytestr_data = 0x7fffffffc718 "\301\300!\205\t" pc = 0x7fffffffc721 "\207\377\377\377\177" count = 10 result = XIL(0x9) #15 0x00005555557fde6d in fetch_and_exec_byte_code (fun=XIL(0x55555783358d), syms_left=make_fixnum(0), nargs=0, args=0x7fffffffcbc0) at ../../master/src/eval.c:3036 #16 0x00005555557fe2f3 in funcall_lambda (fun=XIL(0x55555783358d), nargs=0, arg_vector=0x7fffffffcbc0) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffcb40) syms_left = make_fixnum(0) next = XIL(0x1) lexenv = XIL(0x1800000000) count = 10 i = 93824994985981 optional = false rest = false #17 0x00005555557fd6c6 in Ffuncall (nargs=1, args=0x7fffffffcbb8) at ../../master/src/eval.c:2916 fun = XIL(0x55555783358d) original_fun = XIL(0x55555783358d) funcar = XIL(0x7fffffffcb70) numargs = 0 val = XIL(0x555555e63080) count = 9 #18 0x0000555555856064 in bcall0 (f=XIL(0x55555783358d)) at ../../master/src/bytecode.c:340 #19 0x00005555557ffafa in do_one_unbind (this_binding=0x7fffffffcc30, unwinding=true, bindflag=SET_INTERNAL_UNBIND) at ../../master/src/eval.c:3575 #20 0x00005555557fff26 in unbind_to (count=8, value=XIL(0)) at ../../master/src/eval.c:3713 this_binding = { kind = SPECPDL_UNWIND, unwind = { kind = SPECPDL_UNWIND, func = 0x555555856047 <bcall0>, arg = XIL(0x55555783358d), eval_depth = 4 }, unwind_array = { kind = SPECPDL_UNWIND, nelts = 93824995385415, array = 0x55555783358d }, unwind_ptr = { kind = SPECPDL_UNWIND, func = 0x555555856047 <bcall0>, arg = 0x55555783358d }, unwind_int = { kind = SPECPDL_UNWIND, func = 0x555555856047 <bcall0>, arg = 1468216717 }, unwind_intmax = { kind = SPECPDL_UNWIND, func = 0x555555856047 <bcall0>, arg = 93825028797837 }, unwind_excursion = { kind = SPECPDL_UNWIND, marker = XIL(0x555555856047), window = XIL(0x55555783358d) }, unwind_void = { kind = SPECPDL_UNWIND, func = 0x555555856047 <bcall0> }, let = { kind = SPECPDL_UNWIND, symbol = XIL(0x555555856047), old_value = XIL(0x55555783358d), where = XIL(0x4), saved_value = XIL(0) }, bt = { kind = SPECPDL_UNWIND, debug_on_exit = false, function = XIL(0x555555856047), args = 0x55555783358d, nargs = 4 } } quitf = XIL(0) #21 0x0000555555856df6 in exec_byte_code (bytestr=XIL(0x7ffff2908874), vector=XIL(0x7ffff2908525), maxdepth=make_fixnum(23), args_template=make_fixnum(257), nargs=1, args=0x7fffffffd3e0) at ../../master/src/bytecode.c:652 op = 2 type = (unknown: 0xffffd230) targets = {0x555555859bda <exec_byte_code+15219>, 0x555555859bff <exec_byte_code+15256>, 0x555555859c01 <exec_byte_code+15258>, 0x555555859c03 <exec_byte_code+15260>, 0x555555859c05 <exec_byte_code+15262>, 0x555555859c05 <exec_byte_code+15262>, 0x555555859c6a <exec_byte_code+15363>, 0x555555859cde <exec_byte_code+15479>, 0x555555856605 <exec_byte_code+1438>, 0x555555856607 <exec_byte_code+1440>, 0x555555856609 <exec_byte_code+1442>, 0x55555585660b <exec_byte_code+1444>, 0x55555585660d <exec_byte_code+1446>, 0x55555585660d <exec_byte_code+1446>, 0x555555856613 <exec_byte_code+1452>, 0x5555558565d4 <exec_byte_code+1389>, 0x555555856a2b <exec_byte_code+2500>, 0x555555856a2d <exec_byte_code+2502>, 0x555555856a2f <exec_byte_code+2504>, 0x555555856a31 <exec_byte_code+2506>, 0x555555856a33 <exec_byte_code+2508>, 0x555555856a33 <exec_byte_code+2508>, 0x555555856a68 <exec_byte_code+2561>, 0x555555856a39 <exec_byte_code+2514>, 0x555555856c5d <exec_byte_code+3062>, 0x555555856c5f <exec_byte_code+3064>, 0x555555856c61 <exec_byte_code+3066>, 0x555555856c63 <exec_byte_code+3068>, 0x555555856c65 <exec_byte_code+3070>, 0x555555856c65 <exec_byte_code+3070>, 0x555555856c17 <exec_byte_code+2992>, 0x555555856c2e <exec_byte_code+3015>, 0x555555856d12 <exec_byte_code+3243>, 0x555555856d14 <exec_byte_code+3245>, 0x555555856d16 <exec_byte_code+3247>, 0x555555856d18 <exec_byte_code+3249>, 0x555555856d1a <exec_byte_code+3251>, 0x555555856d1a <exec_byte_code+3251>, 0x555555856ccc <exec_byte_code+3173>, 0x555555856ce3 <exec_byte_code+3196>, 0x555555856dc4 <exec_byte_code+3421>, 0x555555856dc6 <exec_byte_code+3423>, 0x555555856dc8 <exec_byte_code+3425>, 0x555555856dca <exec_byte_code+3427>, 0x555555856dcc <exec_byte_code+3429>, 0x555555856dcc <exec_byte_code+3429>, 0x555555856d7e <exec_byte_code+3351>, 0x555555856d95 <exec_byte_code+3374>, 0x55555585762c <exec_byte_code+5573>, 0x55555585750f <exec_byte_code+5288>, 0x555555857506 <exec_byte_code+5279>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555857866 <exec_byte_code+6143>, 0x55555585797c <exec_byte_code+6421>, 0x5555558579d9 <exec_byte_code+6514>, 0x555555857a39 <exec_byte_code+6610>, 0x555555857a9b <exec_byte_code+6708>, 0x555555856884 <exec_byte_code+2077>, 0x5555558568ff <exec_byte_code+2200>, 0x555555857b14 <exec_byte_code+6829>, 0x5555558567c1 <exec_byte_code+1882>, 0x555555856967 <exec_byte_code+2304>, 0x555555857b7c <exec_byte_code+6933>, 0x555555857be4 <exec_byte_code+7037>, 0x555555857c2c <exec_byte_code+7109>, 0x555555857c94 <exec_byte_code+7213>, 0x555555857cfa <exec_byte_code+7315>, 0x555555857de0 <exec_byte_code+7545>, 0x555555857e28 <exec_byte_code+7617>, 0x555555857e90 <exec_byte_code+7721>, 0x555555857f15 <exec_byte_code+7854>, 0x555555857f5d <exec_byte_code+7926>, 0x555555857fa5 <exec_byte_code+7998>, 0x55555585800d <exec_byte_code+8102>, 0x555555858075 <exec_byte_code+8206>, 0x5555558580dd <exec_byte_code+8310>, 0x555555858162 <exec_byte_code+8443>, 0x5555558581b1 <exec_byte_code+8522>, 0x555555858200 <exec_byte_code+8601>, 0x5555558582c7 <exec_byte_code+8800>, 0x5555558583c0 <exec_byte_code+9049>, 0x5555558584b9 <exec_byte_code+9298>, 0x555555858526 <exec_byte_code+9407>, 0x555555858593 <exec_byte_code+9516>, 0x555555858600 <exec_byte_code+9625>, 0x55555585866d <exec_byte_code+9734>, 0x5555558586da <exec_byte_code+9843>, 0x555555858729 <exec_byte_code+9922>, 0x555555858823 <exec_byte_code+10172>, 0x555555858872 <exec_byte_code+10251>, 0x5555558588c1 <exec_byte_code+10330>, 0x555555858910 <exec_byte_code+10409>, 0x555555858a16 <exec_byte_code+10671>, 0x555555857386 <exec_byte_code+4895>, 0x555555858a71 <exec_byte_code+10762>, 0x555555858ab9 <exec_byte_code+10834>, 0x555555858b7b <exec_byte_code+11028>, 0x555555858be4 <exec_byte_code+11133>, 0x555555858c3f <exec_byte_code+11224>, 0x555555858c87 <exec_byte_code+11296>, 0x555555858cca <exec_byte_code+11363>, 0x555555858d0d <exec_byte_code+11430>, 0x555555858d58 <exec_byte_code+11505>, 0x555555859bda <exec_byte_code+15219>, 0x555555858db0 <exec_byte_code+11593>, 0x555555858df3 <exec_byte_code+11660>, 0x555555858e36 <exec_byte_code+11727>, 0x555555858e79 <exec_byte_code+11794>, 0x555555858ebc <exec_byte_code+11861>, 0x555555858eff <exec_byte_code+11928>, 0x555555857386 <exec_byte_code+4895>, 0x555555859bda <exec_byte_code+15219>, 0x555555858f47 <exec_byte_code+12000>, 0x555555858f99 <exec_byte_code+12082>, 0x555555858fe1 <exec_byte_code+12154>, 0x555555859029 <exec_byte_code+12226>, 0x555555859091 <exec_byte_code+12330>, 0x5555558590f9 <exec_byte_code+12434>, 0x555555859141 <exec_byte_code+12506>, 0x5555558591fe <exec_byte_code+12695>, 0x555555859266 <exec_byte_code+12799>, 0x5555558592ce <exec_byte_code+12903>, 0x555555859336 <exec_byte_code+13007>, 0x555555859379 <exec_byte_code+13074>, 0x555555859bda <exec_byte_code+15219>, 0x5555558572cc <exec_byte_code+4709>, 0x555555856e76 <exec_byte_code+3599>, 0x55555585672f <exec_byte_code+1736>, 0x555555856f27 <exec_byte_code+3776>, 0x555555856fab <exec_byte_code+3908>, 0x55555585702c <exec_byte_code+4037>, 0x555555857280 <exec_byte_code+4633>, 0x555555857295 <exec_byte_code+4654>, 0x555555856bc4 <exec_byte_code+2909>, 0x55555585734f <exec_byte_code+4840>, 0x5555558573bd <exec_byte_code+4950>, 0x55555585744e <exec_byte_code+5095>, 0x555555857497 <exec_byte_code+5168>, 0x555555857678 <exec_byte_code+5649>, 0x5555558576f5 <exec_byte_code+5774>, 0x55555585777a <exec_byte_code+5907>, 0x5555558577e0 <exec_byte_code+6009>, 0x555555856e28 <exec_byte_code+3521>, 0x5555558593c1 <exec_byte_code+13146>, 0x555555859446 <exec_byte_code+13279>, 0x55555585948e <exec_byte_code+13351>, 0x5555558594d6 <exec_byte_code+13423>, 0x55555585951e <exec_byte_code+13495>, 0x555555859566 <exec_byte_code+13567>, 0x5555558595ce <exec_byte_code+13671>, 0x555555859636 <exec_byte_code+13775>, 0x55555585969e <exec_byte_code+13879>, 0x555555859706 <exec_byte_code+13983>, 0x55555585984f <exec_byte_code+14312>, 0x5555558598b7 <exec_byte_code+14416>, 0x55555585991f <exec_byte_code+14520>, 0x555555859967 <exec_byte_code+14592>, 0x5555558599cf <exec_byte_code+14696>, 0x555555859a37 <exec_byte_code+14800>, 0x555555859a7f <exec_byte_code+14872>, 0x555555859ac7 <exec_byte_code+14944>, 0x55555585895f <exec_byte_code+10488>, 0x5555558589ae <exec_byte_code+10567>, 0x555555859b16 <exec_byte_code+15023>, 0x555555859b78 <exec_byte_code+15121>, 0x555555859bda <exec_byte_code+15219>, 0x5555558570ad <exec_byte_code+4166>, 0x5555558570ca <exec_byte_code+4195>, 0x555555857139 <exec_byte_code+4306>, 0x5555558571a8 <exec_byte_code+4417>, 0x555555857214 <exec_byte_code+4525>, 0x555555857d68 <exec_byte_code+7425>, 0x55555585824f <exec_byte_code+8680>, 0x555555858b03 <exec_byte_code+10908>, 0x555555859d71 <exec_byte_code+15626>, 0x555555859de6 <exec_byte_code+15743>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859e7c <exec_byte_code+15893>, 0x555555859f03 <exec_byte_code+16028>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x55555585a051 <exec_byte_code+16362> <repeats 64 times>} const_length = 51 bytestr_length = 494 vectorp = 0x7ffff2908528 quitcounter = 59 ';' stack_items = 24 sa_avail = 15698 sa_count = 7 alloc = 0x7fffffffcc80 stack_base = 0x7fffffffcc80 top = 0x7fffffffccb0 stack_lim = 0x7fffffffcd40 bytestr_data = 0x7fffffffcd40 "\211??\205\355\001\b\302p\001\031\303\304\302\"r\211q\210\305\306\002\"\216\004c\210eb\210`dW\203\345\001`lj\211\211g\310U\203\234\001\311\061:" pc = 0x7fffffffcf28 "\262\001)\266\203\207" count = 7 result = XIL(0) #22 0x00005555557fde6d in fetch_and_exec_byte_code (fun=XIL(0x7ffff29084f5), syms_left=make_fixnum(257), nargs=1, args=0x7fffffffd3d8) at ../../master/src/eval.c:3036 #23 0x00005555557fe2f3 in funcall_lambda (fun=XIL(0x7ffff29084f5), nargs=1, arg_vector=0x7fffffffd3d8) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffd350) syms_left = make_fixnum(257) next = XIL(0x555555e63080) lexenv = XIL(0x1800000000) count = 7 i = 93824994985981 optional = false rest = false #24 0x00005555557fd6c6 in Ffuncall (nargs=2, args=0x7fffffffd3d0) at ../../master/src/eval.c:2916 fun = XIL(0x7ffff29084f5) original_fun = XIL(0xcff0) funcar = XIL(0x555555e63080) numargs = 1 val = XIL(0x5af0) count = 6 #25 0x00005555557fce90 in call1 (fn=XIL(0xcff0), arg1=XIL(0x555556232084)) at ../../master/src/eval.c:2774 #26 0x000055555583108e in print_error_message (data=XIL(0x55555732d343), stream=XIL(0x30), context=0x7ffff2c64148 "", caller=XIL(0)) at ../../master/src/print.c:944 error_conditions = XIL(0x7ffff2c2da13) errname = XIL(0xb820) errmsg = make_fixnum(23456248526235) file_error = XIL(0x7fffffffd4c0) tail = XIL(0x30) #27 0x0000555555720a3d in Fcommand_error_default_function (data=XIL(0x55555732d343), context=XIL(0x7ffff25734c4), signal=XIL(0)) at ../../master/src/keyboard.c:1032 sf = 0x555556f6f728 #28 0x00005555557fdc14 in funcall_subr (subr=0x555555dd86a0 <Scommand_error_default_function>, numargs=3, args=0x7fffffffd628) at ../../master/src/eval.c:2992 internal_argbuf = {XIL(0x7fffffffd570), XIL(0x1000000000), XIL(0x555555dd86a0), XIL(0x7fffffffd578), XIL(0x5555557f47fd), XIL(0x10557f42c4), XIL(0x555555dd86a5), XIL(0x7fffffffd590)} internal_args = 0x7fffffffd628 #29 0x00005555557fd682 in Ffuncall (nargs=4, args=0x7fffffffd620) at ../../master/src/eval.c:2914 fun = XIL(0x555555dd86a5) original_fun = XIL(0x2aaa9ccc8548) funcar = XIL(0x7fffffffd5f0) numargs = 3 val = XIL(0x7fffffffd610) count = 5 #30 0x00005555557fc7a6 in Fapply (nargs=2, args=0x7fffffffd7e8) at ../../master/src/eval.c:2544 i = 4 funcall_nargs = 4 funcall_args = 0x7fffffffd620 spread_arg = XIL(0) fun = XIL(0x555555dd86a5) sa_avail = 16352 sa_count = 5 numargs = 3 retval = XIL(0) #31 0x00005555557fdaab in funcall_subr (subr=0x555555de04a0 <Sapply>, numargs=2, args=0x7fffffffd7e8) at ../../master/src/eval.c:2967 #32 0x00005555557fd682 in Ffuncall (nargs=3, args=0x7fffffffd7e0) at ../../master/src/eval.c:2914 fun = XIL(0x555555de04a5) original_fun = XIL(0x2d60) funcar = XIL(0x7fffffffd7a0) numargs = 2 val = XIL(0x7fffffffdcc8) count = 4 #33 0x0000555555856d45 in exec_byte_code (bytestr=XIL(0x7ffff258f0e4), vector=XIL(0x7ffff2c1d0fd), maxdepth=make_fixnum(5), args_template=make_fixnum(128), nargs=3, args=0x7fffffffdcc8) at ../../master/src/bytecode.c:632 op = 2 type = (unknown: 0xffffdb10) targets = {0x555555859bda <exec_byte_code+15219>, 0x555555859bff <exec_byte_code+15256>, 0x555555859c01 <exec_byte_code+15258>, 0x555555859c03 <exec_byte_code+15260>, 0x555555859c05 <exec_byte_code+15262>, 0x555555859c05 <exec_byte_code+15262>, 0x555555859c6a <exec_byte_code+15363>, 0x555555859cde <exec_byte_code+15479>, 0x555555856605 <exec_byte_code+1438>, 0x555555856607 <exec_byte_code+1440>, 0x555555856609 <exec_byte_code+1442>, 0x55555585660b <exec_byte_code+1444>, 0x55555585660d <exec_byte_code+1446>, 0x55555585660d <exec_byte_code+1446>, 0x555555856613 <exec_byte_code+1452>, 0x5555558565d4 <exec_byte_code+1389>, 0x555555856a2b <exec_byte_code+2500>, 0x555555856a2d <exec_byte_code+2502>, 0x555555856a2f <exec_byte_code+2504>, 0x555555856a31 <exec_byte_code+2506>, 0x555555856a33 <exec_byte_code+2508>, 0x555555856a33 <exec_byte_code+2508>, 0x555555856a68 <exec_byte_code+2561>, 0x555555856a39 <exec_byte_code+2514>, 0x555555856c5d <exec_byte_code+3062>, 0x555555856c5f <exec_byte_code+3064>, 0x555555856c61 <exec_byte_code+3066>, 0x555555856c63 <exec_byte_code+3068>, 0x555555856c65 <exec_byte_code+3070>, 0x555555856c65 <exec_byte_code+3070>, 0x555555856c17 <exec_byte_code+2992>, 0x555555856c2e <exec_byte_code+3015>, 0x555555856d12 <exec_byte_code+3243>, 0x555555856d14 <exec_byte_code+3245>, 0x555555856d16 <exec_byte_code+3247>, 0x555555856d18 <exec_byte_code+3249>, 0x555555856d1a <exec_byte_code+3251>, 0x555555856d1a <exec_byte_code+3251>, 0x555555856ccc <exec_byte_code+3173>, 0x555555856ce3 <exec_byte_code+3196>, 0x555555856dc4 <exec_byte_code+3421>, 0x555555856dc6 <exec_byte_code+3423>, 0x555555856dc8 <exec_byte_code+3425>, 0x555555856dca <exec_byte_code+3427>, 0x555555856dcc <exec_byte_code+3429>, 0x555555856dcc <exec_byte_code+3429>, 0x555555856d7e <exec_byte_code+3351>, 0x555555856d95 <exec_byte_code+3374>, 0x55555585762c <exec_byte_code+5573>, 0x55555585750f <exec_byte_code+5288>, 0x555555857506 <exec_byte_code+5279>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555857866 <exec_byte_code+6143>, 0x55555585797c <exec_byte_code+6421>, 0x5555558579d9 <exec_byte_code+6514>, 0x555555857a39 <exec_byte_code+6610>, 0x555555857a9b <exec_byte_code+6708>, 0x555555856884 <exec_byte_code+2077>, 0x5555558568ff <exec_byte_code+2200>, 0x555555857b14 <exec_byte_code+6829>, 0x5555558567c1 <exec_byte_code+1882>, 0x555555856967 <exec_byte_code+2304>, 0x555555857b7c <exec_byte_code+6933>, 0x555555857be4 <exec_byte_code+7037>, 0x555555857c2c <exec_byte_code+7109>, 0x555555857c94 <exec_byte_code+7213>, 0x555555857cfa <exec_byte_code+7315>, 0x555555857de0 <exec_byte_code+7545>, 0x555555857e28 <exec_byte_code+7617>, 0x555555857e90 <exec_byte_code+7721>, 0x555555857f15 <exec_byte_code+7854>, 0x555555857f5d <exec_byte_code+7926>, 0x555555857fa5 <exec_byte_code+7998>, 0x55555585800d <exec_byte_code+8102>, 0x555555858075 <exec_byte_code+8206>, 0x5555558580dd <exec_byte_code+8310>, 0x555555858162 <exec_byte_code+8443>, 0x5555558581b1 <exec_byte_code+8522>, 0x555555858200 <exec_byte_code+8601>, 0x5555558582c7 <exec_byte_code+8800>, 0x5555558583c0 <exec_byte_code+9049>, 0x5555558584b9 <exec_byte_code+9298>, 0x555555858526 <exec_byte_code+9407>, 0x555555858593 <exec_byte_code+9516>, 0x555555858600 <exec_byte_code+9625>, 0x55555585866d <exec_byte_code+9734>, 0x5555558586da <exec_byte_code+9843>, 0x555555858729 <exec_byte_code+9922>, 0x555555858823 <exec_byte_code+10172>, 0x555555858872 <exec_byte_code+10251>, 0x5555558588c1 <exec_byte_code+10330>, 0x555555858910 <exec_byte_code+10409>, 0x555555858a16 <exec_byte_code+10671>, 0x555555857386 <exec_byte_code+4895>, 0x555555858a71 <exec_byte_code+10762>, 0x555555858ab9 <exec_byte_code+10834>, 0x555555858b7b <exec_byte_code+11028>, 0x555555858be4 <exec_byte_code+11133>, 0x555555858c3f <exec_byte_code+11224>, 0x555555858c87 <exec_byte_code+11296>, 0x555555858cca <exec_byte_code+11363>, 0x555555858d0d <exec_byte_code+11430>, 0x555555858d58 <exec_byte_code+11505>, 0x555555859bda <exec_byte_code+15219>, 0x555555858db0 <exec_byte_code+11593>, 0x555555858df3 <exec_byte_code+11660>, 0x555555858e36 <exec_byte_code+11727>, 0x555555858e79 <exec_byte_code+11794>, 0x555555858ebc <exec_byte_code+11861>, 0x555555858eff <exec_byte_code+11928>, 0x555555857386 <exec_byte_code+4895>, 0x555555859bda <exec_byte_code+15219>, 0x555555858f47 <exec_byte_code+12000>, 0x555555858f99 <exec_byte_code+12082>, 0x555555858fe1 <exec_byte_code+12154>, 0x555555859029 <exec_byte_code+12226>, 0x555555859091 <exec_byte_code+12330>, 0x5555558590f9 <exec_byte_code+12434>, 0x555555859141 <exec_byte_code+12506>, 0x5555558591fe <exec_byte_code+12695>, 0x555555859266 <exec_byte_code+12799>, 0x5555558592ce <exec_byte_code+12903>, 0x555555859336 <exec_byte_code+13007>, 0x555555859379 <exec_byte_code+13074>, 0x555555859bda <exec_byte_code+15219>, 0x5555558572cc <exec_byte_code+4709>, 0x555555856e76 <exec_byte_code+3599>, 0x55555585672f <exec_byte_code+1736>, 0x555555856f27 <exec_byte_code+3776>, 0x555555856fab <exec_byte_code+3908>, 0x55555585702c <exec_byte_code+4037>, 0x555555857280 <exec_byte_code+4633>, 0x555555857295 <exec_byte_code+4654>, 0x555555856bc4 <exec_byte_code+2909>, 0x55555585734f <exec_byte_code+4840>, 0x5555558573bd <exec_byte_code+4950>, 0x55555585744e <exec_byte_code+5095>, 0x555555857497 <exec_byte_code+5168>, 0x555555857678 <exec_byte_code+5649>, 0x5555558576f5 <exec_byte_code+5774>, 0x55555585777a <exec_byte_code+5907>, 0x5555558577e0 <exec_byte_code+6009>, 0x555555856e28 <exec_byte_code+3521>, 0x5555558593c1 <exec_byte_code+13146>, 0x555555859446 <exec_byte_code+13279>, 0x55555585948e <exec_byte_code+13351>, 0x5555558594d6 <exec_byte_code+13423>, 0x55555585951e <exec_byte_code+13495>, 0x555555859566 <exec_byte_code+13567>, 0x5555558595ce <exec_byte_code+13671>, 0x555555859636 <exec_byte_code+13775>, 0x55555585969e <exec_byte_code+13879>, 0x555555859706 <exec_byte_code+13983>, 0x55555585984f <exec_byte_code+14312>, 0x5555558598b7 <exec_byte_code+14416>, 0x55555585991f <exec_byte_code+14520>, 0x555555859967 <exec_byte_code+14592>, 0x5555558599cf <exec_byte_code+14696>, 0x555555859a37 <exec_byte_code+14800>, 0x555555859a7f <exec_byte_code+14872>, 0x555555859ac7 <exec_byte_code+14944>, 0x55555585895f <exec_byte_code+10488>, 0x5555558589ae <exec_byte_code+10567>, 0x555555859b16 <exec_byte_code+15023>, 0x555555859b78 <exec_byte_code+15121>, 0x555555859bda <exec_byte_code+15219>, 0x5555558570ad <exec_byte_code+4166>, 0x5555558570ca <exec_byte_code+4195>, 0x555555857139 <exec_byte_code+4306>, 0x5555558571a8 <exec_byte_code+4417>, 0x555555857214 <exec_byte_code+4525>, 0x555555857d68 <exec_byte_code+7425>, 0x55555585824f <exec_byte_code+8680>, 0x555555858b03 <exec_byte_code+10908>, 0x555555859d71 <exec_byte_code+15626>, 0x555555859de6 <exec_byte_code+15743>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859e7c <exec_byte_code+15893>, 0x555555859f03 <exec_byte_code+16028>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x555555859bda <exec_byte_code+15219>, 0x55555585a051 <exec_byte_code+16362> <repeats 64 times>} const_length = 4 bytestr_length = 10 vectorp = 0x7ffff2c1d100 quitcounter = 1 '\001' stack_items = 6 sa_avail = 16326 sa_count = 4 alloc = 0x7fffffffd7d0 stack_base = 0x7fffffffd7d0 top = 0x7fffffffd7e0 stack_lim = 0x7fffffffd800 bytestr_data = 0x7fffffffd800 "\300\302\002\"\300\301\003\"\210\207" pc = 0x7fffffffd804 "\300\301\003\"\210\207" count = 4 result = XIL(0x5555557f42c4) #34 0x00005555557fde6d in fetch_and_exec_byte_code (fun=XIL(0x7ffff2c1d0cd), syms_left=make_fixnum(128), nargs=3, args=0x7fffffffdcc8) at ../../master/src/eval.c:3036 #35 0x00005555557fe2f3 in funcall_lambda (fun=XIL(0x7ffff2c1d0cd), nargs=3, arg_vector=0x7fffffffdcc8) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffdc30) syms_left = make_fixnum(128) next = make_fixnum(2) lexenv = XIL(0x1800000003) count = 4 i = 93824994985981 optional = false rest = false #36 0x00005555557fd6c6 in Ffuncall (nargs=4, args=0x7fffffffdcc0) at ../../master/src/eval.c:2916 fun = XIL(0x7ffff2c1d0cd) original_fun = XIL(0x7ffff2c1d0cd) funcar = XIL(0x7fffffffdc70) numargs = 3 val = XIL(0x7fffffffdc90) count = 3 #37 0x00005555557fcf1a in call3 (fn=XIL(0x7ffff2c1d0cd), arg1=XIL(0x55555732d343), arg2=XIL(0x7ffff25734c4), arg3=XIL(0)) at ../../master/src/eval.c:2788 #38 0x0000555555720858 in cmd_error_internal (data=XIL(0x55555732d343), context=0x7fffffffdd70 "") at ../../master/src/keyboard.c:987 #39 0x0000555555720726 in cmd_error (data=XIL(0x55555732d343)) at ../../master/src/keyboard.c:956 old_level = XIL(0) old_length = XIL(0) macroerror = "\000\000\000\000\000\000\000\000\360\350\365UUU\000\000\260\335\377\377\001\000\000\000\002\000\000\000\000\000\000\000\000x\000\000\000\000\000\000\207\230\177UUU\000\000\220", <incomplete sequence \321> #40 0x00005555557f9436 in internal_condition_case (bfun=0x555555720fb0 <command_loop_1>, handlers=XIL(0x90), hfun=0x5555557205d3 <cmd_error>) at ../../master/src/eval.c:1435 val = XIL(0x55555732d343) c = 0x555555f5e8f0 #41 0x0000555555720ba0 in command_loop_2 (ignore=XIL(0)) at ../../master/src/keyboard.c:1094 val = make_fixnum(0) #42 0x00005555557f884e in internal_catch (tag=XIL(0xd9e0), func=0x555555720b73 <command_loop_2>, arg=XIL(0)) at ../../master/src/eval.c:1189 val = XIL(0xd9e0) c = 0x555555f47770 #43 0x0000555555720b3f in command_loop () at ../../master/src/keyboard.c:1073 #44 0x00005555557200bc in recursive_edit_1 () at ../../master/src/keyboard.c:720 count = 1 val = XIL(0x7fffffffdf00) #45 0x00005555557202b3 in Frecursive_edit () at ../../master/src/keyboard.c:789 count = 0 buffer = XIL(0) #46 0x000055555571c198 in main (argc=2, argv=0x7fffffffe168) at ../../master/src/emacs.c:2050 stack_bottom_variable = 0x7ffff617e053 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 1 temacs = 0x0 attempt_load_pdump = true rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = 0x0 sockfd = -1 module_assertions = false Lisp Backtrace: "window-list-1" (0xffffbfa0) "replace-buffer-in-windows" (0xffffc4a8) "kill-buffer" (0xffffc710) 0x57833588 PVEC_COMPILED "substitute-command-keys" (0xffffd3d8) "command-error-default-function" (0xffffd628) "apply" (0xffffd7e8) 0xf2c1d0c8 PVEC_COMPILED -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 15:21 ` Michael Welsh Duggan @ 2021-04-08 15:33 ` Michael Welsh Duggan 2021-04-08 15:48 ` martin rudalics 2021-04-08 15:58 ` Eli Zaretskii 2 siblings, 0 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-08 15:33 UTC (permalink / raw) To: Michael Welsh Duggan Cc: schwab@linux-m68k.org, 47244@debbugs.gnu.org, Michael Welsh Duggan Michael Welsh Duggan <mwd@md5i.com> writes: > Michael Welsh Duggan <mwd@cert.org> writes: > >> martin rudalics <rudalics@gmx.at> writes: >> >>> > FWIW, I've been trying to do the same and have been similarly >>> > unsuccessful. >>> >>> I attach a version where I make a shadow copy of Vwindow_list called >>> Vwindow_list_2. The two should behave the same just that Vwindow_list_2 >>> is never accessed by other code. So we can put an assertion like >>> >>> eassert (!NILP (Fequal (Vwindow_list, Vwindow_list_2))); >>> >>> anywhere in the code. I put one in window_list and it should trigger >>> the same way as the length check before. >>> >>> Now if anyone can suggest some strategic positions where to put these >>> assertions, I'll be all ears. >> >> I've yet to run this code yet (will do so shortly), but I'd like to >> mention that some other debugging I've been doing involving tricky >> breakpoint commands is implying that, somehow, list_windows() is getting >> called while list_windows() is still running. I've got a breakpoint >> at the beginning of the if clause in window_list() and one at the end, >> and it looks like I'm seeing the first one get called twice without the >> second getting called inbetween. > > Okay, close, but not quite. What seems to be happening is this: > list_windows() is called while Vwindow_list is nil, and the if branch is > taken. Something causes list_windows() to exit without reaching the end > of the if block. This leaves Vwindow_list partially created. The next > time list_windows() is called it returns the partially created list. > > To determine this I put a breakpoint at the beginning of the if block > that sets a gdb convenience variable called $in_list_windows to one and > continues. I put a breakpoint at the end of that block that sets it to > zero and continues. I put a third condition breakpoint at the entrance > to list_windows() that only triggers if $in_list_windows is one. This > triggered with the included backtrace. > > Once again, the state triggered when, due to the VPN state changing, a > background gnus demon hung trying to fetch mail. The trigger was me > hitting C-g twice rapidly in succession to regain interactivity. > > Can anyone recommend a means to check if this my theory is true? Does > list_windows() need to be protected against quit? For the backtrace of that run, please note that I was using my own modified version of list_windows(), not Martin's latest one. I'm now running with Martin's version for the next trigger. -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 15:21 ` Michael Welsh Duggan 2021-04-08 15:33 ` Michael Welsh Duggan @ 2021-04-08 15:48 ` martin rudalics 2021-04-08 16:01 ` Michael Welsh Duggan 2021-04-08 15:58 ` Eli Zaretskii 2 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-08 15:48 UTC (permalink / raw) To: Michael Welsh Duggan, Michael Welsh Duggan Cc: schwab@linux-m68k.org, 47244@debbugs.gnu.org > Okay, close, but not quite. What seems to be happening is this: > list_windows() This is a local rewrite. You really intend window_list() here. Right? > is called while Vwindow_list is nil, and the if branch is > taken. Something causes list_windows() to exit without reaching the end > of the if block. This leaves Vwindow_list partially created. OK. If you really get out of this after the first Vwindow_list = nconc2 (Vwindow_list, arglist); then we have one recorded frame, the length of Vwindow_list is 2 but we did not record it in the earlier length-based experiment and the 2 won't show up in the list of lengths. So the explanation is valid and a bit gruesome too. This might hit us anywhere ... > The next > time list_windows() is called it returns the partially created list. > > To determine this I put a breakpoint at the beginning of the if block > that sets a gdb convenience variable called $in_list_windows to one and > continues. I put a breakpoint at the end of that block that sets it to > zero and continues. I put a third condition breakpoint at the entrance > to list_windows() that only triggers if $in_list_windows is one. This > triggered with the included backtrace. > > Once again, the state triggered when, due to the VPN state changing, a > background gnus demon hung trying to fetch mail. The trigger was me > hitting C-g twice rapidly in succession to regain interactivity. > > Can anyone recommend a means to check if this my theory is true? Does > list_windows() need to be protected against quit? Try with block_input (); ... unblock_input (); around it. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 15:48 ` martin rudalics @ 2021-04-08 16:01 ` Michael Welsh Duggan 2021-04-08 16:14 ` martin rudalics 2021-04-08 16:35 ` Eli Zaretskii 0 siblings, 2 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-08 16:01 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: > > Okay, close, but not quite. What seems to be happening is this: > > list_windows() > > This is a local rewrite. You really intend window_list() here. Right? I did. I've inverted the order of those words many times, and I didn't catch it this time. > > is called while Vwindow_list is nil, and the if branch is > > taken. Something causes list_windows() to exit without reaching the end > > of the if block. This leaves Vwindow_list partially created. > > OK. If you really get out of this after the first > > Vwindow_list = nconc2 (Vwindow_list, arglist); > > then we have one recorded frame, the length of Vwindow_list is 2 but we > did not record it in the earlier length-based experiment and the 2 won't > show up in the list of lengths. So the explanation is valid and a bit > gruesome too. This might hit us anywhere ... > > > The next > > time list_windows() is called it returns the partially created list. > > > > To determine this I put a breakpoint at the beginning of the if block > > that sets a gdb convenience variable called $in_list_windows to one and > > continues. I put a breakpoint at the end of that block that sets it to > > zero and continues. I put a third condition breakpoint at the entrance > > to list_windows() that only triggers if $in_list_windows is one. This > > triggered with the included backtrace. > > > > Once again, the state triggered when, due to the VPN state changing, a > > background gnus demon hung trying to fetch mail. The trigger was me > > hitting C-g twice rapidly in succession to regain interactivity. > > > > Can anyone recommend a means to check if this my theory is true? Does > > list_windows() need to be protected against quit? > > Try with > > block_input (); > ... > unblock_input (); > > around it. > > martin Before that, I include the backtrace with your latest patch. And here's the interesting bit: (gdb) p Vwindow_list $2 = XIL(0x55555863cae3) (gdb) xlist $3 = 0x555556fc8af5 Lisp_Vectorlike PVEC_WINDOW $4 = (struct window *) 0x555556fc8af0 84x59+0+0 --- $5 = 0x555556fc8d05 Lisp_Vectorlike PVEC_WINDOW $6 = (struct window *) 0x555556fc8d00 84x1+0+59 --- nil (gdb) p Vwindow_list_2 $7 = XIL(0) Right before this I hit a breakpoint that that I had set up that, once again, implied that in this call of window_list() happened subsequent to a call to window_list() that didn't complete, somehow. Before running with block_input(), unblock_input(), I'm going to modify the sources to set a physical variable to one on entrance to the if block and set it back to zero at the exit. At least then I can be sure that an unintended termination of this function is really happening and that it is not a debugger artifact. #0 terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at ../../master/src/emacs.c:379 #1 0x00005555557c4b77 in die (msg=0x5555559105c8 "!NILP (Fequal (Vwindow_list, Vwindow_list_2))", file=0x55555590f9cf "../../master/src/window.c", line=2584) at ../../master/src/alloc.c:7420 #2 0x000055555564b3f9 in window_list () at ../../master/src/window.c:2584 #3 0x000055555564bffb in window_list_1 (window=XIL(0x555556fc8af5), minibuf=XIL(0xc0), all_frames=XIL(0x30)) at ../../master/src/window.c:2871 tail = XIL(0x7ffff26647bd) list = XIL(0) rest = XIL(0x7ffff26647c0) #4 0x000055555564c341 in Fwindow_list_1 (window=XIL(0), minibuf=XIL(0), all_frames=XIL(0x30)) at ../../master/src/window.c:2945 #5 0x00005555557fdbfa in funcall_subr (subr=0x555555dd4960 <Swindow_list_1>, numargs=3, args=0x7fffffffbfa0) at ../../master/src/eval.c:2992 internal_argbuf = {XIL(0x7fffffffbed0), XIL(0x1000000000), XIL(0x555555dd4960), XIL(0x7fffffffbed8), XIL(0x5555557f47e3), make_fixnum(17538470058), XIL(0x555555dd4965), XIL(0x7fffffffbef0)} internal_args = 0x7fffffffbfa0 #6 0x00005555557fd668 in Ffuncall (nargs=4, args=0x7fffffffbf98) at ../../master/src/eval.c:2914 fun = XIL(0x555555dd4965) original_fun = XIL(0x2aaa9c71a7a8) funcar = XIL(0x7fffffffbf50) numargs = 3 val = XIL(0x5555571d7ced) count = 12 #7 0x0000555555856d2b in exec_byte_code (bytestr=XIL(0x7ffff277c864), vector=XIL(0x7ffff277c80d), maxdepth=make_fixnum(8), args_template=make_fixnum(256), nargs=1, args=0x7fffffffc4b0) at ../../master/src/bytecode.c:632 op = 3 type = (CATCHER_ALL | unknown: 0x20) targets = {0x555555859bc0 <exec_byte_code+15219>, 0x555555859be5 <exec_byte_code+15256>, 0x555555859be7 <exec_byte_code+15258>, 0x555555859be9 <exec_byte_code+15260>, 0x555555859beb <exec_byte_code+15262>, 0x555555859beb <exec_byte_code+15262>, 0x555555859c50 <exec_byte_code+15363>, 0x555555859cc4 <exec_byte_code+15479>, 0x5555558565eb <exec_byte_code+1438>, 0x5555558565ed <exec_byte_code+1440>, 0x5555558565ef <exec_byte_code+1442>, 0x5555558565f1 <exec_byte_code+1444>, 0x5555558565f3 <exec_byte_code+1446>, 0x5555558565f3 <exec_byte_code+1446>, 0x5555558565f9 <exec_byte_code+1452>, 0x5555558565ba <exec_byte_code+1389>, 0x555555856a11 <exec_byte_code+2500>, 0x555555856a13 <exec_byte_code+2502>, 0x555555856a15 <exec_byte_code+2504>, 0x555555856a17 <exec_byte_code+2506>, 0x555555856a19 <exec_byte_code+2508>, 0x555555856a19 <exec_byte_code+2508>, 0x555555856a4e <exec_byte_code+2561>, 0x555555856a1f <exec_byte_code+2514>, 0x555555856c43 <exec_byte_code+3062>, 0x555555856c45 <exec_byte_code+3064>, 0x555555856c47 <exec_byte_code+3066>, 0x555555856c49 <exec_byte_code+3068>, 0x555555856c4b <exec_byte_code+3070>, 0x555555856c4b <exec_byte_code+3070>, 0x555555856bfd <exec_byte_code+2992>, 0x555555856c14 <exec_byte_code+3015>, 0x555555856cf8 <exec_byte_code+3243>, 0x555555856cfa <exec_byte_code+3245>, 0x555555856cfc <exec_byte_code+3247>, 0x555555856cfe <exec_byte_code+3249>, 0x555555856d00 <exec_byte_code+3251>, 0x555555856d00 <exec_byte_code+3251>, 0x555555856cb2 <exec_byte_code+3173>, 0x555555856cc9 <exec_byte_code+3196>, 0x555555856daa <exec_byte_code+3421>, 0x555555856dac <exec_byte_code+3423>, 0x555555856dae <exec_byte_code+3425>, 0x555555856db0 <exec_byte_code+3427>, 0x555555856db2 <exec_byte_code+3429>, 0x555555856db2 <exec_byte_code+3429>, 0x555555856d64 <exec_byte_code+3351>, 0x555555856d7b <exec_byte_code+3374>, 0x555555857612 <exec_byte_code+5573>, 0x5555558574f5 <exec_byte_code+5288>, 0x5555558574ec <exec_byte_code+5279>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x55555585784c <exec_byte_code+6143>, 0x555555857962 <exec_byte_code+6421>, 0x5555558579bf <exec_byte_code+6514>, 0x555555857a1f <exec_byte_code+6610>, 0x555555857a81 <exec_byte_code+6708>, 0x55555585686a <exec_byte_code+2077>, 0x5555558568e5 <exec_byte_code+2200>, 0x555555857afa <exec_byte_code+6829>, 0x5555558567a7 <exec_byte_code+1882>, 0x55555585694d <exec_byte_code+2304>, 0x555555857b62 <exec_byte_code+6933>, 0x555555857bca <exec_byte_code+7037>, 0x555555857c12 <exec_byte_code+7109>, 0x555555857c7a <exec_byte_code+7213>, 0x555555857ce0 <exec_byte_code+7315>, 0x555555857dc6 <exec_byte_code+7545>, 0x555555857e0e <exec_byte_code+7617>, 0x555555857e76 <exec_byte_code+7721>, 0x555555857efb <exec_byte_code+7854>, 0x555555857f43 <exec_byte_code+7926>, 0x555555857f8b <exec_byte_code+7998>, 0x555555857ff3 <exec_byte_code+8102>, 0x55555585805b <exec_byte_code+8206>, 0x5555558580c3 <exec_byte_code+8310>, 0x555555858148 <exec_byte_code+8443>, 0x555555858197 <exec_byte_code+8522>, 0x5555558581e6 <exec_byte_code+8601>, 0x5555558582ad <exec_byte_code+8800>, 0x5555558583a6 <exec_byte_code+9049>, 0x55555585849f <exec_byte_code+9298>, 0x55555585850c <exec_byte_code+9407>, 0x555555858579 <exec_byte_code+9516>, 0x5555558585e6 <exec_byte_code+9625>, 0x555555858653 <exec_byte_code+9734>, 0x5555558586c0 <exec_byte_code+9843>, 0x55555585870f <exec_byte_code+9922>, 0x555555858809 <exec_byte_code+10172>, 0x555555858858 <exec_byte_code+10251>, 0x5555558588a7 <exec_byte_code+10330>, 0x5555558588f6 <exec_byte_code+10409>, 0x5555558589fc <exec_byte_code+10671>, 0x55555585736c <exec_byte_code+4895>, 0x555555858a57 <exec_byte_code+10762>, 0x555555858a9f <exec_byte_code+10834>, 0x555555858b61 <exec_byte_code+11028>, 0x555555858bca <exec_byte_code+11133>, 0x555555858c25 <exec_byte_code+11224>, 0x555555858c6d <exec_byte_code+11296>, 0x555555858cb0 <exec_byte_code+11363>, 0x555555858cf3 <exec_byte_code+11430>, 0x555555858d3e <exec_byte_code+11505>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555858d96 <exec_byte_code+11593>, 0x555555858dd9 <exec_byte_code+11660>, 0x555555858e1c <exec_byte_code+11727>, 0x555555858e5f <exec_byte_code+11794>, 0x555555858ea2 <exec_byte_code+11861>, 0x555555858ee5 <exec_byte_code+11928>, 0x55555585736c <exec_byte_code+4895>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555858f2d <exec_byte_code+12000>, 0x555555858f7f <exec_byte_code+12082>, 0x555555858fc7 <exec_byte_code+12154>, 0x55555585900f <exec_byte_code+12226>, 0x555555859077 <exec_byte_code+12330>, 0x5555558590df <exec_byte_code+12434>, 0x555555859127 <exec_byte_code+12506>, 0x5555558591e4 <exec_byte_code+12695>, 0x55555585924c <exec_byte_code+12799>, 0x5555558592b4 <exec_byte_code+12903>, 0x55555585931c <exec_byte_code+13007>, 0x55555585935f <exec_byte_code+13074>, 0x555555859bc0 <exec_byte_code+15219>, 0x5555558572b2 <exec_byte_code+4709>, 0x555555856e5c <exec_byte_code+3599>, 0x555555856715 <exec_byte_code+1736>, 0x555555856f0d <exec_byte_code+3776>, 0x555555856f91 <exec_byte_code+3908>, 0x555555857012 <exec_byte_code+4037>, 0x555555857266 <exec_byte_code+4633>, 0x55555585727b <exec_byte_code+4654>, 0x555555856baa <exec_byte_code+2909>, 0x555555857335 <exec_byte_code+4840>, 0x5555558573a3 <exec_byte_code+4950>, 0x555555857434 <exec_byte_code+5095>, 0x55555585747d <exec_byte_code+5168>, 0x55555585765e <exec_byte_code+5649>, 0x5555558576db <exec_byte_code+5774>, 0x555555857760 <exec_byte_code+5907>, 0x5555558577c6 <exec_byte_code+6009>, 0x555555856e0e <exec_byte_code+3521>, 0x5555558593a7 <exec_byte_code+13146>, 0x55555585942c <exec_byte_code+13279>, 0x555555859474 <exec_byte_code+13351>, 0x5555558594bc <exec_byte_code+13423>, 0x555555859504 <exec_byte_code+13495>, 0x55555585954c <exec_byte_code+13567>, 0x5555558595b4 <exec_byte_code+13671>, 0x55555585961c <exec_byte_code+13775>, 0x555555859684 <exec_byte_code+13879>, 0x5555558596ec <exec_byte_code+13983>, 0x555555859835 <exec_byte_code+14312>, 0x55555585989d <exec_byte_code+14416>, 0x555555859905 <exec_byte_code+14520>, 0x55555585994d <exec_byte_code+14592>, 0x5555558599b5 <exec_byte_code+14696>, 0x555555859a1d <exec_byte_code+14800>, 0x555555859a65 <exec_byte_code+14872>, 0x555555859aad <exec_byte_code+14944>, 0x555555858945 <exec_byte_code+10488>, 0x555555858994 <exec_byte_code+10567>, 0x555555859afc <exec_byte_code+15023>, 0x555555859b5e <exec_byte_code+15121>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555857093 <exec_byte_code+4166>, 0x5555558570b0 <exec_byte_code+4195>, 0x55555585711f <exec_byte_code+4306>, 0x55555585718e <exec_byte_code+4417>, 0x5555558571fa <exec_byte_code+4525>, 0x555555857d4e <exec_byte_code+7425>, 0x555555858235 <exec_byte_code+8680>, 0x555555858ae9 <exec_byte_code+10908>, 0x555555859d57 <exec_byte_code+15626>, 0x555555859dcc <exec_byte_code+15743>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859e62 <exec_byte_code+15893>, 0x555555859ee9 <exec_byte_code+16028>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x55555585a037 <exec_byte_code+16362> <repeats 64 times>} const_length = 10 bytestr_length = 56 vectorp = 0x7ffff277c810 quitcounter = 1 '\001' stack_items = 9 sa_avail = 16256 sa_count = 12 alloc = 0x7fffffffbf80 stack_base = 0x7fffffffbf80 top = 0x7fffffffbf98 stack_lim = 0x7fffffffbfc8 bytestr_data = 0x7fffffffbfc8 "\300\001!\301\302\211\303#\211\205\067" pc = 0x7fffffffbfd0 "\211\205\067" count = 12 result = XIL(0xc557d2534) #8 0x00005555557fde53 in fetch_and_exec_byte_code (fun=XIL(0x7ffff277c7b5), syms_left=make_fixnum(256), nargs=1, args=0x7fffffffc4a8) at ../../master/src/eval.c:3036 #9 0x00005555557fe2d9 in funcall_lambda (fun=XIL(0x7ffff277c7b5), nargs=1, arg_vector=0x7fffffffc4a8) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffc420) syms_left = make_fixnum(256) next = XIL(0x555555e63080) lexenv = XIL(0x1800000000) count = 12 i = 93824994985955 optional = false rest = false #10 0x00005555557fd6ac in Ffuncall (nargs=2, args=0x7fffffffc4a0) at ../../master/src/eval.c:2916 fun = XIL(0x7ffff277c7b5) original_fun = XIL(0xbd60) funcar = XIL(0x7fffffffc470) numargs = 1 val = XIL(0x555555e63080) count = 11 #11 0x00005555557fce76 in call1 (fn=XIL(0xbd60), arg1=XIL(0x5555571d7ced)) at ../../master/src/eval.c:2774 #12 0x000055555564d859 in replace_buffer_in_windows (buffer=XIL(0x5555571d7ced)) at ../../master/src/window.c:3429 #13 0x0000555555758e6d in Fkill_buffer (buffer_or_name=XIL(0x5555571d7ced)) at ../../master/src/buffer.c:1830 buffer = XIL(0x5555571d7ced) b = 0x5555571d7ce8 tem = XIL(0x555555753673) m = 0x7fffffffc5f0 #14 0x00005555557fdba0 in funcall_subr (subr=0x555555dd9ce0 <Skill_buffer>, numargs=1, args=0x7fffffffc710) at ../../master/src/eval.c:2987 internal_argbuf = {XIL(0x7fffffffc650), XIL(0x1000000000), XIL(0x555555dd9ce0), XIL(0x7fffffffc658), XIL(0x5555557f47e3), make_fixnum(17538470058), XIL(0x555555dd9ce5), XIL(0x7fffffffc670)} internal_args = 0x7fffffffc710 #15 0x00005555557fd668 in Ffuncall (nargs=2, args=0x7fffffffc708) at ../../master/src/eval.c:2914 fun = XIL(0x555555dd9ce5) original_fun = XIL(0x2aaa9c7147c0) funcar = XIL(0x7fffffffc6d0) numargs = 1 val = XIL(0x7fffffffc6f0) count = 10 #16 0x0000555555856d2b in exec_byte_code (bytestr=XIL(0x7ffff25c7454), vector=XIL(0x5555571fc36d), maxdepth=make_fixnum(2), args_template=make_fixnum(0), nargs=0, args=0x7fffffffcbc0) at ../../master/src/bytecode.c:632 op = 1 type = (CATCHER_ALL | unknown: 0x5588e760) targets = {0x555555859bc0 <exec_byte_code+15219>, 0x555555859be5 <exec_byte_code+15256>, 0x555555859be7 <exec_byte_code+15258>, 0x555555859be9 <exec_byte_code+15260>, 0x555555859beb <exec_byte_code+15262>, 0x555555859beb <exec_byte_code+15262>, 0x555555859c50 <exec_byte_code+15363>, 0x555555859cc4 <exec_byte_code+15479>, 0x5555558565eb <exec_byte_code+1438>, 0x5555558565ed <exec_byte_code+1440>, 0x5555558565ef <exec_byte_code+1442>, 0x5555558565f1 <exec_byte_code+1444>, 0x5555558565f3 <exec_byte_code+1446>, 0x5555558565f3 <exec_byte_code+1446>, 0x5555558565f9 <exec_byte_code+1452>, 0x5555558565ba <exec_byte_code+1389>, 0x555555856a11 <exec_byte_code+2500>, 0x555555856a13 <exec_byte_code+2502>, 0x555555856a15 <exec_byte_code+2504>, 0x555555856a17 <exec_byte_code+2506>, 0x555555856a19 <exec_byte_code+2508>, 0x555555856a19 <exec_byte_code+2508>, 0x555555856a4e <exec_byte_code+2561>, 0x555555856a1f <exec_byte_code+2514>, 0x555555856c43 <exec_byte_code+3062>, 0x555555856c45 <exec_byte_code+3064>, 0x555555856c47 <exec_byte_code+3066>, 0x555555856c49 <exec_byte_code+3068>, 0x555555856c4b <exec_byte_code+3070>, 0x555555856c4b <exec_byte_code+3070>, 0x555555856bfd <exec_byte_code+2992>, 0x555555856c14 <exec_byte_code+3015>, 0x555555856cf8 <exec_byte_code+3243>, 0x555555856cfa <exec_byte_code+3245>, 0x555555856cfc <exec_byte_code+3247>, 0x555555856cfe <exec_byte_code+3249>, 0x555555856d00 <exec_byte_code+3251>, 0x555555856d00 <exec_byte_code+3251>, 0x555555856cb2 <exec_byte_code+3173>, 0x555555856cc9 <exec_byte_code+3196>, 0x555555856daa <exec_byte_code+3421>, 0x555555856dac <exec_byte_code+3423>, 0x555555856dae <exec_byte_code+3425>, 0x555555856db0 <exec_byte_code+3427>, 0x555555856db2 <exec_byte_code+3429>, 0x555555856db2 <exec_byte_code+3429>, 0x555555856d64 <exec_byte_code+3351>, 0x555555856d7b <exec_byte_code+3374>, 0x555555857612 <exec_byte_code+5573>, 0x5555558574f5 <exec_byte_code+5288>, 0x5555558574ec <exec_byte_code+5279>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x55555585784c <exec_byte_code+6143>, 0x555555857962 <exec_byte_code+6421>, 0x5555558579bf <exec_byte_code+6514>, 0x555555857a1f <exec_byte_code+6610>, 0x555555857a81 <exec_byte_code+6708>, 0x55555585686a <exec_byte_code+2077>, 0x5555558568e5 <exec_byte_code+2200>, 0x555555857afa <exec_byte_code+6829>, 0x5555558567a7 <exec_byte_code+1882>, 0x55555585694d <exec_byte_code+2304>, 0x555555857b62 <exec_byte_code+6933>, 0x555555857bca <exec_byte_code+7037>, 0x555555857c12 <exec_byte_code+7109>, 0x555555857c7a <exec_byte_code+7213>, 0x555555857ce0 <exec_byte_code+7315>, 0x555555857dc6 <exec_byte_code+7545>, 0x555555857e0e <exec_byte_code+7617>, 0x555555857e76 <exec_byte_code+7721>, 0x555555857efb <exec_byte_code+7854>, 0x555555857f43 <exec_byte_code+7926>, 0x555555857f8b <exec_byte_code+7998>, 0x555555857ff3 <exec_byte_code+8102>, 0x55555585805b <exec_byte_code+8206>, 0x5555558580c3 <exec_byte_code+8310>, 0x555555858148 <exec_byte_code+8443>, 0x555555858197 <exec_byte_code+8522>, 0x5555558581e6 <exec_byte_code+8601>, 0x5555558582ad <exec_byte_code+8800>, 0x5555558583a6 <exec_byte_code+9049>, 0x55555585849f <exec_byte_code+9298>, 0x55555585850c <exec_byte_code+9407>, 0x555555858579 <exec_byte_code+9516>, 0x5555558585e6 <exec_byte_code+9625>, 0x555555858653 <exec_byte_code+9734>, 0x5555558586c0 <exec_byte_code+9843>, 0x55555585870f <exec_byte_code+9922>, 0x555555858809 <exec_byte_code+10172>, 0x555555858858 <exec_byte_code+10251>, 0x5555558588a7 <exec_byte_code+10330>, 0x5555558588f6 <exec_byte_code+10409>, 0x5555558589fc <exec_byte_code+10671>, 0x55555585736c <exec_byte_code+4895>, 0x555555858a57 <exec_byte_code+10762>, 0x555555858a9f <exec_byte_code+10834>, 0x555555858b61 <exec_byte_code+11028>, 0x555555858bca <exec_byte_code+11133>, 0x555555858c25 <exec_byte_code+11224>, 0x555555858c6d <exec_byte_code+11296>, 0x555555858cb0 <exec_byte_code+11363>, 0x555555858cf3 <exec_byte_code+11430>, 0x555555858d3e <exec_byte_code+11505>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555858d96 <exec_byte_code+11593>, 0x555555858dd9 <exec_byte_code+11660>, 0x555555858e1c <exec_byte_code+11727>, 0x555555858e5f <exec_byte_code+11794>, 0x555555858ea2 <exec_byte_code+11861>, 0x555555858ee5 <exec_byte_code+11928>, 0x55555585736c <exec_byte_code+4895>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555858f2d <exec_byte_code+12000>, 0x555555858f7f <exec_byte_code+12082>, 0x555555858fc7 <exec_byte_code+12154>, 0x55555585900f <exec_byte_code+12226>, 0x555555859077 <exec_byte_code+12330>, 0x5555558590df <exec_byte_code+12434>, 0x555555859127 <exec_byte_code+12506>, 0x5555558591e4 <exec_byte_code+12695>, 0x55555585924c <exec_byte_code+12799>, 0x5555558592b4 <exec_byte_code+12903>, 0x55555585931c <exec_byte_code+13007>, 0x55555585935f <exec_byte_code+13074>, 0x555555859bc0 <exec_byte_code+15219>, 0x5555558572b2 <exec_byte_code+4709>, 0x555555856e5c <exec_byte_code+3599>, 0x555555856715 <exec_byte_code+1736>, 0x555555856f0d <exec_byte_code+3776>, 0x555555856f91 <exec_byte_code+3908>, 0x555555857012 <exec_byte_code+4037>, 0x555555857266 <exec_byte_code+4633>, 0x55555585727b <exec_byte_code+4654>, 0x555555856baa <exec_byte_code+2909>, 0x555555857335 <exec_byte_code+4840>, 0x5555558573a3 <exec_byte_code+4950>, 0x555555857434 <exec_byte_code+5095>, 0x55555585747d <exec_byte_code+5168>, 0x55555585765e <exec_byte_code+5649>, 0x5555558576db <exec_byte_code+5774>, 0x555555857760 <exec_byte_code+5907>, 0x5555558577c6 <exec_byte_code+6009>, 0x555555856e0e <exec_byte_code+3521>, 0x5555558593a7 <exec_byte_code+13146>, 0x55555585942c <exec_byte_code+13279>, 0x555555859474 <exec_byte_code+13351>, 0x5555558594bc <exec_byte_code+13423>, 0x555555859504 <exec_byte_code+13495>, 0x55555585954c <exec_byte_code+13567>, 0x5555558595b4 <exec_byte_code+13671>, 0x55555585961c <exec_byte_code+13775>, 0x555555859684 <exec_byte_code+13879>, 0x5555558596ec <exec_byte_code+13983>, 0x555555859835 <exec_byte_code+14312>, 0x55555585989d <exec_byte_code+14416>, 0x555555859905 <exec_byte_code+14520>, 0x55555585994d <exec_byte_code+14592>, 0x5555558599b5 <exec_byte_code+14696>, 0x555555859a1d <exec_byte_code+14800>, 0x555555859a65 <exec_byte_code+14872>, 0x555555859aad <exec_byte_code+14944>, 0x555555858945 <exec_byte_code+10488>, 0x555555858994 <exec_byte_code+10567>, 0x555555859afc <exec_byte_code+15023>, 0x555555859b5e <exec_byte_code+15121>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555857093 <exec_byte_code+4166>, 0x5555558570b0 <exec_byte_code+4195>, 0x55555585711f <exec_byte_code+4306>, 0x55555585718e <exec_byte_code+4417>, 0x5555558571fa <exec_byte_code+4525>, 0x555555857d4e <exec_byte_code+7425>, 0x555555858235 <exec_byte_code+8680>, 0x555555858ae9 <exec_byte_code+10908>, 0x555555859d57 <exec_byte_code+15626>, 0x555555859dcc <exec_byte_code+15743>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859e62 <exec_byte_code+15893>, 0x555555859ee9 <exec_byte_code+16028>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x55555585a037 <exec_byte_code+16362> <repeats 64 times>} const_length = 3 bytestr_length = 10 vectorp = 0x5555571fc370 quitcounter = 1 '\001' stack_items = 3 sa_avail = 16350 sa_count = 10 alloc = 0x7fffffffc700 stack_base = 0x7fffffffc700 top = 0x7fffffffc708 stack_lim = 0x7fffffffc718 bytestr_data = 0x7fffffffc718 "\301\300!\205\t" pc = 0x7fffffffc721 "\207\377\377\377\177" count = 10 result = XIL(0x9) #17 0x00005555557fde53 in fetch_and_exec_byte_code (fun=XIL(0x5555571d80fd), syms_left=make_fixnum(0), nargs=0, args=0x7fffffffcbc0) at ../../master/src/eval.c:3036 #18 0x00005555557fe2d9 in funcall_lambda (fun=XIL(0x5555571d80fd), nargs=0, arg_vector=0x7fffffffcbc0) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffcb40) syms_left = make_fixnum(0) next = XIL(0x1) lexenv = XIL(0x1800000000) count = 10 i = 93824994985955 optional = false rest = false #19 0x00005555557fd6ac in Ffuncall (nargs=1, args=0x7fffffffcbb8) at ../../master/src/eval.c:2916 fun = XIL(0x5555571d80fd) original_fun = XIL(0x5555571d80fd) funcar = XIL(0x7fffffffcb70) numargs = 0 val = XIL(0x555555e63080) count = 9 #20 0x000055555585604a in bcall0 (f=XIL(0x5555571d80fd)) at ../../master/src/bytecode.c:340 #21 0x00005555557ffae0 in do_one_unbind (this_binding=0x7fffffffcc30, unwinding=true, bindflag=SET_INTERNAL_UNBIND) at ../../master/src/eval.c:3575 #22 0x00005555557fff0c in unbind_to (count=8, value=XIL(0)) at ../../master/src/eval.c:3713 this_binding = { kind = SPECPDL_UNWIND, unwind = { kind = SPECPDL_UNWIND, func = 0x55555585602d <bcall0>, arg = XIL(0x5555571d80fd), eval_depth = 4 }, unwind_array = { kind = SPECPDL_UNWIND, nelts = 93824995385389, array = 0x5555571d80fd }, unwind_ptr = { kind = SPECPDL_UNWIND, func = 0x55555585602d <bcall0>, arg = 0x5555571d80fd }, unwind_int = { kind = SPECPDL_UNWIND, func = 0x55555585602d <bcall0>, arg = 1461551357 }, unwind_intmax = { kind = SPECPDL_UNWIND, func = 0x55555585602d <bcall0>, arg = 93825022132477 }, unwind_excursion = { kind = SPECPDL_UNWIND, marker = XIL(0x55555585602d), window = XIL(0x5555571d80fd) }, unwind_void = { kind = SPECPDL_UNWIND, func = 0x55555585602d <bcall0> }, let = { kind = SPECPDL_UNWIND, symbol = XIL(0x55555585602d), old_value = XIL(0x5555571d80fd), where = XIL(0x4), saved_value = XIL(0) }, bt = { kind = SPECPDL_UNWIND, debug_on_exit = false, function = XIL(0x55555585602d), args = 0x5555571d80fd, nargs = 4 } } quitf = XIL(0) #23 0x0000555555856ddc in exec_byte_code (bytestr=XIL(0x7ffff2908874), vector=XIL(0x7ffff2908525), maxdepth=make_fixnum(23), args_template=make_fixnum(257), nargs=1, args=0x7fffffffd3e0) at ../../master/src/bytecode.c:652 op = 2 type = (unknown: 0xffffd230) targets = {0x555555859bc0 <exec_byte_code+15219>, 0x555555859be5 <exec_byte_code+15256>, 0x555555859be7 <exec_byte_code+15258>, 0x555555859be9 <exec_byte_code+15260>, 0x555555859beb <exec_byte_code+15262>, 0x555555859beb <exec_byte_code+15262>, 0x555555859c50 <exec_byte_code+15363>, 0x555555859cc4 <exec_byte_code+15479>, 0x5555558565eb <exec_byte_code+1438>, 0x5555558565ed <exec_byte_code+1440>, 0x5555558565ef <exec_byte_code+1442>, 0x5555558565f1 <exec_byte_code+1444>, 0x5555558565f3 <exec_byte_code+1446>, 0x5555558565f3 <exec_byte_code+1446>, 0x5555558565f9 <exec_byte_code+1452>, 0x5555558565ba <exec_byte_code+1389>, 0x555555856a11 <exec_byte_code+2500>, 0x555555856a13 <exec_byte_code+2502>, 0x555555856a15 <exec_byte_code+2504>, 0x555555856a17 <exec_byte_code+2506>, 0x555555856a19 <exec_byte_code+2508>, 0x555555856a19 <exec_byte_code+2508>, 0x555555856a4e <exec_byte_code+2561>, 0x555555856a1f <exec_byte_code+2514>, 0x555555856c43 <exec_byte_code+3062>, 0x555555856c45 <exec_byte_code+3064>, 0x555555856c47 <exec_byte_code+3066>, 0x555555856c49 <exec_byte_code+3068>, 0x555555856c4b <exec_byte_code+3070>, 0x555555856c4b <exec_byte_code+3070>, 0x555555856bfd <exec_byte_code+2992>, 0x555555856c14 <exec_byte_code+3015>, 0x555555856cf8 <exec_byte_code+3243>, 0x555555856cfa <exec_byte_code+3245>, 0x555555856cfc <exec_byte_code+3247>, 0x555555856cfe <exec_byte_code+3249>, 0x555555856d00 <exec_byte_code+3251>, 0x555555856d00 <exec_byte_code+3251>, 0x555555856cb2 <exec_byte_code+3173>, 0x555555856cc9 <exec_byte_code+3196>, 0x555555856daa <exec_byte_code+3421>, 0x555555856dac <exec_byte_code+3423>, 0x555555856dae <exec_byte_code+3425>, 0x555555856db0 <exec_byte_code+3427>, 0x555555856db2 <exec_byte_code+3429>, 0x555555856db2 <exec_byte_code+3429>, 0x555555856d64 <exec_byte_code+3351>, 0x555555856d7b <exec_byte_code+3374>, 0x555555857612 <exec_byte_code+5573>, 0x5555558574f5 <exec_byte_code+5288>, 0x5555558574ec <exec_byte_code+5279>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x55555585784c <exec_byte_code+6143>, 0x555555857962 <exec_byte_code+6421>, 0x5555558579bf <exec_byte_code+6514>, 0x555555857a1f <exec_byte_code+6610>, 0x555555857a81 <exec_byte_code+6708>, 0x55555585686a <exec_byte_code+2077>, 0x5555558568e5 <exec_byte_code+2200>, 0x555555857afa <exec_byte_code+6829>, 0x5555558567a7 <exec_byte_code+1882>, 0x55555585694d <exec_byte_code+2304>, 0x555555857b62 <exec_byte_code+6933>, 0x555555857bca <exec_byte_code+7037>, 0x555555857c12 <exec_byte_code+7109>, 0x555555857c7a <exec_byte_code+7213>, 0x555555857ce0 <exec_byte_code+7315>, 0x555555857dc6 <exec_byte_code+7545>, 0x555555857e0e <exec_byte_code+7617>, 0x555555857e76 <exec_byte_code+7721>, 0x555555857efb <exec_byte_code+7854>, 0x555555857f43 <exec_byte_code+7926>, 0x555555857f8b <exec_byte_code+7998>, 0x555555857ff3 <exec_byte_code+8102>, 0x55555585805b <exec_byte_code+8206>, 0x5555558580c3 <exec_byte_code+8310>, 0x555555858148 <exec_byte_code+8443>, 0x555555858197 <exec_byte_code+8522>, 0x5555558581e6 <exec_byte_code+8601>, 0x5555558582ad <exec_byte_code+8800>, 0x5555558583a6 <exec_byte_code+9049>, 0x55555585849f <exec_byte_code+9298>, 0x55555585850c <exec_byte_code+9407>, 0x555555858579 <exec_byte_code+9516>, 0x5555558585e6 <exec_byte_code+9625>, 0x555555858653 <exec_byte_code+9734>, 0x5555558586c0 <exec_byte_code+9843>, 0x55555585870f <exec_byte_code+9922>, 0x555555858809 <exec_byte_code+10172>, 0x555555858858 <exec_byte_code+10251>, 0x5555558588a7 <exec_byte_code+10330>, 0x5555558588f6 <exec_byte_code+10409>, 0x5555558589fc <exec_byte_code+10671>, 0x55555585736c <exec_byte_code+4895>, 0x555555858a57 <exec_byte_code+10762>, 0x555555858a9f <exec_byte_code+10834>, 0x555555858b61 <exec_byte_code+11028>, 0x555555858bca <exec_byte_code+11133>, 0x555555858c25 <exec_byte_code+11224>, 0x555555858c6d <exec_byte_code+11296>, 0x555555858cb0 <exec_byte_code+11363>, 0x555555858cf3 <exec_byte_code+11430>, 0x555555858d3e <exec_byte_code+11505>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555858d96 <exec_byte_code+11593>, 0x555555858dd9 <exec_byte_code+11660>, 0x555555858e1c <exec_byte_code+11727>, 0x555555858e5f <exec_byte_code+11794>, 0x555555858ea2 <exec_byte_code+11861>, 0x555555858ee5 <exec_byte_code+11928>, 0x55555585736c <exec_byte_code+4895>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555858f2d <exec_byte_code+12000>, 0x555555858f7f <exec_byte_code+12082>, 0x555555858fc7 <exec_byte_code+12154>, 0x55555585900f <exec_byte_code+12226>, 0x555555859077 <exec_byte_code+12330>, 0x5555558590df <exec_byte_code+12434>, 0x555555859127 <exec_byte_code+12506>, 0x5555558591e4 <exec_byte_code+12695>, 0x55555585924c <exec_byte_code+12799>, 0x5555558592b4 <exec_byte_code+12903>, 0x55555585931c <exec_byte_code+13007>, 0x55555585935f <exec_byte_code+13074>, 0x555555859bc0 <exec_byte_code+15219>, 0x5555558572b2 <exec_byte_code+4709>, 0x555555856e5c <exec_byte_code+3599>, 0x555555856715 <exec_byte_code+1736>, 0x555555856f0d <exec_byte_code+3776>, 0x555555856f91 <exec_byte_code+3908>, 0x555555857012 <exec_byte_code+4037>, 0x555555857266 <exec_byte_code+4633>, 0x55555585727b <exec_byte_code+4654>, 0x555555856baa <exec_byte_code+2909>, 0x555555857335 <exec_byte_code+4840>, 0x5555558573a3 <exec_byte_code+4950>, 0x555555857434 <exec_byte_code+5095>, 0x55555585747d <exec_byte_code+5168>, 0x55555585765e <exec_byte_code+5649>, 0x5555558576db <exec_byte_code+5774>, 0x555555857760 <exec_byte_code+5907>, 0x5555558577c6 <exec_byte_code+6009>, 0x555555856e0e <exec_byte_code+3521>, 0x5555558593a7 <exec_byte_code+13146>, 0x55555585942c <exec_byte_code+13279>, 0x555555859474 <exec_byte_code+13351>, 0x5555558594bc <exec_byte_code+13423>, 0x555555859504 <exec_byte_code+13495>, 0x55555585954c <exec_byte_code+13567>, 0x5555558595b4 <exec_byte_code+13671>, 0x55555585961c <exec_byte_code+13775>, 0x555555859684 <exec_byte_code+13879>, 0x5555558596ec <exec_byte_code+13983>, 0x555555859835 <exec_byte_code+14312>, 0x55555585989d <exec_byte_code+14416>, 0x555555859905 <exec_byte_code+14520>, 0x55555585994d <exec_byte_code+14592>, 0x5555558599b5 <exec_byte_code+14696>, 0x555555859a1d <exec_byte_code+14800>, 0x555555859a65 <exec_byte_code+14872>, 0x555555859aad <exec_byte_code+14944>, 0x555555858945 <exec_byte_code+10488>, 0x555555858994 <exec_byte_code+10567>, 0x555555859afc <exec_byte_code+15023>, 0x555555859b5e <exec_byte_code+15121>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555857093 <exec_byte_code+4166>, 0x5555558570b0 <exec_byte_code+4195>, 0x55555585711f <exec_byte_code+4306>, 0x55555585718e <exec_byte_code+4417>, 0x5555558571fa <exec_byte_code+4525>, 0x555555857d4e <exec_byte_code+7425>, 0x555555858235 <exec_byte_code+8680>, 0x555555858ae9 <exec_byte_code+10908>, 0x555555859d57 <exec_byte_code+15626>, 0x555555859dcc <exec_byte_code+15743>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859e62 <exec_byte_code+15893>, 0x555555859ee9 <exec_byte_code+16028>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x55555585a037 <exec_byte_code+16362> <repeats 64 times>} const_length = 51 bytestr_length = 494 vectorp = 0x7ffff2908528 quitcounter = 59 ';' stack_items = 24 sa_avail = 15698 sa_count = 7 alloc = 0x7fffffffcc80 stack_base = 0x7fffffffcc80 top = 0x7fffffffccb0 stack_lim = 0x7fffffffcd40 bytestr_data = 0x7fffffffcd40 "\211??\205\355\001\b\302p\001\031\303\304\302\"r\211q\210\305\306\002\"\216\004c\210eb\210`dW\203\345\001`lj\211\211g\310U\203\234\001\311\061:" pc = 0x7fffffffcf28 "\262\001)\266\203\207" count = 7 result = XIL(0) #24 0x00005555557fde53 in fetch_and_exec_byte_code (fun=XIL(0x7ffff29084f5), syms_left=make_fixnum(257), nargs=1, args=0x7fffffffd3d8) at ../../master/src/eval.c:3036 #25 0x00005555557fe2d9 in funcall_lambda (fun=XIL(0x7ffff29084f5), nargs=1, arg_vector=0x7fffffffd3d8) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffd350) syms_left = make_fixnum(257) next = XIL(0x555555e63080) lexenv = XIL(0x1800000000) count = 7 i = 93824994985955 optional = false rest = false #26 0x00005555557fd6ac in Ffuncall (nargs=2, args=0x7fffffffd3d0) at ../../master/src/eval.c:2916 fun = XIL(0x7ffff29084f5) original_fun = XIL(0xcff0) funcar = XIL(0x555555e63080) numargs = 1 val = XIL(0x5af0) count = 6 #27 0x00005555557fce76 in call1 (fn=XIL(0xcff0), arg1=XIL(0x555556232294)) at ../../master/src/eval.c:2774 #28 0x0000555555831074 in print_error_message (data=XIL(0x55555863cb33), stream=XIL(0x30), context=0x7ffff2c64148 "", caller=XIL(0)) at ../../master/src/print.c:944 error_conditions = XIL(0x7ffff2c2da33) errname = XIL(0xb820) errmsg = XIL(0x55555571d654) file_error = XIL(0x7fffffffd4c0) tail = XIL(0x30) #29 0x0000555555720a23 in Fcommand_error_default_function (data=XIL(0x55555863cb33), context=XIL(0x7ffff25734c4), signal=XIL(0)) at ../../master/src/keyboard.c:1032 sf = 0x55555702c630 #30 0x00005555557fdbfa in funcall_subr (subr=0x555555dd86a0 <Scommand_error_default_function>, numargs=3, args=0x7fffffffd628) at ../../master/src/eval.c:2992 internal_argbuf = {XIL(0x7fffffffd570), XIL(0x1000000000), XIL(0x555555dd86a0), XIL(0x7fffffffd578), XIL(0x5555557f47e3), make_fixnum(17538470058), XIL(0x555555dd86a5), XIL(0x7fffffffd590)} internal_args = 0x7fffffffd628 #31 0x00005555557fd668 in Ffuncall (nargs=4, args=0x7fffffffd620) at ../../master/src/eval.c:2914 fun = XIL(0x555555dd86a5) original_fun = XIL(0x2aaa9ccc8548) funcar = XIL(0x7fffffffd5f0) numargs = 3 val = XIL(0x7fffffffd610) count = 5 #32 0x00005555557fc78c in Fapply (nargs=2, args=0x7fffffffd7e8) at ../../master/src/eval.c:2544 i = 4 funcall_nargs = 4 funcall_args = 0x7fffffffd620 spread_arg = XIL(0) fun = XIL(0x555555dd86a5) sa_avail = 16352 sa_count = 5 numargs = 3 retval = XIL(0) #33 0x00005555557fda91 in funcall_subr (subr=0x555555de04a0 <Sapply>, numargs=2, args=0x7fffffffd7e8) at ../../master/src/eval.c:2967 #34 0x00005555557fd668 in Ffuncall (nargs=3, args=0x7fffffffd7e0) at ../../master/src/eval.c:2914 fun = XIL(0x555555de04a5) original_fun = XIL(0x2d60) funcar = XIL(0x7fffffffd7a0) numargs = 2 val = XIL(0x7fffffffdcc8) count = 4 #35 0x0000555555856d2b in exec_byte_code (bytestr=XIL(0x7ffff258f0e4), vector=XIL(0x7ffff2c1d11d), maxdepth=make_fixnum(5), args_template=make_fixnum(128), nargs=3, args=0x7fffffffdcc8) at ../../master/src/bytecode.c:632 op = 2 type = (unknown: 0xffffdb10) targets = {0x555555859bc0 <exec_byte_code+15219>, 0x555555859be5 <exec_byte_code+15256>, 0x555555859be7 <exec_byte_code+15258>, 0x555555859be9 <exec_byte_code+15260>, 0x555555859beb <exec_byte_code+15262>, 0x555555859beb <exec_byte_code+15262>, 0x555555859c50 <exec_byte_code+15363>, 0x555555859cc4 <exec_byte_code+15479>, 0x5555558565eb <exec_byte_code+1438>, 0x5555558565ed <exec_byte_code+1440>, 0x5555558565ef <exec_byte_code+1442>, 0x5555558565f1 <exec_byte_code+1444>, 0x5555558565f3 <exec_byte_code+1446>, 0x5555558565f3 <exec_byte_code+1446>, 0x5555558565f9 <exec_byte_code+1452>, 0x5555558565ba <exec_byte_code+1389>, 0x555555856a11 <exec_byte_code+2500>, 0x555555856a13 <exec_byte_code+2502>, 0x555555856a15 <exec_byte_code+2504>, 0x555555856a17 <exec_byte_code+2506>, 0x555555856a19 <exec_byte_code+2508>, 0x555555856a19 <exec_byte_code+2508>, 0x555555856a4e <exec_byte_code+2561>, 0x555555856a1f <exec_byte_code+2514>, 0x555555856c43 <exec_byte_code+3062>, 0x555555856c45 <exec_byte_code+3064>, 0x555555856c47 <exec_byte_code+3066>, 0x555555856c49 <exec_byte_code+3068>, 0x555555856c4b <exec_byte_code+3070>, 0x555555856c4b <exec_byte_code+3070>, 0x555555856bfd <exec_byte_code+2992>, 0x555555856c14 <exec_byte_code+3015>, 0x555555856cf8 <exec_byte_code+3243>, 0x555555856cfa <exec_byte_code+3245>, 0x555555856cfc <exec_byte_code+3247>, 0x555555856cfe <exec_byte_code+3249>, 0x555555856d00 <exec_byte_code+3251>, 0x555555856d00 <exec_byte_code+3251>, 0x555555856cb2 <exec_byte_code+3173>, 0x555555856cc9 <exec_byte_code+3196>, 0x555555856daa <exec_byte_code+3421>, 0x555555856dac <exec_byte_code+3423>, 0x555555856dae <exec_byte_code+3425>, 0x555555856db0 <exec_byte_code+3427>, 0x555555856db2 <exec_byte_code+3429>, 0x555555856db2 <exec_byte_code+3429>, 0x555555856d64 <exec_byte_code+3351>, 0x555555856d7b <exec_byte_code+3374>, 0x555555857612 <exec_byte_code+5573>, 0x5555558574f5 <exec_byte_code+5288>, 0x5555558574ec <exec_byte_code+5279>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x55555585784c <exec_byte_code+6143>, 0x555555857962 <exec_byte_code+6421>, 0x5555558579bf <exec_byte_code+6514>, 0x555555857a1f <exec_byte_code+6610>, 0x555555857a81 <exec_byte_code+6708>, 0x55555585686a <exec_byte_code+2077>, 0x5555558568e5 <exec_byte_code+2200>, 0x555555857afa <exec_byte_code+6829>, 0x5555558567a7 <exec_byte_code+1882>, 0x55555585694d <exec_byte_code+2304>, 0x555555857b62 <exec_byte_code+6933>, 0x555555857bca <exec_byte_code+7037>, 0x555555857c12 <exec_byte_code+7109>, 0x555555857c7a <exec_byte_code+7213>, 0x555555857ce0 <exec_byte_code+7315>, 0x555555857dc6 <exec_byte_code+7545>, 0x555555857e0e <exec_byte_code+7617>, 0x555555857e76 <exec_byte_code+7721>, 0x555555857efb <exec_byte_code+7854>, 0x555555857f43 <exec_byte_code+7926>, 0x555555857f8b <exec_byte_code+7998>, 0x555555857ff3 <exec_byte_code+8102>, 0x55555585805b <exec_byte_code+8206>, 0x5555558580c3 <exec_byte_code+8310>, 0x555555858148 <exec_byte_code+8443>, 0x555555858197 <exec_byte_code+8522>, 0x5555558581e6 <exec_byte_code+8601>, 0x5555558582ad <exec_byte_code+8800>, 0x5555558583a6 <exec_byte_code+9049>, 0x55555585849f <exec_byte_code+9298>, 0x55555585850c <exec_byte_code+9407>, 0x555555858579 <exec_byte_code+9516>, 0x5555558585e6 <exec_byte_code+9625>, 0x555555858653 <exec_byte_code+9734>, 0x5555558586c0 <exec_byte_code+9843>, 0x55555585870f <exec_byte_code+9922>, 0x555555858809 <exec_byte_code+10172>, 0x555555858858 <exec_byte_code+10251>, 0x5555558588a7 <exec_byte_code+10330>, 0x5555558588f6 <exec_byte_code+10409>, 0x5555558589fc <exec_byte_code+10671>, 0x55555585736c <exec_byte_code+4895>, 0x555555858a57 <exec_byte_code+10762>, 0x555555858a9f <exec_byte_code+10834>, 0x555555858b61 <exec_byte_code+11028>, 0x555555858bca <exec_byte_code+11133>, 0x555555858c25 <exec_byte_code+11224>, 0x555555858c6d <exec_byte_code+11296>, 0x555555858cb0 <exec_byte_code+11363>, 0x555555858cf3 <exec_byte_code+11430>, 0x555555858d3e <exec_byte_code+11505>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555858d96 <exec_byte_code+11593>, 0x555555858dd9 <exec_byte_code+11660>, 0x555555858e1c <exec_byte_code+11727>, 0x555555858e5f <exec_byte_code+11794>, 0x555555858ea2 <exec_byte_code+11861>, 0x555555858ee5 <exec_byte_code+11928>, 0x55555585736c <exec_byte_code+4895>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555858f2d <exec_byte_code+12000>, 0x555555858f7f <exec_byte_code+12082>, 0x555555858fc7 <exec_byte_code+12154>, 0x55555585900f <exec_byte_code+12226>, 0x555555859077 <exec_byte_code+12330>, 0x5555558590df <exec_byte_code+12434>, 0x555555859127 <exec_byte_code+12506>, 0x5555558591e4 <exec_byte_code+12695>, 0x55555585924c <exec_byte_code+12799>, 0x5555558592b4 <exec_byte_code+12903>, 0x55555585931c <exec_byte_code+13007>, 0x55555585935f <exec_byte_code+13074>, 0x555555859bc0 <exec_byte_code+15219>, 0x5555558572b2 <exec_byte_code+4709>, 0x555555856e5c <exec_byte_code+3599>, 0x555555856715 <exec_byte_code+1736>, 0x555555856f0d <exec_byte_code+3776>, 0x555555856f91 <exec_byte_code+3908>, 0x555555857012 <exec_byte_code+4037>, 0x555555857266 <exec_byte_code+4633>, 0x55555585727b <exec_byte_code+4654>, 0x555555856baa <exec_byte_code+2909>, 0x555555857335 <exec_byte_code+4840>, 0x5555558573a3 <exec_byte_code+4950>, 0x555555857434 <exec_byte_code+5095>, 0x55555585747d <exec_byte_code+5168>, 0x55555585765e <exec_byte_code+5649>, 0x5555558576db <exec_byte_code+5774>, 0x555555857760 <exec_byte_code+5907>, 0x5555558577c6 <exec_byte_code+6009>, 0x555555856e0e <exec_byte_code+3521>, 0x5555558593a7 <exec_byte_code+13146>, 0x55555585942c <exec_byte_code+13279>, 0x555555859474 <exec_byte_code+13351>, 0x5555558594bc <exec_byte_code+13423>, 0x555555859504 <exec_byte_code+13495>, 0x55555585954c <exec_byte_code+13567>, 0x5555558595b4 <exec_byte_code+13671>, 0x55555585961c <exec_byte_code+13775>, 0x555555859684 <exec_byte_code+13879>, 0x5555558596ec <exec_byte_code+13983>, 0x555555859835 <exec_byte_code+14312>, 0x55555585989d <exec_byte_code+14416>, 0x555555859905 <exec_byte_code+14520>, 0x55555585994d <exec_byte_code+14592>, 0x5555558599b5 <exec_byte_code+14696>, 0x555555859a1d <exec_byte_code+14800>, 0x555555859a65 <exec_byte_code+14872>, 0x555555859aad <exec_byte_code+14944>, 0x555555858945 <exec_byte_code+10488>, 0x555555858994 <exec_byte_code+10567>, 0x555555859afc <exec_byte_code+15023>, 0x555555859b5e <exec_byte_code+15121>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555857093 <exec_byte_code+4166>, 0x5555558570b0 <exec_byte_code+4195>, 0x55555585711f <exec_byte_code+4306>, 0x55555585718e <exec_byte_code+4417>, 0x5555558571fa <exec_byte_code+4525>, 0x555555857d4e <exec_byte_code+7425>, 0x555555858235 <exec_byte_code+8680>, 0x555555858ae9 <exec_byte_code+10908>, 0x555555859d57 <exec_byte_code+15626>, 0x555555859dcc <exec_byte_code+15743>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859e62 <exec_byte_code+15893>, 0x555555859ee9 <exec_byte_code+16028>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x555555859bc0 <exec_byte_code+15219>, 0x55555585a037 <exec_byte_code+16362> <repeats 64 times>} const_length = 4 bytestr_length = 10 vectorp = 0x7ffff2c1d120 quitcounter = 1 '\001' stack_items = 6 sa_avail = 16326 sa_count = 4 alloc = 0x7fffffffd7d0 stack_base = 0x7fffffffd7d0 top = 0x7fffffffd7e0 stack_lim = 0x7fffffffd800 bytestr_data = 0x7fffffffd800 "\300\302\002\"\300\301\003\"\210\207" pc = 0x7fffffffd804 "\300\301\003\"\210\207" count = 4 result = make_fixnum(23456248746154) #36 0x00005555557fde53 in fetch_and_exec_byte_code (fun=XIL(0x7ffff2c1d0ed), syms_left=make_fixnum(128), nargs=3, args=0x7fffffffdcc8) at ../../master/src/eval.c:3036 #37 0x00005555557fe2d9 in funcall_lambda (fun=XIL(0x7ffff2c1d0ed), nargs=3, arg_vector=0x7fffffffdcc8) at ../../master/src/eval.c:3117 val = XIL(0x7fffffffdc30) syms_left = make_fixnum(128) next = make_fixnum(2) lexenv = XIL(0x1800000003) count = 4 i = 93824994985955 optional = false rest = false #38 0x00005555557fd6ac in Ffuncall (nargs=4, args=0x7fffffffdcc0) at ../../master/src/eval.c:2916 fun = XIL(0x7ffff2c1d0ed) original_fun = XIL(0x7ffff2c1d0ed) funcar = XIL(0x7fffffffdc70) numargs = 3 val = XIL(0x7fffffffdc90) count = 3 #39 0x00005555557fcf00 in call3 (fn=XIL(0x7ffff2c1d0ed), arg1=XIL(0x55555863cb33), arg2=XIL(0x7ffff25734c4), arg3=XIL(0)) at ../../master/src/eval.c:2788 #40 0x000055555572083e in cmd_error_internal (data=XIL(0x55555863cb33), context=0x7fffffffdd70 "") at ../../master/src/keyboard.c:987 #41 0x000055555572070c in cmd_error (data=XIL(0x55555863cb33)) at ../../master/src/keyboard.c:956 old_level = XIL(0) old_length = XIL(0) macroerror = "\000\000\000\000\000\000\000\000\360\350\365UUU\000\000\260\335\377\377\001", '\000' <repeats 11 times>, "\060\256_\001\000\000\000\000m\230\177UUU\000\000Ph" #42 0x00005555557f941c in internal_condition_case (bfun=0x555555720f96 <command_loop_1>, handlers=XIL(0x90), hfun=0x5555557205b9 <cmd_error>) at ../../master/src/eval.c:1435 val = XIL(0x55555863cb33) c = 0x555555f5e8f0 #43 0x0000555555720b86 in command_loop_2 (ignore=XIL(0)) at ../../master/src/keyboard.c:1094 val = XIL(0) #44 0x00005555557f8834 in internal_catch (tag=XIL(0xd9e0), func=0x555555720b59 <command_loop_2>, arg=XIL(0)) at ../../master/src/eval.c:1189 val = XIL(0xd9e0) c = 0x555555f47770 #45 0x0000555555720b25 in command_loop () at ../../master/src/keyboard.c:1073 #46 0x00005555557200a2 in recursive_edit_1 () at ../../master/src/keyboard.c:720 count = 1 val = XIL(0x7fffffffdf00) #47 0x0000555555720299 in Frecursive_edit () at ../../master/src/keyboard.c:789 count = 0 buffer = XIL(0) #48 0x000055555571c17e in main (argc=2, argv=0x7fffffffe168) at ../../master/src/emacs.c:2050 stack_bottom_variable = 0x7ffff617e053 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 1 temacs = 0x0 attempt_load_pdump = true rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = 0x0 sockfd = -1 module_assertions = false Lisp Backtrace: "window-list-1" (0xffffbfa0) "replace-buffer-in-windows" (0xffffc4a8) "kill-buffer" (0xffffc710) 0x571d80f8 PVEC_COMPILED "substitute-command-keys" (0xffffd3d8) "command-error-default-function" (0xffffd628) "apply" (0xffffd7e8) 0xf2c1d0e8 PVEC_COMPILED -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 16:01 ` Michael Welsh Duggan @ 2021-04-08 16:14 ` martin rudalics 2021-04-08 16:35 ` Eli Zaretskii 1 sibling, 0 replies; 160+ messages in thread From: martin rudalics @ 2021-04-08 16:14 UTC (permalink / raw) To: Michael Welsh Duggan Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org > Before that, I include the backtrace with your latest patch. And here's > the interesting bit: > > (gdb) p Vwindow_list > $2 = XIL(0x55555863cae3) [...] > (gdb) p Vwindow_list_2 > $7 = XIL(0) The last one should be the clue, indeed. If it were the expected six windows list we couldn't say much, but nil means it got reset somewhere and never resurrected by window_list. > Right before this I hit a breakpoint that that I had set up that, once > again, implied that in this call of window_list() happened subsequent to > a call to window_list() that didn't complete, somehow. > > Before running with block_input(), unblock_input(), I'm going to modify > the sources to set a physical variable to one on entrance to the if > block and set it back to zero at the exit. At least then I can be sure > that an unintended termination of this function is really happening and > that it is not a debugger artifact. Good. Otherwise we're back at zero. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 16:01 ` Michael Welsh Duggan 2021-04-08 16:14 ` martin rudalics @ 2021-04-08 16:35 ` Eli Zaretskii 2021-04-08 16:42 ` Michael Welsh Duggan 1 sibling, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-04-08 16:35 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Date: Thu, 08 Apr 2021 12:01:23 -0400 > Cc: Michael Welsh Duggan <mwd@md5i.com>, > "schwab@linux-m68k.org" <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > > Lisp Backtrace: > "window-list-1" (0xffffbfa0) > "replace-buffer-in-windows" (0xffffc4a8) > "kill-buffer" (0xffffc710) > 0x571d80f8 PVEC_COMPILED > "substitute-command-keys" (0xffffd3d8) > "command-error-default-function" (0xffffd628) > "apply" (0xffffd7e8) > 0xf2c1d0e8 PVEC_COMPILED This seems to indicate that kill-buffer is called by substitute-command-keys, in which case the buffer in question is a temporary buffer. Can you verify that by looking at the buffer's name in frame #13: > #13 0x0000555555758e6d in Fkill_buffer (buffer_or_name=XIL(0x5555571d7ced)) at ../../master/src/buffer.c:1830 > buffer = XIL(0x5555571d7ced) > b = 0x5555571d7ce8 > tem = XIL(0x555555753673) > m = 0x7fffffffc5f0 And if I'm right, it sounds like we are looking at a different scenario here? The previous calls to kill-buffer were from Gnus, right? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 16:35 ` Eli Zaretskii @ 2021-04-08 16:42 ` Michael Welsh Duggan 0 siblings, 0 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-08 16:42 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@cert.org> >> Date: Thu, 08 Apr 2021 12:01:23 -0400 >> Cc: Michael Welsh Duggan <mwd@md5i.com>, >> "schwab@linux-m68k.org" <schwab@linux-m68k.org>, >> "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> >> >> Lisp Backtrace: >> "window-list-1" (0xffffbfa0) >> "replace-buffer-in-windows" (0xffffc4a8) >> "kill-buffer" (0xffffc710) >> 0x571d80f8 PVEC_COMPILED >> "substitute-command-keys" (0xffffd3d8) >> "command-error-default-function" (0xffffd628) >> "apply" (0xffffd7e8) >> 0xf2c1d0e8 PVEC_COMPILED > > This seems to indicate that kill-buffer is called by > substitute-command-keys, in which case the buffer in question is a > temporary buffer. Can you verify that by looking at the buffer's name > in frame #13: > >> #13 0x0000555555758e6d in Fkill_buffer >> (buffer_or_name=XIL(0x5555571d7ced)) at >> ../../master/src/buffer.c:1830 >> buffer = XIL(0x5555571d7ced) >> b = 0x5555571d7ce8 >> tem = XIL(0x555555753673) >> m = 0x7fffffffc5f0 I'm afraid I cancelled that gdb session in favor of a new one recently, sorry. I'll report on that at the next trigger. > And if I'm right, it sounds like we are looking at a different > scenario here? The previous calls to kill-buffer were from Gnus, > right? The scenario is the same, but recent changes my Martin have moved the failure closer to the trigger condition. Before I typed C-g C-g, switched to the server buffer, changed some connections, and then things died when the server buffer was killed. We have managed to determine that this is due to Vwindow_list being inconsistent with reality, and Martin's changes have caused us to fail closer to the actual cause of failure. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 15:21 ` Michael Welsh Duggan 2021-04-08 15:33 ` Michael Welsh Duggan 2021-04-08 15:48 ` martin rudalics @ 2021-04-08 15:58 ` Eli Zaretskii 2021-04-08 16:05 ` Michael Welsh Duggan 2021-04-08 17:11 ` Michael Welsh Duggan 2 siblings, 2 replies; 160+ messages in thread From: Eli Zaretskii @ 2021-04-08 15:58 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: schwab, 47244, mwd > From: Michael Welsh Duggan <mwd@md5i.com> > Date: Thu, 08 Apr 2021 11:21:10 -0400 > Cc: Michael Welsh Duggan <mwd@md5i.com>, > "schwab@linux-m68k.org" <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > > Okay, close, but not quite. What seems to be happening is this: > list_windows() is called while Vwindow_list is nil, and the if branch is > taken. Something causes list_windows() to exit without reaching the end > of the if block. This leaves Vwindow_list partially created. The next > time list_windows() is called it returns the partially created list. > > To determine this I put a breakpoint at the beginning of the if block > that sets a gdb convenience variable called $in_list_windows to one and > continues. I put a breakpoint at the end of that block that sets it to > zero and continues. I put a third condition breakpoint at the entrance > to list_windows() that only triggers if $in_list_windows is one. This > triggered with the included backtrace. I guess you mean window_list instead of list_windows? > Once again, the state triggered when, due to the VPN state changing, a > background gnus demon hung trying to fetch mail. The trigger was me > hitting C-g twice rapidly in succession to regain interactivity. > > Can anyone recommend a means to check if this my theory is true? Does > list_windows() need to be protected against quit? Set a breakpoint in 'quit' and disable it. Set another breakpoint at entry to 'window_list' that enables the breakpoint in 'quit', then another breakpoint at exit which disables the breakpoint in 'quit'. Then wait for the breakpoint in 'quit' to break during your recipe. Perhaps also do the same with a breakpoint in Fthrow. > #26 0x000055555583108e in print_error_message (data=XIL(0x55555732d343), stream=XIL(0x30), context=0x7ffff2c64148 "", caller=XIL(0)) at ../../master/src/print.c:944 > error_conditions = XIL(0x7ffff2c2da13) > errname = XIL(0xb820) > errmsg = make_fixnum(23456248526235) > file_error = XIL(0x7fffffffd4c0) > tail = XIL(0x30) What error message does this attempt to print? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 15:58 ` Eli Zaretskii @ 2021-04-08 16:05 ` Michael Welsh Duggan 2021-04-08 16:28 ` Eli Zaretskii 2021-04-08 17:11 ` Michael Welsh Duggan 1 sibling, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-08 16:05 UTC (permalink / raw) To: Eli Zaretskii Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@md5i.com> >> Date: Thu, 08 Apr 2021 11:21:10 -0400 >> Cc: Michael Welsh Duggan <mwd@md5i.com>, >> "schwab@linux-m68k.org" <schwab@linux-m68k.org>, >> "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> >> >> Okay, close, but not quite. What seems to be happening is this: >> list_windows() is called while Vwindow_list is nil, and the if branch is >> taken. Something causes list_windows() to exit without reaching the end >> of the if block. This leaves Vwindow_list partially created. The next >> time list_windows() is called it returns the partially created list. >> >> To determine this I put a breakpoint at the beginning of the if block >> that sets a gdb convenience variable called $in_list_windows to one and >> continues. I put a breakpoint at the end of that block that sets it to >> zero and continues. I put a third condition breakpoint at the entrance >> to list_windows() that only triggers if $in_list_windows is one. This >> triggered with the included backtrace. > > I guess you mean window_list instead of list_windows? Yes, sorry. >> Once again, the state triggered when, due to the VPN state changing, a >> background gnus demon hung trying to fetch mail. The trigger was me >> hitting C-g twice rapidly in succession to regain interactivity. >> >> Can anyone recommend a means to check if this my theory is true? Does >> list_windows() need to be protected against quit? > > Set a breakpoint in 'quit' and disable it. Set another breakpoint at > entry to 'window_list' that enables the breakpoint in 'quit', then > another breakpoint at exit which disables the breakpoint in 'quit'. > Then wait for the breakpoint in 'quit' to break during your recipe. > > Perhaps also do the same with a breakpoint in Fthrow. Good idea! I'm going to try that. > >> #26 0x000055555583108e in print_error_message >> (data=XIL(0x55555732d343), stream=XIL(0x30), context=0x7ffff2c64148 >> "", caller=XIL(0)) at ../../master/src/print.c:944 >> error_conditions = XIL(0x7ffff2c2da13) >> errname = XIL(0xb820) >> errmsg = make_fixnum(23456248526235) >> file_error = XIL(0x7fffffffd4c0) >> tail = XIL(0x30) > > What error message does this attempt to print? (gdb) p errname $8 = XIL(0xb820) (gdb) xtype Lisp_Symbol (gdb) xpr Lisp_Symbol $9 = (struct Lisp_Symbol *) 0x555555e6e8a0 <lispsym+47136> "quit" (gdb) p errmsg $10 = XIL(0x55555571d654) (gdb) xpr Lisp_String $11 = (struct Lisp_String *) 0x55555571d650 <builtin_lisp_symbol+44> 0 (gdb) p error_conditions $14 = XIL(0x7ffff2c2da33) (gdb) xpr Lisp_Cons $15 = (struct Lisp_Cons *) 0x7ffff2c2da30 { u = { s = { car = XIL(0xb820), u = { cdr = XIL(0), chain = 0x0 } }, gcaligned = 0x20 } } (gdb) xlist $16 = 0xb820 Lisp_Symbol $17 = (struct Lisp_Symbol *) 0x555555e6e8a0 <lispsym+47136> "quit" --- nil -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 16:05 ` Michael Welsh Duggan @ 2021-04-08 16:28 ` Eli Zaretskii 2021-04-08 16:37 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-04-08 16:28 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Cc: Michael Welsh Duggan <mwd@md5i.com>, > "schwab@linux-m68k.org" > <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > Date: Thu, 08 Apr 2021 12:05:57 -0400 > > >> #26 0x000055555583108e in print_error_message > >> (data=XIL(0x55555732d343), stream=XIL(0x30), context=0x7ffff2c64148 > >> "", caller=XIL(0)) at ../../master/src/print.c:944 > >> error_conditions = XIL(0x7ffff2c2da13) > >> errname = XIL(0xb820) > >> errmsg = make_fixnum(23456248526235) > >> file_error = XIL(0x7fffffffd4c0) > >> tail = XIL(0x30) > > > > What error message does this attempt to print? > > (gdb) p errname > $8 = XIL(0xb820) > (gdb) xtype > Lisp_Symbol > (gdb) xpr > Lisp_Symbol > $9 = (struct Lisp_Symbol *) 0x555555e6e8a0 <lispsym+47136> > "quit" > (gdb) p errmsg > $10 = XIL(0x55555571d654) > (gdb) xpr > Lisp_String > $11 = (struct Lisp_String *) 0x55555571d650 <builtin_lisp_symbol+44> > 0 > (gdb) p error_conditions > $14 = XIL(0x7ffff2c2da33) > (gdb) xpr > Lisp_Cons > $15 = (struct Lisp_Cons *) 0x7ffff2c2da30 > { > u = { > s = { > car = XIL(0xb820), > u = { > cdr = XIL(0), > chain = 0x0 > } > }, > gcaligned = 0x20 > } > } > (gdb) xlist > $16 = 0xb820 > Lisp_Symbol > $17 = (struct Lisp_Symbol *) 0x555555e6e8a0 <lispsym+47136> > "quit" > --- > nil So is this the result of your typing C-g? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 16:28 ` Eli Zaretskii @ 2021-04-08 16:37 ` Michael Welsh Duggan 2021-04-08 16:49 ` Eli Zaretskii 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-08 16:37 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@cert.org> >> Cc: Michael Welsh Duggan <mwd@md5i.com>, >> "schwab@linux-m68k.org" >> <schwab@linux-m68k.org>, >> "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> >> Date: Thu, 08 Apr 2021 12:05:57 -0400 >> >> >> #26 0x000055555583108e in print_error_message >> >> (data=XIL(0x55555732d343), stream=XIL(0x30), context=0x7ffff2c64148 >> >> "", caller=XIL(0)) at ../../master/src/print.c:944 >> >> error_conditions = XIL(0x7ffff2c2da13) >> >> errname = XIL(0xb820) >> >> errmsg = make_fixnum(23456248526235) >> >> file_error = XIL(0x7fffffffd4c0) >> >> tail = XIL(0x30) >> > >> > What error message does this attempt to print? >> >> (gdb) p errname >> $8 = XIL(0xb820) >> (gdb) xtype >> Lisp_Symbol >> (gdb) xpr >> Lisp_Symbol >> $9 = (struct Lisp_Symbol *) 0x555555e6e8a0 <lispsym+47136> >> "quit" >> (gdb) p errmsg >> $10 = XIL(0x55555571d654) >> (gdb) xpr >> Lisp_String >> $11 = (struct Lisp_String *) 0x55555571d650 <builtin_lisp_symbol+44> >> 0 >> (gdb) p error_conditions >> $14 = XIL(0x7ffff2c2da33) >> (gdb) xpr >> Lisp_Cons >> $15 = (struct Lisp_Cons *) 0x7ffff2c2da30 >> { >> u = { >> s = { >> car = XIL(0xb820), >> u = { >> cdr = XIL(0), >> chain = 0x0 >> } >> }, >> gcaligned = 0x20 >> } >> } >> (gdb) xlist >> $16 = 0xb820 >> Lisp_Symbol >> $17 = (struct Lisp_Symbol *) 0x555555e6e8a0 <lispsym+47136> >> "quit" >> --- >> nil > > So is this the result of your typing C-g? Yes. In the scenario I have presented, this is where Emacs is unresponsive (busy cursor), presumably trying to interact with a network connection that has gone away to the VPN being switched on or off, and I type C-g twice rapidly in succession to regain interactivity, after which I would normally then attempt to manually reset the gnus connections. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 16:37 ` Michael Welsh Duggan @ 2021-04-08 16:49 ` Eli Zaretskii 2021-04-08 17:15 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-04-08 16:49 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Cc: "mwd@md5i.com" <mwd@md5i.com>, > "schwab@linux-m68k.org" > <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > Date: Thu, 08 Apr 2021 12:37:41 -0400 > > >> (gdb) xlist > >> $16 = 0xb820 > >> Lisp_Symbol > >> $17 = (struct Lisp_Symbol *) 0x555555e6e8a0 <lispsym+47136> > >> "quit" > >> --- > >> nil > > > > So is this the result of your typing C-g? > > Yes. In the scenario I have presented, this is where Emacs is > unresponsive (busy cursor), presumably trying to interact with a network > connection that has gone away to the VPN being switched on or off, and I > type C-g twice rapidly in succession to regain interactivity, after > which I would normally then attempt to manually reset the gnus > connections. But then the buffer being killed is not the one you reported originally, is it? You said the buffer that was killed was *Server*, and here we see that a temporary buffer is being killed. Am I confused? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 16:49 ` Eli Zaretskii @ 2021-04-08 17:15 ` Michael Welsh Duggan 0 siblings, 0 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-08 17:15 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@cert.org> >> Cc: "mwd@md5i.com" <mwd@md5i.com>, >> "schwab@linux-m68k.org" >> <schwab@linux-m68k.org>, >> "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> >> Date: Thu, 08 Apr 2021 12:37:41 -0400 >> >> >> (gdb) xlist >> >> $16 = 0xb820 >> >> Lisp_Symbol >> >> $17 = (struct Lisp_Symbol *) 0x555555e6e8a0 <lispsym+47136> >> >> "quit" >> >> --- >> >> nil >> > >> > So is this the result of your typing C-g? >> >> Yes. In the scenario I have presented, this is where Emacs is >> unresponsive (busy cursor), presumably trying to interact with a network >> connection that has gone away to the VPN being switched on or off, and I >> type C-g twice rapidly in succession to regain interactivity, after >> which I would normally then attempt to manually reset the gnus >> connections. > > But then the buffer being killed is not the one you reported > originally, is it? You said the buffer that was killed was *Server*, > and here we see that a temporary buffer is being killed. Am I > confused? You're not confused, but the situation is confusing. There are two kill-buffer calls that are happening. The Vwindow_list was getting corrupted during the first, but that corruption did not cause a segfault, likely to that buffer (temp buffer) not being in a window. That corruption caused a segfault in the second. Martin's changes have caused an assertion to happen in the first instead. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 15:58 ` Eli Zaretskii 2021-04-08 16:05 ` Michael Welsh Duggan @ 2021-04-08 17:11 ` Michael Welsh Duggan 2021-04-08 17:46 ` Eli Zaretskii 2021-04-08 18:52 ` martin rudalics 1 sibling, 2 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-08 17:11 UTC (permalink / raw) To: Eli Zaretskii Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> Lisp Backtrace: >> "window-list-1" (0xffffbfa0) >> "replace-buffer-in-windows" (0xffffc4a8) >> "kill-buffer" (0xffffc710) >> 0x571d80f8 PVEC_COMPILED >> "substitute-command-keys" (0xffffd3d8) >> "command-error-default-function" (0xffffd628) >> "apply" (0xffffd7e8) >> 0xf2c1d0e8 PVEC_COMPILED > > This seems to indicate that kill-buffer is called by > substitute-command-keys, in which case the buffer in question is a > temporary buffer. Can you verify that by looking at the buffer's name > in frame #13: > >> #13 0x0000555555758e6d in Fkill_buffer >> (buffer_or_name=XIL(0x5555571d7ced)) at >> ../../master/src/buffer.c:1830 >> buffer = XIL(0x5555571d7ced) >> b = 0x5555571d7ce8 >> tem = XIL(0x555555753673) >> m = 0x7fffffffc5f0 As expected, it is " *temp*". This time I've kept the session around. >> Once again, the state triggered when, due to the VPN state changing, a >> background gnus demon hung trying to fetch mail. The trigger was me >> hitting C-g twice rapidly in succession to regain interactivity. >> >> Can anyone recommend a means to check if this my theory is true? Does >> list_windows() need to be protected against quit? > > Set a breakpoint in 'quit' and disable it. Set another breakpoint at > entry to 'window_list' that enables the breakpoint in 'quit', then > another breakpoint at exit which disables the breakpoint in 'quit'. > Then wait for the breakpoint in 'quit' to break during your recipe. > > Perhaps also do the same with a breakpoint in Fthrow. I hit the breakpoint in quit. It looks like Fnconc uses FOR_EACH_TAIL, which uses FOR_EACH_TAIL_INTENAL, which calls maybe_quit. The question in my mind now is whether block/unblock_input belongs in window_list or in Fnconc. Thread 4.1 "emacs" hit Breakpoint 8, quit () at ../../master/src/eval.c:1660 1660 return signal_or_quit (Qquit, Qnil, true); (gdb) bt #0 quit () at ../../master/src/eval.c:1660 #1 0x00005555557f9a27 in process_quit_flag () at ../../master/src/eval.c:1607 #2 0x00005555557f9a6a in maybe_quit () at ../../master/src/eval.c:1627 #3 0x000055555580eb65 in Fnconc (nargs=2, args=0x7fffffffb910) at ../../master/src/fns.c:2783 #4 0x000055555580ea3b in nconc2 (s1=XIL(0x5555573e73a3), s2=XIL(0x5555573e73c3)) at ../../master/src/fns.c:2759 #5 0x000055555564b2db in window_list () at ../../master/src/window.c:2578 #6 0x00005555555eb138 in prepare_menu_bars () at ../../master/src/xdisp.c:12717 #7 0x00005555555f2a3c in redisplay_internal () at ../../master/src/xdisp.c:15668 #8 0x00005555555f48f2 in redisplay_preserve_echo_area (from_where=8) at ../../master/src/xdisp.c:16385 #9 0x00005555557393fa in detect_input_pending_run_timers (do_display=true) at ../../master/src/keyboard.c:10308 #10 0x0000555555869789 in wait_reading_process_output (time_limit=0, nsecs=0, read_kbd=-1, do_display=true, wait_for_cell=XIL(0), wait_proc=0x0, just_wait_proc=0) at ../../master/src/process.c:5657 #11 0x0000555555728ed2 in kbd_buffer_get_event (kbp=0x7fffffffd428, used_mouse_menu=0x7fffffffda6f, end_time=0x0) at ../../master/src/keyboard.c:3869 #12 0x0000555555723ba7 in read_event_from_main_queue (end_time=0x0, local_getcjmp=0x7fffffffd800, used_mouse_menu=0x7fffffffda6f) at ../../master/src/keyboard.c:2159 #13 0x0000555555723f25 in read_decoded_event_from_main_queue (end_time=0x0, local_getcjmp=0x7fffffffd800, prev_event=XIL(0), used_mouse_menu=0x7fffffffda6f) at ../../master/src/keyboard.c:2223 #14 0x0000555555725ee8 in read_char (commandflag=1, map=XIL(0x55555730fcb3), prev_event=XIL(0), used_mouse_menu=0x7fffffffda6f, end_time=0x0) at ../../master/src/keyboard.c:2833 #15 0x00005555557375dc in read_key_sequence (keybuf=0x7fffffffdc70, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at ../../master/src/keyboard.c:9491 #16 0x0000555555721412 in command_loop_1 () at ../../master/src/keyboard.c:1353 #17 0x00005555557f9424 in internal_condition_case (bfun=0x555555720f96 <command_loop_1>, handlers=XIL(0x90), hfun=0x5555557205b9 <cmd_error>) at ../../master/src/eval.c:1439 #18 0x0000555555720b86 in command_loop_2 (ignore=XIL(0)) at ../../master/src/keyboard.c:1094 #19 0x00005555557f8834 in internal_catch (tag=XIL(0xd9e0), func=0x555555720b59 <command_loop_2>, arg=XIL(0)) at ../../master/src/eval.c:1189 #20 0x0000555555720b25 in command_loop () at ../../master/src/keyboard.c:1073 #21 0x00005555557200a2 in recursive_edit_1 () at ../../master/src/keyboard.c:720 #22 0x0000555555720299 in Frecursive_edit () at ../../master/src/keyboard.c:789 #23 0x000055555571c17e in main (argc=2, argv=0x7fffffffe168) at ../../master/src/emacs.c:2050 Lisp Backtrace: "redisplay_internal (C function)" (0x0) -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 17:11 ` Michael Welsh Duggan @ 2021-04-08 17:46 ` Eli Zaretskii 2021-04-08 17:51 ` Michael Welsh Duggan 2021-04-08 18:52 ` martin rudalics 1 sibling, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-04-08 17:46 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Cc: Michael Welsh Duggan <mwd@md5i.com>, > "schwab@linux-m68k.org" > <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > Date: Thu, 08 Apr 2021 13:11:34 -0400 > > I hit the breakpoint in quit. It looks like Fnconc uses FOR_EACH_TAIL, > which uses FOR_EACH_TAIL_INTENAL, which calls maybe_quit. The question > in my mind now is whether block/unblock_input belongs in window_list or > in Fnconc. IMO, the right solution is not block_input but unwind_protect. ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 17:46 ` Eli Zaretskii @ 2021-04-08 17:51 ` Michael Welsh Duggan 0 siblings, 0 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-08 17:51 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd@md5i.com, schwab@linux-m68k.org, 47244@debbugs.gnu.org Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Welsh Duggan <mwd@cert.org> >> Cc: Michael Welsh Duggan <mwd@md5i.com>, >> "schwab@linux-m68k.org" >> <schwab@linux-m68k.org>, >> "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> >> Date: Thu, 08 Apr 2021 13:11:34 -0400 >> >> I hit the breakpoint in quit. It looks like Fnconc uses FOR_EACH_TAIL, >> which uses FOR_EACH_TAIL_INTENAL, which calls maybe_quit. The question >> in my mind now is whether block/unblock_input belongs in window_list or >> in Fnconc. > > IMO, the right solution is not block_input but unwind_protect. Mayhap. I look forward to a patch to try out. (I'm not certain how it should be used, myself.) FWIW, it might be worth looking through all uses of FOR_EACH_TAIL to find places that it is used in loops that do destructive updates, like Fdelete, as it seems icky for C-g to leave one of these operations partially completed. -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 17:11 ` Michael Welsh Duggan 2021-04-08 17:46 ` Eli Zaretskii @ 2021-04-08 18:52 ` martin rudalics 2021-04-09 20:59 ` Michael Welsh Duggan 1 sibling, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-08 18:52 UTC (permalink / raw) To: Michael Welsh Duggan, Eli Zaretskii Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org [-- Attachment #1: Type: text/plain, Size: 428 bytes --] > I hit the breakpoint in quit. It looks like Fnconc uses FOR_EACH_TAIL, > which uses FOR_EACH_TAIL_INTENAL, which calls maybe_quit. Not just around the corner but near. Well done. > The question > in my mind now is whether block/unblock_input belongs in window_list or > in Fnconc. In window_list and we then should bind inhibit_quit IIUC. Fnconc must be able to deal with circular lists. I attach a patch. martin [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: selected_window_contents.diff --] [-- Type: text/x-patch; name="selected_window_contents.diff", Size: 11741 bytes --] diff --git a/src/buffer.c b/src/buffer.c index 8e33162989..70b37e61a2 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1951,6 +1951,9 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", This gets rid of them for certain. */ reset_buffer_local_variables (b, 1); + if (!b->base_buffer) + eassert (b->window_count == 0); + bset_name (b, Qnil); block_input (); @@ -1991,6 +1994,8 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", run_buffer_list_update_hook (b); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qt; } \f @@ -2151,6 +2156,9 @@ set_buffer_internal_1 (register struct buffer *b) BUFFER_CHECK_INDIRECTION (b); + if (!BUFFER_LIVE_P (b)) + error ("Selecting deleted buffer"); + old_buf = current_buffer; current_buffer = b; last_known_column_point = -1; /* Invalidate indentation cache. */ diff --git a/src/nsfns.m b/src/nsfns.m index 5c4cc915e7..82136b0639 100644 --- a/src/nsfns.m +++ b/src/nsfns.m @@ -1447,7 +1447,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side. /* Make sure windows on this frame appear in calls to next-window and similar functions. */ - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; return unbind_to (count, frame); } diff --git a/src/w32fns.c b/src/w32fns.c index 9db367bfaf..f2d5e34c3e 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -6148,7 +6148,7 @@ DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame, /* Make sure windows on this frame appear in calls to next-window and similar functions. */ - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; return unbind_to (count, frame); } diff --git a/src/window.c b/src/window.c index eb16e2a433..c858ddb4ff 100644 --- a/src/window.c +++ b/src/window.c @@ -86,6 +86,7 @@ Functions creating or deleting windows should invalidate this cache by setting it to nil. */ Lisp_Object Vwindow_list; +Lisp_Object Vwindow_list_2; /* True mean window_change_record has to record all live frames. */ static bool window_change_record_frames; @@ -307,7 +308,11 @@ wset_buffer (struct window *w, Lisp_Object val) if (BUFFERP (val)) /* Make sure that we do not assign the buffer to an internal window. */ - eassert (MARKERP (w->start) && MARKERP (w->pointm)); + { + eassert (BUFFER_LIVE_P (XBUFFER (val))); + eassert (MARKERP (w->start) && MARKERP (w->pointm)); + } + w->contents = val; adjust_window_count (w, 1); } @@ -315,6 +320,7 @@ wset_buffer (struct window *w, Lisp_Object val) static void wset_old_buffer (struct window *w, Lisp_Object val) { + eassert (BUFFER_LIVE_P (XBUFFER (val))); w->old_buffer = val; } @@ -594,6 +600,8 @@ select_window_1 (Lisp_Object window, bool inhibit_point_swap) selected_window = window; + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Go to the point recorded in the window. This is important when the buffer is in more than one window. It also matters when @@ -2556,8 +2564,10 @@ window_list (void) if (!CONSP (Vwindow_list)) { Lisp_Object tail, frame; + ptrdiff_t count = SPECPDL_INDEX (); Vwindow_list = Qnil; + specbind (Qinhibit_quit, Qt); FOR_EACH_FRAME (tail, frame) { Lisp_Object arglist = Qnil; @@ -2569,7 +2579,12 @@ window_list (void) arglist = Fnreverse (arglist); Vwindow_list = nconc2 (Vwindow_list, arglist); } + + Vwindow_list_2 = Fcopy_sequence (Vwindow_list); + unbind_to (count, Qnil); } + else + eassert (!NILP (Fequal (Vwindow_list, Vwindow_list_2))); return Vwindow_list; } @@ -2950,6 +2965,8 @@ DEFUN ("window-list-1", Fwindow_list_1, Swindow_list_1, 0, 3, 0, CHECK_ALL_WINDOWS /* Arg is ignored */ }; +static int replace_buffer_in_windows_safely_count; + static Lisp_Object window_loop (enum window_loop type, Lisp_Object obj, bool mini, Lisp_Object frames) @@ -3048,6 +3065,8 @@ window_loop (enum window_loop type, Lisp_Object obj, bool mini, if (EQ (window, selected_window) && XBUFFER (w->contents) == current_buffer) Fset_buffer (w->contents); + + replace_buffer_in_windows_safely_count += 1; } break; @@ -3277,7 +3296,7 @@ DEFUN ("delete-other-windows-internal", Fdelete_other_windows_internal, free_window_matrices (r); fset_redisplay (f); - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; if (!WINDOW_LEAF_P (w)) { @@ -3411,6 +3430,8 @@ DEFUN ("delete-other-windows-internal", Fdelete_other_windows_internal, replace_buffer_in_windows (Lisp_Object buffer) { call1 (Qreplace_buffer_in_windows, buffer); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* If BUFFER is shown in a window, safely replace it with some other @@ -3419,7 +3440,28 @@ replace_buffer_in_windows (Lisp_Object buffer) void replace_buffer_in_windows_safely (Lisp_Object buffer) { - if (buffer_window_count (XBUFFER (buffer))) + if (!NILP (Fstring_equal (XBUFFER (buffer)->name_, + build_string ("*Server*")))) + { + int count = buffer_window_count (XBUFFER (buffer)); + + replace_buffer_in_windows_safely_count = 0; + + + if (buffer_window_count (XBUFFER (buffer))) + { + Lisp_Object tail, frame; + + /* A single call to window_loop won't do the job because it only + considers frames on the current keyboard. So loop manually over + frames, and handle each one. */ + FOR_EACH_FRAME (tail, frame) + window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); + } + + eassert (count == replace_buffer_in_windows_safely_count); + } + else if (buffer_window_count (XBUFFER (buffer))) { Lisp_Object tail, frame; @@ -3960,6 +4002,8 @@ run_window_change_functions (void) /* Record changes for all frames (if asked for), selected window and frame. */ unbind_to (count, Qnil); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Make WINDOW display BUFFER. RUN_HOOKS_P means it's allowed @@ -4054,6 +4098,9 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer, if (!samebuf && !MINI_WINDOW_P (w) && !WINDOW_PSEUDO_P (w)) FRAME_WINDOW_CHANGE (XFRAME (w->frame)) = true; + if (WINDOWP (selected_window)) + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + unbind_to (count, Qnil); } @@ -4296,7 +4343,7 @@ make_window (void) w->scroll_bar_height = -1; w->column_number_displayed = -1; /* Reset window_list. */ - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; /* Return window. */ XSETWINDOW (window, w); return window; @@ -5086,7 +5133,7 @@ DEFUN ("delete-window-internal", Fdelete_window_internal, Sdelete_window_interna } fset_redisplay (f); - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; wset_next (w, Qnil); /* Don't delete w->next too. */ free_window_matrices (w); @@ -5174,6 +5221,8 @@ DEFUN ("delete-window-internal", Fdelete_window_internal, Sdelete_window_interna error ("Deletion failed"); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qnil; } \f @@ -7233,6 +7282,9 @@ DEFUN ("set-window-configuration", Fset_window_configuration, minibuf_selected_window = data->minibuf_selected_window; SAFE_FREE (); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return FRAME_LIVE_P (f) ? Qt : Qnil; } @@ -7279,7 +7331,7 @@ delete_all_child_windows (Lisp_Object window) wset_buffer (w, Qnil); } - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; } \f static ptrdiff_t @@ -8128,8 +8180,9 @@ init_window_once (void) selected_window = Qnil; staticpro (&selected_window); - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; staticpro (&Vwindow_list); + staticpro (&Vwindow_list_2); minibuf_selected_window = Qnil; staticpro (&minibuf_selected_window); @@ -8148,6 +8201,7 @@ init_window_once (void) PDUMPER_RESET_LV (minibuf_window, Qnil); PDUMPER_RESET_LV (selected_window, Qnil); PDUMPER_RESET_LV (Vwindow_list, Qnil); + PDUMPER_RESET_LV (Vwindow_list_2, Qnil); PDUMPER_RESET_LV (minibuf_selected_window, Qnil); /* Hack: if mode_line_in_non_selected_windows is true (which it may @@ -8178,7 +8232,7 @@ init_window_once (void) void init_window (void) { - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; } void diff --git a/src/window.h b/src/window.h index b6f88e8f55..74d3cbb7be 100644 --- a/src/window.h +++ b/src/window.h @@ -1171,6 +1171,7 @@ #define CHECK_LIVE_WINDOW(WINDOW) \ /* These used to be in lisp.h. */ extern Lisp_Object Vwindow_list; +extern Lisp_Object Vwindow_list_2; extern Lisp_Object window_list (void); extern Lisp_Object window_parameter (struct window *, Lisp_Object parameter); diff --git a/src/xdisp.c b/src/xdisp.c index cc0a689ba3..ea64e5037a 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -12980,6 +12980,8 @@ restore_selected_window (Lisp_Object window) /* Abort if we cannot find a live frame. */ emacs_abort (); } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Restore WINDOW, if live, as its frame's selected window. */ @@ -12997,6 +12999,8 @@ restore_frame_selected_window (Lisp_Object window) if (EQ (frame, selected_frame)) selected_window = window; } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Update the tab-bar item list for frame F. This has to be done @@ -13074,6 +13078,8 @@ update_tab_bar (struct frame *f, bool save_match_data) XSETFRAME (frame, f); selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); #endif /* Build desired tab-bar items from keymaps. */ @@ -14010,6 +14016,8 @@ update_tool_bar (struct frame *f, bool save_match_data) selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Build desired tool-bar items from keymaps. */ new_tool_bar = tool_bar_items (Fcopy_sequence (f->tool_bar_items), @@ -17246,6 +17254,8 @@ run_window_scroll_functions (Lisp_Object window, struct text_pos startp) set_buffer_internal (XBUFFER (w->contents)); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return startp; } @@ -25450,6 +25460,8 @@ display_mode_lines (struct window *w) unbind_to (count, Qnil); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + if (n > 0) w->must_be_updated_p = true; return n; diff --git a/src/xfns.c b/src/xfns.c index d90644819b..fbe9014555 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -4225,7 +4225,7 @@ DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame, /* Make sure windows on this frame appear in calls to next-window and similar functions. */ - Vwindow_list = Qnil; + Vwindow_list = Vwindow_list_2 = Qnil; return unbind_to (count, frame); } ^ permalink raw reply related [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-08 18:52 ` martin rudalics @ 2021-04-09 20:59 ` Michael Welsh Duggan 2021-04-10 7:15 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-09 20:59 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org, Michael Welsh Duggan martin rudalics <rudalics@gmx.at> writes: >> I hit the breakpoint in quit. It looks like Fnconc uses FOR_EACH_TAIL, >> which uses FOR_EACH_TAIL_INTENAL, which calls maybe_quit. > > Not just around the corner but near. Well done. > >> The question >> in my mind now is whether block/unblock_input belongs in window_list or >> in Fnconc. > > In window_list and we then should bind inhibit_quit IIUC. Fnconc must be > able to deal with circular lists. I attach a patch. I've tried to recreate a problem with this patch and have successfully failed. I'll continue using it for a few days, and I will let you know if I see any problems, but I think that protecting window_list() from quit fixes the problem(s) I reported. -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-09 20:59 ` Michael Welsh Duggan @ 2021-04-10 7:15 ` martin rudalics 2021-04-10 14:53 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-10 7:15 UTC (permalink / raw) To: Michael Welsh Duggan Cc: schwab@linux-m68k.org, 47244@debbugs.gnu.org, Michael Welsh Duggan [-- Attachment #1: Type: text/plain, Size: 617 bytes --] > I've tried to recreate a problem with this patch and have successfully > failed. I'll continue using it for a few days, and I will let you know > if I see any problems, but I think that protecting window_list() from > quit fixes the problem(s) I reported. Your impatience revealed this bug and your patience located it. I now attach a clean patch which also protects the occurrence in window_list_1 although that one doesn't appear so vulnerable - likely because quitting always eats the maybe_quit from window_list first. If you don't see any problems with it within a week or so, I'll install it. martin [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: selected_window_contents.diff --] [-- Type: text/x-patch; name="selected_window_contents.diff", Size: 1110 bytes --] diff --git a/src/window.c b/src/window.c index eb16e2a433..aa60624d63 100644 --- a/src/window.c +++ b/src/window.c @@ -2556,8 +2556,10 @@ window_list (void) if (!CONSP (Vwindow_list)) { Lisp_Object tail, frame; + ptrdiff_t count = SPECPDL_INDEX (); Vwindow_list = Qnil; + specbind (Qinhibit_quit, Qt); FOR_EACH_FRAME (tail, frame) { Lisp_Object arglist = Qnil; @@ -2569,6 +2571,8 @@ window_list (void) arglist = Fnreverse (arglist); Vwindow_list = nconc2 (Vwindow_list, arglist); } + + unbind_to (count, Qnil); } return Vwindow_list; @@ -2865,11 +2869,16 @@ window_list_1 (Lisp_Object window, Lisp_Object minibuf, Lisp_Object all_frames) rest = Fmemq (window, list); if (!NILP (rest) && !EQ (rest, list)) { + ptrdiff_t count = SPECPDL_INDEX (); + + specbind (Qinhibit_quit, Qt); for (tail = list; !EQ (XCDR (tail), rest); tail = XCDR (tail)) ; XSETCDR (tail, Qnil); list = nconc2 (rest, list); + unbind_to (count, Qnil); } + return list; } ^ permalink raw reply related [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-10 7:15 ` martin rudalics @ 2021-04-10 14:53 ` Michael Welsh Duggan 2021-04-10 18:57 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-10 14:53 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org, Michael Welsh Duggan martin rudalics <rudalics@gmx.at> writes: >> I've tried to recreate a problem with this patch and have successfully >> failed. I'll continue using it for a few days, and I will let you know >> if I see any problems, but I think that protecting window_list() from >> quit fixes the problem(s) I reported. > > Your impatience revealed this bug and your patience located it. I now > attach a clean patch which also protects the occurrence in window_list_1 > although that one doesn't appear so vulnerable - likely because quitting > always eats the maybe_quit from window_list first. If you don't see any > problems with it within a week or so, I'll install it. Sure. But I will say that I think protecting the nconc in window_list_1 is not as important, as it, by itself, does not modify any global state. In point of fact, it only modifies a local variable. It may be that window_loop or replace_buffer_in_windows_safely should be so protected instead, but I can't say that with any degree of certainty. -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-10 14:53 ` Michael Welsh Duggan @ 2021-04-10 18:57 ` martin rudalics 2021-04-17 8:01 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-10 18:57 UTC (permalink / raw) To: Michael Welsh Duggan Cc: schwab@linux-m68k.org, 47244@debbugs.gnu.org, Michael Welsh Duggan > Sure. But I will say that I think protecting the nconc in window_list_1 > is not as important, as it, by itself, does not modify any global > state. In point of fact, it only modifies a local variable. It may be > that window_loop or replace_buffer_in_windows_safely should be so > protected instead, but I can't say that with any degree of certainty. window_list_1 is the object replace_buffer_in_windows(_safely) use to find all windows displaying the buffer to kill and if only one of these windows is missing in the list we get our initial problem back. Just that, as I mentioned earlier, the quit flag will probably have been already processed by the preceding window_list call. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-10 18:57 ` martin rudalics @ 2021-04-17 8:01 ` martin rudalics 2021-04-20 14:03 ` Michael Welsh Duggan 0 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-17 8:01 UTC (permalink / raw) To: Michael Welsh Duggan Cc: schwab@linux-m68k.org, 47244@debbugs.gnu.org, Michael Welsh Duggan I've pushed a slightly more stringent fix to master now. If you notice any irregularities, tell me ASAP. If you don't, please close this bug. Thanks, martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-17 8:01 ` martin rudalics @ 2021-04-20 14:03 ` Michael Welsh Duggan 0 siblings, 0 replies; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-20 14:03 UTC (permalink / raw) To: 47244-done I haven't been able to retrigger this bug using master for several days, and it is my belief that the underlying problem has been correctly diagnosed and solved. -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 18:31 ` Michael Welsh Duggan 2021-04-07 19:25 ` Michael Welsh Duggan @ 2021-04-07 19:40 ` Eli Zaretskii 1 sibling, 0 replies; 160+ messages in thread From: Eli Zaretskii @ 2021-04-07 19:40 UTC (permalink / raw) To: Michael Welsh Duggan; +Cc: mwd, schwab, 47244 > From: Michael Welsh Duggan <mwd@cert.org> > Date: Wed, 07 Apr 2021 14:31:51 -0400 > Cc: Michael Welsh Duggan <mwd@md5i.com>, > "schwab@linux-m68k.org" <schwab@linux-m68k.org>, > "47244@debbugs.gnu.org" <47244@debbugs.gnu.org> > > As usual, when triggering this, I had turned off the VPN, and Gnus hung > when trying to fetch mail or news over an existing connection. I typed > C-g a couple of times to get back interactivity. This is when the > assert happened. Maybe we lack an unwind-protect somewhere? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 17:37 ` Michael Welsh Duggan 2021-04-07 17:55 ` Michael Welsh Duggan 2021-04-07 18:31 ` Michael Welsh Duggan @ 2021-04-07 18:48 ` martin rudalics 2021-04-07 18:53 ` Michael Welsh Duggan 2 siblings, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-04-07 18:48 UTC (permalink / raw) To: Michael Welsh Duggan Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org [-- Attachment #1: Type: text/plain, Size: 1013 bytes --] > Triggered. Here's the backtrace: > > #0 terminate_due_to_signal (sig=6, backtrace_limit=2147483647) > at ../../master/src/emacs.c:379 > #1 0x00005555557c4aa2 in die > (msg=0x5555559105c8 "window_list_length == list_length (Vwindow_list)", file=0x55555590f9cf "../../master/src/window.c", line=2585) > at ../../master/src/alloc.c:7420 > [...] > Lisp Backtrace: > "window-list-1" (0xffffbfa0) > "replace-buffer-in-windows" (0xffffc4a8) > "kill-buffer" (0xffffc710) > 0x57821b48 PVEC_COMPILED > "substitute-command-keys" (0xffffd3d8) > "command-error-default-function" (0xffffd628) > "apply" (0xffffd7e8) > 0xf2c1d0c8 PVEC_COMPILED All we can conclude from that is that Vwindow_list must have been clobbered before `kill-buffer' triggered the execution of `replace-buffer-in-windows'. When and how that happened is yet unclear. The attached should cure the crashes by simply reconstructing the full list after window_list notices that Vwindow_list has changed length. martin [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: selected_window_contents.diff --] [-- Type: text/x-patch; name="selected_window_contents.diff", Size: 7976 bytes --] diff --git a/src/buffer.c b/src/buffer.c index 8e33162989..70b37e61a2 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1951,6 +1951,9 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", This gets rid of them for certain. */ reset_buffer_local_variables (b, 1); + if (!b->base_buffer) + eassert (b->window_count == 0); + bset_name (b, Qnil); block_input (); @@ -1991,6 +1994,8 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", run_buffer_list_update_hook (b); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qt; } \f @@ -2151,6 +2156,9 @@ set_buffer_internal_1 (register struct buffer *b) BUFFER_CHECK_INDIRECTION (b); + if (!BUFFER_LIVE_P (b)) + error ("Selecting deleted buffer"); + old_buf = current_buffer; current_buffer = b; last_known_column_point = -1; /* Invalidate indentation cache. */ diff --git a/src/window.c b/src/window.c index eb16e2a433..71dd2428e2 100644 --- a/src/window.c +++ b/src/window.c @@ -87,6 +87,8 @@ by setting it to nil. */ Lisp_Object Vwindow_list; +static int window_list_length = 0; + /* True mean window_change_record has to record all live frames. */ static bool window_change_record_frames; @@ -307,7 +309,11 @@ wset_buffer (struct window *w, Lisp_Object val) if (BUFFERP (val)) /* Make sure that we do not assign the buffer to an internal window. */ - eassert (MARKERP (w->start) && MARKERP (w->pointm)); + { + eassert (BUFFER_LIVE_P (XBUFFER (val))); + eassert (MARKERP (w->start) && MARKERP (w->pointm)); + } + w->contents = val; adjust_window_count (w, 1); } @@ -315,6 +321,7 @@ wset_buffer (struct window *w, Lisp_Object val) static void wset_old_buffer (struct window *w, Lisp_Object val) { + eassert (BUFFER_LIVE_P (XBUFFER (val))); w->old_buffer = val; } @@ -594,6 +601,8 @@ select_window_1 (Lisp_Object window, bool inhibit_point_swap) selected_window = window; + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Go to the point recorded in the window. This is important when the buffer is in more than one window. It also matters when @@ -2553,7 +2562,8 @@ add_window_to_list (struct window *w, void *user_data) Lisp_Object window_list (void) { - if (!CONSP (Vwindow_list)) + if (!CONSP (Vwindow_list) + || window_list_length != list_length (Vwindow_list)) { Lisp_Object tail, frame; @@ -2569,6 +2579,8 @@ window_list (void) arglist = Fnreverse (arglist); Vwindow_list = nconc2 (Vwindow_list, arglist); } + + window_list_length = list_length (Vwindow_list); } return Vwindow_list; @@ -2950,6 +2962,8 @@ DEFUN ("window-list-1", Fwindow_list_1, Swindow_list_1, 0, 3, 0, CHECK_ALL_WINDOWS /* Arg is ignored */ }; +static int replace_buffer_in_windows_safely_count; + static Lisp_Object window_loop (enum window_loop type, Lisp_Object obj, bool mini, Lisp_Object frames) @@ -3048,6 +3062,8 @@ window_loop (enum window_loop type, Lisp_Object obj, bool mini, if (EQ (window, selected_window) && XBUFFER (w->contents) == current_buffer) Fset_buffer (w->contents); + + replace_buffer_in_windows_safely_count += 1; } break; @@ -3411,6 +3427,8 @@ DEFUN ("delete-other-windows-internal", Fdelete_other_windows_internal, replace_buffer_in_windows (Lisp_Object buffer) { call1 (Qreplace_buffer_in_windows, buffer); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* If BUFFER is shown in a window, safely replace it with some other @@ -3419,7 +3437,28 @@ replace_buffer_in_windows (Lisp_Object buffer) void replace_buffer_in_windows_safely (Lisp_Object buffer) { - if (buffer_window_count (XBUFFER (buffer))) + if (!NILP (Fstring_equal (XBUFFER (buffer)->name_, + build_string ("*Server*")))) + { + int count = buffer_window_count (XBUFFER (buffer)); + + replace_buffer_in_windows_safely_count = 0; + + + if (buffer_window_count (XBUFFER (buffer))) + { + Lisp_Object tail, frame; + + /* A single call to window_loop won't do the job because it only + considers frames on the current keyboard. So loop manually over + frames, and handle each one. */ + FOR_EACH_FRAME (tail, frame) + window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame); + } + + eassert (count == replace_buffer_in_windows_safely_count); + } + else if (buffer_window_count (XBUFFER (buffer))) { Lisp_Object tail, frame; @@ -3960,6 +3999,8 @@ run_window_change_functions (void) /* Record changes for all frames (if asked for), selected window and frame. */ unbind_to (count, Qnil); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Make WINDOW display BUFFER. RUN_HOOKS_P means it's allowed @@ -4054,6 +4095,9 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer, if (!samebuf && !MINI_WINDOW_P (w) && !WINDOW_PSEUDO_P (w)) FRAME_WINDOW_CHANGE (XFRAME (w->frame)) = true; + if (WINDOWP (selected_window)) + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + unbind_to (count, Qnil); } @@ -5174,6 +5218,8 @@ DEFUN ("delete-window-internal", Fdelete_window_internal, Sdelete_window_interna error ("Deletion failed"); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return Qnil; } \f @@ -7233,6 +7279,9 @@ DEFUN ("set-window-configuration", Fset_window_configuration, minibuf_selected_window = data->minibuf_selected_window; SAFE_FREE (); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return FRAME_LIVE_P (f) ? Qt : Qnil; } diff --git a/src/xdisp.c b/src/xdisp.c index cc0a689ba3..ea64e5037a 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -12980,6 +12980,8 @@ restore_selected_window (Lisp_Object window) /* Abort if we cannot find a live frame. */ emacs_abort (); } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Restore WINDOW, if live, as its frame's selected window. */ @@ -12997,6 +12999,8 @@ restore_frame_selected_window (Lisp_Object window) if (EQ (frame, selected_frame)) selected_window = window; } + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); } /* Update the tab-bar item list for frame F. This has to be done @@ -13074,6 +13078,8 @@ update_tab_bar (struct frame *f, bool save_match_data) XSETFRAME (frame, f); selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); #endif /* Build desired tab-bar items from keymaps. */ @@ -14010,6 +14016,8 @@ update_tool_bar (struct frame *f, bool save_match_data) selected_frame = frame; selected_window = FRAME_SELECTED_WINDOW (f); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + /* Build desired tool-bar items from keymaps. */ new_tool_bar = tool_bar_items (Fcopy_sequence (f->tool_bar_items), @@ -17246,6 +17254,8 @@ run_window_scroll_functions (Lisp_Object window, struct text_pos startp) set_buffer_internal (XBUFFER (w->contents)); } + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + return startp; } @@ -25450,6 +25460,8 @@ display_mode_lines (struct window *w) unbind_to (count, Qnil); + eassert (BUFFER_LIVE_P (XBUFFER (XWINDOW (selected_window)->contents))); + if (n > 0) w->must_be_updated_p = true; return n; ^ permalink raw reply related [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 18:48 ` martin rudalics @ 2021-04-07 18:53 ` Michael Welsh Duggan 2021-04-07 20:25 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Michael Welsh Duggan @ 2021-04-07 18:53 UTC (permalink / raw) To: martin rudalics Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org martin rudalics <rudalics@gmx.at> writes: >> Triggered. Here's the backtrace: >> >> #0 terminate_due_to_signal (sig=6, backtrace_limit=2147483647) >> at ../../master/src/emacs.c:379 >> #1 0x00005555557c4aa2 in die >> (msg=0x5555559105c8 "window_list_length == list_length >> (Vwindow_list)", file=0x55555590f9cf "../../master/src/window.c", >> line=2585) >> at ../../master/src/alloc.c:7420 >> > [...] >> Lisp Backtrace: >> "window-list-1" (0xffffbfa0) >> "replace-buffer-in-windows" (0xffffc4a8) >> "kill-buffer" (0xffffc710) >> 0x57821b48 PVEC_COMPILED >> "substitute-command-keys" (0xffffd3d8) >> "command-error-default-function" (0xffffd628) >> "apply" (0xffffd7e8) >> 0xf2c1d0c8 PVEC_COMPILED > > All we can conclude from that is that Vwindow_list must have been > clobbered before `kill-buffer' triggered the execution of > `replace-buffer-in-windows'. When and how that happened is yet unclear. > > The attached should cure the crashes by simply reconstructing the full > list after window_list notices that Vwindow_list has changed length. Sure. But won't that just make it so that I can't trigger the problem anymore? Or is that what I am testing? -- Michael Welsh Duggan (mwd@cert.org) ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-07 18:53 ` Michael Welsh Duggan @ 2021-04-07 20:25 ` martin rudalics 0 siblings, 0 replies; 160+ messages in thread From: martin rudalics @ 2021-04-07 20:25 UTC (permalink / raw) To: Michael Welsh Duggan Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org > Sure. But won't that just make it so that I can't trigger the problem > anymore? Right. `replace-buffer-in-windows' should now work on the full window list and do its job. replace_buffer_in_windows_safely should not have to do anything. > Or is that what I am testing? We have found one problem but we have no idea why it happens. We should also exclude any other problems with a selected window showing a dead buffer. If you run for a while without seeing such things, we can at least conclude that the problem is "only" that of the clobbered window list. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-04-06 17:24 ` Michael Welsh Duggan 2021-04-07 2:22 ` Michael Welsh Duggan @ 2021-04-07 9:00 ` martin rudalics 1 sibling, 0 replies; 160+ messages in thread From: martin rudalics @ 2021-04-07 9:00 UTC (permalink / raw) To: Michael Welsh Duggan Cc: Michael Welsh Duggan, schwab@linux-m68k.org, 47244@debbugs.gnu.org > I wish it did. After doing this, Vwindow_list has six entries, one for > each selected_window on each frame, and one for each minibuffer window > on each frame. This includes the "*Server*" buffer. Fine. This is the expected behavior (till now I didn't know that each of your frames had its own minibuffer window). It also means that we can dismiss many other potential causes of the behavior you see and concentrate on why Emacs apparently butchers your window list. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-18 20:27 ` Eli Zaretskii 2021-03-19 1:50 ` Michael Welsh Duggan @ 2021-03-19 8:15 ` martin rudalics 2021-03-19 8:19 ` Eli Zaretskii 1 sibling, 1 reply; 160+ messages in thread From: martin rudalics @ 2021-03-19 8:15 UTC (permalink / raw) To: Eli Zaretskii, Andreas Schwab; +Cc: mwd, 47244, mwd >>> So the selected window's buffer was killed. How is that possible? >> >> Perhaps during run_window_change_functions. > > Something like that, yes. But I don't understand how that can happen > technically: kill-buffer selects another buffer when killing the > current one. So how was that buffer killed, and yet stayed current? It's a problem of any hook we run during redisplay: (1) Redisplay chooses a window as the selected and its buffer as the current one. (2) Lisp code in a hook deletes that window and/or its buffer. (3) Redisplay continues to work on that window and/or its buffer as if it were still alive. martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-19 8:15 ` martin rudalics @ 2021-03-19 8:19 ` Eli Zaretskii 2021-03-19 9:18 ` martin rudalics 0 siblings, 1 reply; 160+ messages in thread From: Eli Zaretskii @ 2021-03-19 8:19 UTC (permalink / raw) To: martin rudalics; +Cc: mwd, schwab, 47244, mwd > Cc: mwd@md5i.com, 47244@debbugs.gnu.org, mwd@cert.org > From: martin rudalics <rudalics@gmx.at> > Date: Fri, 19 Mar 2021 09:15:07 +0100 > > >>> So the selected window's buffer was killed. How is that possible? > >> > >> Perhaps during run_window_change_functions. > > > > Something like that, yes. But I don't understand how that can happen > > technically: kill-buffer selects another buffer when killing the > > current one. So how was that buffer killed, and yet stayed current? > > It's a problem of any hook we run during redisplay: > > (1) Redisplay chooses a window as the selected and its buffer as the > current one. > > (2) Lisp code in a hook deletes that window and/or its buffer. > > (3) Redisplay continues to work on that window and/or its buffer as if > it were still alive. Sorry, I don't understand: when kill-buffer kills the current buffer, it replaces it with another one. Are you saying we have a way of killing buffers that bypasses kill-buffer? if so, can you describe how that can be done? Or what else am I missing? ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-19 8:19 ` Eli Zaretskii @ 2021-03-19 9:18 ` martin rudalics 2021-03-19 9:37 ` martin rudalics 2021-03-19 11:55 ` Eli Zaretskii 0 siblings, 2 replies; 160+ messages in thread From: martin rudalics @ 2021-03-19 9:18 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd, schwab, 47244, mwd > Sorry, I don't understand: when kill-buffer kills the current buffer, > it replaces it with another one. Are you saying we have a way of > killing buffers that bypasses kill-buffer? if so, can you describe how > that can be done? > > Or what else am I missing? Redisplay occasionally does things like saved_current_buffer = current_buffer; current_buffer = XBUFFER (w->contents); ... current_buffer = saved_current_buffer; What if ... killed saved_current_buffer? martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-19 9:18 ` martin rudalics @ 2021-03-19 9:37 ` martin rudalics 2021-03-19 11:55 ` Eli Zaretskii 1 sibling, 0 replies; 160+ messages in thread From: martin rudalics @ 2021-03-19 9:37 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mwd, schwab, 47244, mwd > What if ... killed saved_current_buffer? Probably a silly question: Does set_buffer_internal ever check whether its argument is live? martin ^ permalink raw reply [flat|nested] 160+ messages in thread
* bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs 2021-03-19 9:18 ` martin rudalics 2021-03-19 9:37 ` martin rudalics @ 2021-03-19 11:55 ` Eli Zaretskii 1 sibling, 0 replies; 160+ messages in thread From: Eli Zaretskii @ 2021-03-19 11:55 UTC (permalink / raw) To: martin rudalics; +Cc: mwd, schwab, 47244, mwd > Cc: schwab@linux-m68k.org, mwd@md5i.com, 47244@debbugs.gnu.org, mwd@cert.org > From: martin rudalics <rudalics@gmx.at> > Date: Fri, 19 Mar 2021 10:18:33 +0100 > > > Sorry, I don't understand: when kill-buffer kills the current buffer, > > it replaces it with another one. Are you saying we have a way of > > killing buffers that bypasses kill-buffer? if so, can you describe how > > that can be done? > > > > Or what else am I missing? > > Redisplay occasionally does things like > > saved_current_buffer = current_buffer; > current_buffer = XBUFFER (w->contents); > ... > current_buffer = saved_current_buffer; It does? where? We are talking about redisplay_internal here (because that's where the segfault happened), not about redisplay_window and its subroutines. redisplay_internal generally doesn't need to be bothered with the current buffer, it only does so once, in the optimization it implements. And in that code, I see no paradigm like what you show. Am I missing something? > What if ... killed saved_current_buffer? I don't see how that could happen in redisplay_internal. Maybe you had redisplay_window in mind. It does set_buffer_internal_1 (XBUFFER (w->contents)); If you imply that a window's buffer could be killed (which I still don't understand how can happen, given what kill-buffer does), then I think set_buffer_internal_1 would detect that. If not, we could test that explicitly, but then the question would be: what to do if we detect that the buffer is indeed killed? ^ permalink raw reply [flat|nested] 160+ messages in thread
end of thread, other threads:[~2021-04-20 14:03 UTC | newest] Thread overview: 160+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-03-18 15:39 bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs Michael Welsh Duggan 2021-03-18 15:42 ` Michael Welsh Duggan 2021-03-18 15:49 ` Michael Welsh Duggan 2021-03-18 16:02 ` Andreas Schwab 2021-03-18 16:02 ` Eli Zaretskii 2021-03-18 16:27 ` Michael Welsh Duggan 2021-03-18 16:45 ` Eli Zaretskii 2021-03-18 16:54 ` Michael Welsh Duggan 2021-03-18 18:41 ` Eli Zaretskii 2021-03-18 18:54 ` Michael Welsh Duggan 2021-03-18 19:16 ` Eli Zaretskii 2021-03-18 19:24 ` Michael Welsh Duggan 2021-03-18 19:51 ` Eli Zaretskii 2021-03-18 20:13 ` Andreas Schwab 2021-03-18 20:27 ` Eli Zaretskii 2021-03-19 1:50 ` Michael Welsh Duggan 2021-03-19 6:47 ` Eli Zaretskii 2021-03-19 13:37 ` Michael Welsh Duggan 2021-03-19 13:41 ` Michael Welsh Duggan 2021-03-19 13:51 ` Eli Zaretskii 2021-03-19 13:49 ` Eli Zaretskii 2021-03-19 14:18 ` Michael Welsh Duggan 2021-03-19 14:21 ` Michael Welsh Duggan 2021-03-19 15:00 ` Eli Zaretskii 2021-03-19 15:14 ` Michael Welsh Duggan 2021-03-23 14:18 ` Michael Welsh Duggan 2021-03-23 15:02 ` Eli Zaretskii 2021-03-23 15:08 ` Michael Welsh Duggan 2021-03-23 16:42 ` Eli Zaretskii 2021-03-23 15:23 ` martin rudalics 2021-03-23 15:53 ` Michael Welsh Duggan 2021-03-23 16:45 ` Eli Zaretskii 2021-03-24 6:53 ` martin rudalics 2021-03-24 14:14 ` Michael Welsh Duggan 2021-03-24 16:09 ` martin rudalics 2021-03-25 2:19 ` Michael Welsh Duggan 2021-03-25 6:25 ` Eli Zaretskii 2021-03-29 14:06 ` Michael Welsh Duggan 2021-03-29 14:28 ` Eli Zaretskii 2021-03-29 14:39 ` Michael Welsh Duggan 2021-03-29 15:02 ` Eli Zaretskii 2021-03-29 15:07 ` Eli Zaretskii 2021-03-29 15:21 ` Michael Welsh Duggan 2021-03-29 15:26 ` Michael Welsh Duggan 2021-03-29 15:27 ` Eli Zaretskii 2021-03-29 15:33 ` Michael Welsh Duggan 2021-03-29 15:34 ` Michael Welsh Duggan 2021-03-29 15:41 ` Eli Zaretskii 2021-03-29 16:23 ` Michael Welsh Duggan 2021-03-29 15:21 ` Eli Zaretskii 2021-03-29 16:05 ` martin rudalics 2021-03-29 16:26 ` Michael Welsh Duggan 2021-03-29 17:33 ` martin rudalics 2021-03-29 19:12 ` Michael Welsh Duggan 2021-03-30 7:30 ` martin rudalics 2021-03-30 13:39 ` Michael Welsh Duggan 2021-03-30 14:36 ` martin rudalics 2021-03-30 14:51 ` Michael Welsh Duggan 2021-03-30 15:05 ` martin rudalics 2021-03-30 14:13 ` Michael Welsh Duggan 2021-03-30 14:36 ` martin rudalics 2021-03-30 14:48 ` Eli Zaretskii 2021-03-30 15:05 ` martin rudalics 2021-03-30 15:13 ` Eli Zaretskii 2021-03-30 16:52 ` martin rudalics 2021-03-30 17:05 ` Eli Zaretskii 2021-03-31 6:41 ` martin rudalics 2021-03-31 7:09 ` Eli Zaretskii 2021-03-30 15:03 ` Michael Welsh Duggan 2021-03-30 16:52 ` martin rudalics 2021-03-31 13:23 ` Michael Welsh Duggan 2021-03-31 13:53 ` Michael Welsh Duggan 2021-03-31 14:01 ` Eli Zaretskii 2021-03-31 14:32 ` martin rudalics 2021-03-31 14:48 ` Michael Welsh Duggan 2021-03-31 15:49 ` martin rudalics 2021-03-31 17:01 ` Michael Welsh Duggan 2021-03-31 18:41 ` martin rudalics 2021-03-31 19:14 ` Michael Welsh Duggan 2021-03-31 19:18 ` Michael Welsh Duggan 2021-04-01 7:14 ` martin rudalics 2021-04-01 7:45 ` Eli Zaretskii 2021-04-01 13:20 ` Michael Welsh Duggan 2021-04-01 13:22 ` Eli Zaretskii 2021-04-01 13:54 ` Michael Welsh Duggan 2021-04-01 14:56 ` martin rudalics 2021-04-01 18:30 ` Michael Welsh Duggan 2021-04-01 19:31 ` Michael Welsh Duggan 2021-04-02 6:48 ` martin rudalics 2021-04-05 18:15 ` Michael Welsh Duggan 2021-04-05 18:45 ` martin rudalics 2021-04-05 19:57 ` Michael Welsh Duggan 2021-04-05 20:39 ` martin rudalics 2021-04-05 20:56 ` Michael Welsh Duggan 2021-04-06 8:10 ` martin rudalics 2021-04-06 14:40 ` Michael Welsh Duggan 2021-04-06 16:12 ` martin rudalics 2021-04-06 16:48 ` Michael Welsh Duggan 2021-04-06 17:00 ` martin rudalics 2021-04-06 17:24 ` Michael Welsh Duggan 2021-04-07 2:22 ` Michael Welsh Duggan 2021-04-07 7:52 ` Andreas Schwab 2021-04-07 9:00 ` martin rudalics 2021-04-07 12:42 ` Michael Welsh Duggan 2021-04-07 13:35 ` martin rudalics 2021-04-07 15:29 ` Michael Welsh Duggan 2021-04-07 16:16 ` martin rudalics 2021-04-07 17:37 ` Michael Welsh Duggan 2021-04-07 17:55 ` Michael Welsh Duggan 2021-04-07 18:31 ` Michael Welsh Duggan 2021-04-07 19:25 ` Michael Welsh Duggan 2021-04-07 20:25 ` martin rudalics 2021-04-07 20:32 ` Michael Welsh Duggan 2021-04-08 6:59 ` martin rudalics 2021-04-08 10:47 ` Gregory Heytings 2021-04-08 11:39 ` Eli Zaretskii 2021-04-08 12:06 ` Andreas Schwab 2021-04-08 12:29 ` Eli Zaretskii 2021-04-08 12:43 ` Gregory Heytings 2021-04-08 12:59 ` Eli Zaretskii 2021-04-08 16:20 ` Gregory Heytings 2021-04-08 12:03 ` martin rudalics 2021-04-08 12:24 ` Gregory Heytings 2021-04-08 13:39 ` Michael Welsh Duggan 2021-04-08 14:35 ` Michael Welsh Duggan 2021-04-08 15:08 ` Eli Zaretskii 2021-04-08 15:24 ` Andreas Schwab 2021-04-08 15:21 ` Michael Welsh Duggan 2021-04-08 15:33 ` Michael Welsh Duggan 2021-04-08 15:48 ` martin rudalics 2021-04-08 16:01 ` Michael Welsh Duggan 2021-04-08 16:14 ` martin rudalics 2021-04-08 16:35 ` Eli Zaretskii 2021-04-08 16:42 ` Michael Welsh Duggan 2021-04-08 15:58 ` Eli Zaretskii 2021-04-08 16:05 ` Michael Welsh Duggan 2021-04-08 16:28 ` Eli Zaretskii 2021-04-08 16:37 ` Michael Welsh Duggan 2021-04-08 16:49 ` Eli Zaretskii 2021-04-08 17:15 ` Michael Welsh Duggan 2021-04-08 17:11 ` Michael Welsh Duggan 2021-04-08 17:46 ` Eli Zaretskii 2021-04-08 17:51 ` Michael Welsh Duggan 2021-04-08 18:52 ` martin rudalics 2021-04-09 20:59 ` Michael Welsh Duggan 2021-04-10 7:15 ` martin rudalics 2021-04-10 14:53 ` Michael Welsh Duggan 2021-04-10 18:57 ` martin rudalics 2021-04-17 8:01 ` martin rudalics 2021-04-20 14:03 ` Michael Welsh Duggan 2021-04-07 19:40 ` Eli Zaretskii 2021-04-07 18:48 ` martin rudalics 2021-04-07 18:53 ` Michael Welsh Duggan 2021-04-07 20:25 ` martin rudalics 2021-04-07 9:00 ` martin rudalics 2021-03-19 8:15 ` martin rudalics 2021-03-19 8:19 ` Eli Zaretskii 2021-03-19 9:18 ` martin rudalics 2021-03-19 9:37 ` martin rudalics 2021-03-19 11:55 ` Eli Zaretskii
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).