Package: emacs;
Reported by: Gregor Zattler <telegraph <at> gmx.net>
Date: Thu, 6 Feb 2025 12:51:01 UTC
Severity: normal
Found in version 31.0.50
Done: Pip Cet <pipcet <at> protonmail.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 76091 in the body.
You can then email your comments to 76091 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Thu, 06 Feb 2025 12:51:01 GMT) Full text and rfc822 format available.Gregor Zattler <telegraph <at> gmx.net>
:bug-gnu-emacs <at> gnu.org
.
(Thu, 06 Feb 2025 12:51:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Gregor Zattler <telegraph <at> gmx.net> To: bug-gnu-emacs <at> gnu.org Subject: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Thu, 06 Feb 2025 13:49:30 +0100
Dear Emacs developers, I don't know if this failed assertion is due to using MPS as GC. I played along with pdf-tools and org-noter when it happened. This time I built with a current checkout of feature/igc. GDB output even further below. The crashed session is still in GDB. HTH, Gregor In GNU Emacs 31.0.50 (build 3, x86_64-pc-linux-gnu, cairo version 1.16.0) of 2025-02-06 built on no Repository revision: aa915b0c87e42444ee5426744df18c3b15ac0cf5 Repository branch: feature/igc Windowing system distributor 'The X.Org Foundation', version 11.0.12101007 System Description: Debian GNU/Linux 12 (bookworm) Configured using: 'configure --infodir=/usr/share/info/emacs --with-json --with-file-notification=yes --with-libsystemd --with-cairo --with-x=yes --with-x-toolkit=no --without-toolkit-scroll-bars --without-gsettings --enable-check-lisp-object-type --enable-checking=yes,glyphs --with-native-compilation=yes --with-mps=yes 'CFLAGS=-ggdb3 -O3 -ffile-prefix-map=/home/grfz/src/emacs-igc=. -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer' 'CPPFLAGS=-I/home/grfz/mps-artifacts -Wdate-time -D_FORTIFY_SOURCE=2' 'LDFLAGS=-L/home/grfz/mps-artifacts -Wl,-z,relro'' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM HARFBUZZ JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES MPS NATIVE_COMP NOTIFY INOTIFY OLDXMENU PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF WEBP X11 XDBE XIM XINPUT2 XPM ZLIB Important settings: value of $LC_ALL: value of $LC_COLLATE: de_DE.utf8 value of $LC_CTYPE: de_DE.utf8 value of $LC_MESSAGES: POSIX value of $LC_MONETARY: de_DE.utf8 value of $LC_NUMERIC: de_DE.utf8 value of $LC_TIME: de_DE.utf8 value of $LANG: de_DE.utf8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: rainbow-delimiters-mode: t winner-mode: t which-key-mode: t savehist-mode: t ws-butler-global-mode: t ws-butler-mode: t delete-selection-mode: t minibuffer-depth-indicate-mode: t which-function-mode: t windmove-mode: t xterm-mouse-mode: t key-chord-mode: t mail-abbrevs-mode: t find-function-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t minibuffer-regexp-mode: t size-indication-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: ~/src/notmuch/emacs/notmuch-address hides /home/grfz/.config/emacs/elisp/notmuch-address /home/grfz/src/ol-notmuch/ol-notmuch hides /home/grfz/.config/emacs/elisp/ol-notmuch /home/grfz/.config/emacs/elpa-31.0/magit-4.2.0/magit-autorevert hides /home/grfz/.config/emacs/elpa-31.0/magit-section-4.2.0/magit-autorevert ~/src/notmuch/emacs/notmuch-lib hides /usr/local/share/emacs/site-lisp/notmuch-lib ~/src/notmuch/emacs/coolj hides /usr/local/share/emacs/site-lisp/coolj ~/src/notmuch/emacs/notmuch-address hides /usr/local/share/emacs/site-lisp/notmuch-address ~/src/notmuch/emacs/notmuch-hello hides /usr/local/share/emacs/site-lisp/notmuch-hello ~/src/notmuch/emacs/notmuch-parser hides /usr/local/share/emacs/site-lisp/notmuch-parser ~/src/notmuch/emacs/notmuch-show hides /usr/local/share/emacs/site-lisp/notmuch-show ~/src/notmuch/emacs/notmuch-wash hides /usr/local/share/emacs/site-lisp/notmuch-wash ~/src/notmuch/emacs/notmuch-draft hides /usr/local/share/emacs/site-lisp/notmuch-draft ~/src/notmuch/emacs/notmuch-tree hides /usr/local/share/emacs/site-lisp/notmuch-tree ~/src/notmuch/emacs/notmuch-version hides /usr/local/share/emacs/site-lisp/notmuch-version ~/src/notmuch/emacs/notmuch-jump hides /usr/local/share/emacs/site-lisp/notmuch-jump ~/src/notmuch/emacs/notmuch-company hides /usr/local/share/emacs/site-lisp/notmuch-company ~/src/notmuch/emacs/notmuch hides /usr/local/share/emacs/site-lisp/notmuch ~/src/notmuch/emacs/notmuch-crypto hides /usr/local/share/emacs/site-lisp/notmuch-crypto ~/src/notmuch/emacs/notmuch-compat hides /usr/local/share/emacs/site-lisp/notmuch-compat ~/src/notmuch/emacs/notmuch-maildir-fcc hides /usr/local/share/emacs/site-lisp/notmuch-maildir-fcc ~/src/notmuch/emacs/notmuch-tag hides /usr/local/share/emacs/site-lisp/notmuch-tag ~/src/notmuch/emacs/notmuch-message hides /usr/local/share/emacs/site-lisp/notmuch-message ~/src/notmuch/emacs/notmuch-print hides /usr/local/share/emacs/site-lisp/notmuch-print ~/src/notmuch/emacs/notmuch-mua hides /usr/local/share/emacs/site-lisp/notmuch-mua ~/src/notmuch/emacs/notmuch-query hides /usr/local/share/emacs/site-lisp/notmuch-query /home/grfz/.config/emacs/elpa-31.0/transient-0.8.4/transient hides /home/grfz/src/emacs-igc/lisp/transient /home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-shell hides /home/grfz/src/emacs-igc/lisp/obsolete/idlw-shell /home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlwave hides /home/grfz/src/emacs-igc/lisp/obsolete/idlwave /home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-toolbar hides /home/grfz/src/emacs-igc/lisp/obsolete/idlw-toolbar /home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-help hides /home/grfz/src/emacs-igc/lisp/obsolete/idlw-help /home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-complete-structtag hides /home/grfz/src/emacs-igc/lisp/obsolete/idlw-complete-structtag Features: (shadow sort orgalist ecomplete mail-extr tramp trampver tramp-integration files-x tramp-message tramp-compat shell tramp-loaddefs emacsbug add-log rainbow-delimiters winner which-key ol-notmuch notmuch notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-message notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser notmuch-wash diff-mode track-changes coolj goto-addr icalendar diary-lib diary-loaddefs notmuch-tag crm notmuch-lib notmuch-version notmuch-compat hl-line compat org-contrib org-crypt org-protocol org-clock ob-plantuml gnus-alias advice savehist auth-source-pass holidays holiday-loaddefs ws-butler delsel modus-operandi-theme modus-themes mb-depth which-func imenu windmove xt-mouse edmacro kmacro key-chord comp comp-cstr warnings comp-run comp-common wcheck-mode oc-basic cl-extra help-mode org-element org-persist org-id org-refile org-element-ast inline avl-tree generator ol-eww eww vtable mule-util url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time gnus-spec gnus-int gnus-range message sendmail yank-media puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util text-property-search mail-utils range mm-util mail-prsvr ol-docview doc-view filenotify jka-compr image-mode exif dired dired-loaddefs ol-bibtex bibtex iso8601 ol-bbdb ol-w3m ol-doi org-link-doi org ob ob-ref ob-lob ob-table ob-exp org-macro org-pcomplete pcomplete org-list org-footnote org-faces org-entities time-date noutline outline ob-emacs-lisp org-table org-loaddefs thingatpt find-func cal-menu calendar cal-loaddefs ob-tangle ol org-src sh-script rx smie treesit executable org-keys oc ob-comint comint ansi-osc ansi-color ring ob-core org-cycle org-fold org-fold-core org-compat ob-eval org-version org-macs format-spec use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core async-autoloads csv-mode-autoloads debbugs-autoloads dired-git-info-autoloads git-timemachine-autoloads hyperbole-autoloads kotl-autoloads hact set hhist idlwave-autoloads key-chord-autoloads magit-autoloads pcase magit-section-autoloads dash-autoloads minibuffer-line-autoloads org-contrib-autoloads org-noter-autoloads org-autoloads orgalist-autoloads paredit-autoloads pdf-tools-autoloads finder-inf rainbow-delimiters-autoloads tablist-autoloads transient-autoloads wcheck-mode-autoloads info with-editor-autoloads ws-butler-autoloads package browse-url xdg url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cus-edit pp cus-load icons wid-edit cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting font-render-setting cairo xinput2 x multi-tty move-toolbar make-network-process tty-child-frames native-compile mps emacs) Memory information: ((conses 24 0 0) (symbols 56 0 0) (strings 40 0 0) (string-bytes 1 0) (vectors 24 0) (vector-slots 8 0 0) (floats 24 0 0) (intervals 64 0 0) (buffers 992 0)) +run --debug-init -xrm --init-directory="${USER_EMACS_DIRECTORY}" --fg-daemon="${EMACS_SERVER_NAME}" Starting program: /home/grfz/src/emacs-igc/src/emacs --debug-init -xrm --init-directory="${USER_EMACS_DIRECTORY}" --fg-daemon="${EMACS_SERVER_NAME}" [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [Detaching after vfork from child process 1490619] [Detaching after vfork from child process 1490620] [Detaching after vfork from child process 1490621] [Detaching after vfork from child process 1490622] [Detaching after vfork from child process 1490625] [Detaching after vfork from child process 1490626] [Detaching after vfork from child process 1490692] [Detaching after vfork from child process 1490694] [Detaching after vfork from child process 1490695] Program received signal SIGSEGV, Segmentation fault. [... 155 such lines deleted ...] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1490698] [Detaching after vfork from child process 1491454] [Detaching after vfork from child process 1491455] [Detaching after vfork from child process 1491584] [Detaching after vfork from child process 1491838] Program received signal SIGSEGV, Segmentation fault. [... plenty such deleted ...] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1491900] [Detaching after vfork from child process 1491901] [Detaching after vfork from child process 1491903] [Detaching after vfork from child process 1491904] [Detaching after vfork from child process 1491915] [Detaching after vfork from child process 1491916] [Detaching after vfork from child process 1491917] Program received signal SIGSEGV, Segmentation fault. [... 40 such lines deleted ...] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1491919] [Detaching after vfork from child process 1492526] [Detaching after vfork from child process 1492561] [Detaching after vfork from child process 1492564] [Detaching after vfork from child process 1492565] [Detaching after vfork from child process 1492566] Program received signal SIGSEGV, Segmentation fault. [... 190 such lines deleted ...] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1492570] [Detaching after vfork from child process 1492572] [Detaching after vfork from child process 1493673] Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1496065] [Detaching after vfork from child process 1496066] [Detaching after vfork from child process 1497149] Program received signal SIGSEGV, Segmentation fault. [... 158 such lines deleted ...] Program received signal SIGSEGV, Segmentation fault. Breakpoint 1, terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 425 { +bt #0 terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 #1 0x00005555555b8f5b in die (msg=msg <at> entry=0x5555559b40d0 "BUFFERP (a)", file=file <at> entry=0x5555559b40c7 "buffer.h", line=line <at> entry=829) at ./src/alloc.c:7683 #2 0x00005555555a0bda in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/buffer.h:829 #3 0x00005555555a4370 in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/xdisp.c:17024 #4 prepare_menu_bars () at ./src/xdisp.c:14041 #5 redisplay_internal () at ./src/xdisp.c:17103 #6 0x000055555564ec75 in redisplay () at ./src/xdisp.c:16675 #7 0x000055555577b9a5 in read_char (commandflag=1, map=Python Exception <class 'gdb.error'>: value has been optimized out , map <at> entry=XIL(0x7fffc31bd02b), prev_event=Python Exception <class 'gdb.error'>: value has been optimized out , used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffc9bb, end_time=end_time <at> entry=0x0) at ./src/keyboard.c:2683 #8 0x000055555577e03b in read_key_sequence (keybuf=keybuf <at> entry=0x7fffffffcb20, prompt=Python Exception <class 'gdb.error'>: value has been optimized out , prompt <at> entry=XIL(0), dont_downcase_last=dont_downcase_last <at> entry=false, can_return_switch_frame=can_return_switch_frame <at> entry=true, fix_current_buffer=fix_current_buffer <at> entry=true, prevent_redisplay=prevent_redisplay <at> entry=false, disable_text_conversion_p=<optimized out>) at ./src/keyboard.c:10790 #9 0x000055555577fd67 in command_loop_1 () at ./src/lisp.h:1184 #10 0x000055555581e7a6 in internal_condition_case (bfun=bfun <at> entry=0x55555577fb10 <command_loop_1>, handlers=handlers <at> entry=XIL(0xa8), hfun=hfun <at> entry=0x555555763cd0 <cmd_error>) at ./src/eval.c:1623 #11 0x000055555576290e in command_loop_2 (handlers=handlers <at> entry=XIL(0xa8)) at ./src/keyboard.c:1174 #12 0x000055555581e52f in internal_catch (tag=tag <at> entry=XIL(0x15498), func=func <at> entry=0x5555557628e0 <command_loop_2>, arg=Python Exception <class 'gdb.error'>: value has been optimized out , arg <at> entry=XIL(0xa8)) at ./src/eval.c:1302 #13 0x00005555557628a9 in command_loop () at ./src/lisp.h:1184 #14 0x000055555576f3e5 in recursive_edit_1 () at ./src/keyboard.c:760 #15 0x000055555576f795 in Frecursive_edit () at ./src/keyboard.c:843 #16 0x00005555555d1f77 in main (argc=5, argv=<optimized out>) at ./src/emacs.c:2580 ++set $bt = backtrace_top () ++if backtrace_p ($bt) +++echo \n +++echo Lisp Backtrace:\n Lisp Backtrace: +++xbacktrace ++++set $bt = backtrace_top () ++++while backtrace_p ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "redisplay_internal (C function)"++++++printf " (0x%x)\n", backtrace_args ($bt) (0x0) +++++set $bt = backtrace_next ($bt) +xbacktrace ++set $bt = backtrace_top () ++while backtrace_p ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "redisplay_internal (C function)"++++printf " (0x%x)\n", backtrace_args ($bt) (0x0) +++set $bt = backtrace_next ($bt) +bt full #0 terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 #1 0x00005555555b8f5b in die (msg=msg <at> entry=0x5555559b40d0 "BUFFERP (a)", file=file <at> entry=0x5555559b40c7 "buffer.h", line=line <at> entry=829) at ./src/alloc.c:7683 #2 0x00005555555a0bda in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/buffer.h:829 #3 0x00005555555a4370 in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/xdisp.c:17024 f = <optimized out> tail = Python Exception <class 'gdb.error'>: value has been optimized out frame = Python Exception <class 'gdb.error'>: value has been optimized out all_windows = <optimized out> some_windows = <optimized out> w = <optimized out> sw = <optimized out> must_finish = <optimized out> match_p = <optimized out> tlbufpos = { charpos = <optimized out>, bytepos = <optimized out> } tlendpos = { charpos = <optimized out>, bytepos = <optimized out> } number_of_visible_frames = <optimized out> sf = <optimized out> polling_stopped_here = <optimized out> tail = Python Exception <class 'gdb.error'>: value has been optimized out frame = Python Exception <class 'gdb.error'>: value has been optimized out hscroll_retries = <optimized out> garbaged_frame_retries = <optimized out> consider_all_windows_p = <optimized out> update_miniwindow_p = <optimized out> previous_frame = <optimized out> current_matrices_cleared = <optimized out> new_count = <optimized out> #4 prepare_menu_bars () at ./src/xdisp.c:14041 f = <optimized out> tail = Python Exception <class 'gdb.error'>: value has been optimized out frame = Python Exception <class 'gdb.error'>: value has been optimized out all_windows = <optimized out> some_windows = <optimized out> w = <optimized out> sw = <optimized out> must_finish = <optimized out> match_p = <optimized out> tlbufpos = { charpos = <optimized out>, bytepos = <optimized out> } tlendpos = { charpos = <optimized out>, bytepos = <optimized out> } number_of_visible_frames = <optimized out> sf = <optimized out> polling_stopped_here = <optimized out> tail = Python Exception <class 'gdb.error'>: value has been optimized out frame = Python Exception <class 'gdb.error'>: value has been optimized out hscroll_retries = <optimized out> garbaged_frame_retries = <optimized out> consider_all_windows_p = <optimized out> update_miniwindow_p = <optimized out> previous_frame = <optimized out> current_matrices_cleared = <optimized out> new_count = <optimized out> #5 redisplay_internal () at ./src/xdisp.c:17103 w = <optimized out> sw = <optimized out> must_finish = <optimized out> match_p = <optimized out> tlbufpos = { charpos = <optimized out>, bytepos = <optimized out> } tlendpos = { charpos = <optimized out>, bytepos = <optimized out> } number_of_visible_frames = <optimized out> sf = <optimized out> polling_stopped_here = <optimized out> tail = Python Exception <class 'gdb.error'>: value has been optimized out frame = Python Exception <class 'gdb.error'>: value has been optimized out hscroll_retries = <optimized out> garbaged_frame_retries = <optimized out> consider_all_windows_p = <optimized out> update_miniwindow_p = <optimized out> previous_frame = <optimized out> current_matrices_cleared = <optimized out> new_count = <optimized out> #6 0x000055555564ec75 in redisplay () at ./src/xdisp.c:16675 #7 0x000055555577b9a5 in read_char (commandflag=1, map=Python Exception <class 'gdb.error'>: value has been optimized out , map <at> entry=XIL(0x7fffc31bd02b), prev_event=Python Exception <class 'gdb.error'>: value has been optimized out , used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffc9bb, end_time=end_time <at> entry=0x0) at ./src/keyboard.c:2683 echo_current = false c = XIL(0xc20b1d08) local_getcjmp = {{ __jmpbuf = {0, 1, 140737488340544, 93824995805383, 140736458492269, 0, 140736562946003, 56448}, __mask_was_saved = -14784, __saved_mask = { __val = {0, 56448, 0, 140736465790707, 140736652710968, 140737488340640, 93824995805383, 56448, 8589919984, 140737488340640, 0, 56448, 140737488340720, 140736448845896, 140736448845901, 140737488340912} } }} save_jump = {{ __jmpbuf = {140736448845901, 93824995842824, 140736448845896, 140737488340768, 140736448845896, 0, 0, 93824995066752}, __mask_was_saved = 0, __saved_mask = { __val = {93824995065784, 444559, 7269376900467383552, 0, 128, 0, 0, 93824996979680, 140736448845901, 140736405658160, 140736633644704, 140737488340848, 93824995062785, 6, 140736633643803, 140737488341024} } }} tem = Python Exception <class 'gdb.error'>: value has been optimized out save = Python Exception <class 'gdb.error'>: value has been optimized out previous_echo_area_message = XIL(0) also_record = XIL(0) reread = false recorded = false polling_stopped_here = false orig_kboard = 0x555556039310 c_volatile = XIL(0) #8 0x000055555577e03b in read_key_sequence (keybuf=keybuf <at> entry=0x7fffffffcb20, prompt=Python Exception <class 'gdb.error'>: value has been optimized out , prompt <at> entry=XIL(0), dont_downcase_last=dont_downcase_last <at> entry=false, can_return_switch_frame=can_return_switch_frame <at> entry=true, fix_current_buffer=fix_current_buffer <at> entry=true, prevent_redisplay=prevent_redisplay <at> entry=false, disable_text_conversion_p=<optimized out>) at ./src/keyboard.c:10790 interrupted_kboard = 0x555556039310 interrupted_frame = 0x7fffc20b1d08 key = Python Exception <class 'gdb.error'>: value has been optimized out used_mouse_menu = false echo_local_start = 0 last_real_key_start = 0 keys_local_start = 0 new_binding = Python Exception <class 'gdb.error'>: value has been optimized out t = 0 echo_start = 0 keys_start = 0 current_binding = XIL(0x7fffc31bd02b) first_unbound = 31 mock_input = 0 used_mouse_menu_history = {false <repeats 30 times>} fkey = { parent = XIL(0x7fffe60e78cb), map = XIL(0x7fffe60e78cb), start = 0, end = 0 } keytran = { parent = XIL(0x7fffebe4ca73), map = XIL(0x7fffebe4ca73), start = 0, end = 0 } indec = { parent = XIL(0x7fffe60e78b3), map = XIL(0x7fffe60e78b3), start = 0, end = 0 } shift_translated = false delayed_switch_frame = XIL(0) original_uppercase = XIL(0) original_uppercase_position = -1 disabled_conversion = false fake_prefixed_keys = XIL(0) first_event = XIL(0) #9 0x000055555577fd67 in command_loop_1 () at ./src/lisp.h:1184 cmd = Python Exception <class 'gdb.error'>: value has been optimized out keybuf = {XIL(0x7fffc31abc73), make_fixnum(53), make_fixnum(48), XIL(0), XIL(0x5555559db3e0), XIL(0x7fffc20a584d), XIL(0x7fffffffcbc0), XIL(0x5555558205a3), XIL(0x7fffffffcdec), XIL(0x3), XIL(0xc), XIL(0x140b0), XIL(0x38), XIL(0x7fffc20a584d), XIL(0x7fffffffcbc0), XIL(0x7fffffffcc00), XIL(0x60), XIL(0x555555763cd0), XIL(0x7fffffffcdec), XIL(0x7fffffffd4ef), XIL(0x7fffffffcc50), XIL(0x555555763ec7), XIL(0), XIL(0), XIL(0x2aaa78cd6780), XIL(0x7fffc28051bb), XIL(0x7fffda689a9c), XIL(0x2aaa730f4468), XIL(0x7fffffffcc00), XIL(0x5555558205a3)} i = <optimized out> last_pt = <optimized out> prev_modiff = 6292 prev_buffer = 0x7fffc20a5848 #10 0x000055555581e7a6 in internal_condition_case (bfun=bfun <at> entry=0x55555577fb10 <command_loop_1>, handlers=handlers <at> entry=XIL(0xa8), hfun=hfun <at> entry=0x555555763cd0 <cmd_error>) at ./src/eval.c:1623 val = make_fixnum(16) c = 0x7fffe1d92450 #11 0x000055555576290e in command_loop_2 (handlers=handlers <at> entry=XIL(0xa8)) at ./src/keyboard.c:1174 #12 0x000055555581e52f in internal_catch (tag=tag <at> entry=XIL(0x15498), func=func <at> entry=0x5555557628e0 <command_loop_2>, arg=Python Exception <class 'gdb.error'>: value has been optimized out , arg <at> entry=XIL(0xa8)) at ./src/eval.c:1302 val = make_fixnum(16) c = 0x7fffe1d6cd10 #13 0x00005555557628a9 in command_loop () at ./src/lisp.h:1184 #14 0x000055555576f3e5 in recursive_edit_1 () at ./src/keyboard.c:760 val = Python Exception <class 'gdb.error'>: value has been optimized out #15 0x000055555576f795 in Frecursive_edit () at ./src/keyboard.c:843 #16 0x00005555555d1f77 in main (argc=5, argv=<optimized out>) at ./src/emacs.c:2580 stack_bottom_variable = 0x7ffff3e92c60 old_argc = <optimized out> no_loadup = <optimized out> junk = 0x0 dname_arg = 0x7fffffffd551 "EMACS-MPS=yes" ch_to_dir = 0x0 original_pwd = <optimized out> dump_mode = <optimized out> skip_args = 1 temacs = 0x0 attempt_load_pdump = <optimized out> only_version = <optimized out> rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = <optimized out> sockfd = <optimized out> module_assertions = <optimized out> ++set $bt = backtrace_top () ++if backtrace_p ($bt) +++echo \n +++echo Lisp Backtrace:\n Lisp Backtrace: +++xbacktrace ++++set $bt = backtrace_top () ++++while backtrace_p ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "redisplay_internal (C function)"++++++printf " (0x%x)\n", backtrace_args ($bt) (0x0) +++++set $bt = backtrace_next ($bt) +i reg rax 0x42 66 rbx 0x5555556069a0 93824992962976 rcx 0x0 0 rdx 0x0 0 rsi 0x7fffffff 2147483647 rdi 0x6 6 rbp 0x7fffffffae30 0x7fffffffae30 rsp 0x7fffffffae28 0x7fffffffae28 r8 0x0 0 r9 0x73 115 r10 0x0 0 r11 0x202 514 r12 0x5555556716d0 93824993400528 r13 0x7fffc20a5848 140736448845896 r14 0x0 0 r15 0x6e633 452147 rip 0x5555555b1385 0x5555555b1385 <terminate_due_to_signal> eflags 0x206 [ PF IF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Thu, 06 Feb 2025 15:44:02 GMT) Full text and rfc822 format available.Message #8 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Gregor Zattler <telegraph <at> gmx.net>, Pip Cet <pipcet <at> protonmail.com>, Gerd Möllmann <gerd.moellmann <at> gmail.com> Cc: 76091 <at> debbugs.gnu.org Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Thu, 06 Feb 2025 17:43:20 +0200
> Date: Thu, 06 Feb 2025 13:49:30 +0100 > From: Gregor Zattler via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org> > > Dear Emacs developers, I don't know if > this failed assertion is due to using > MPS as GC. > > I played along with pdf-tools and > org-noter when it happened. > > This time I built with a current > checkout of feature/igc. > > GDB output even further below. > > The crashed session is still in GDB. > [...] > Breakpoint 1, terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 > 425 { > +bt > #0 terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 > #1 0x00005555555b8f5b in die (msg=msg <at> entry=0x5555559b40d0 "BUFFERP (a)", file=file <at> entry=0x5555559b40c7 "buffer.h", line=line <at> entry=829) at ./src/alloc.c:7683 > #2 0x00005555555a0bda in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out > ) at ./src/buffer.h:829 > #3 0x00005555555a4370 in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out > ) at ./src/xdisp.c:17024 > #4 prepare_menu_bars () at ./src/xdisp.c:14041 This is here: FOR_EACH_FRAME (tail, frame) { struct frame *f = XFRAME (frame); struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f)); if (some_windows && !f->redisplay && !w->redisplay && !XBUFFER (w->contents)->text->redisplay) continue; And I don't understand how w->contents of a frame's selected window could fail the BUFFERP test. Can you tell what the below commands produce? (gdb) frame 3 (gdb) print a (gdb) xtype Other than that, with all the locals "optimized out", there really is not much else to do, except analyze the machine instructions and the corresponding registers.
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Thu, 06 Feb 2025 15:50:01 GMT) Full text and rfc822 format available.Message #11 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Gregor Zattler <telegraph <at> gmx.net> To: Eli Zaretskii <eliz <at> gnu.org>, Pip Cet <pipcet <at> protonmail.com>, Gerd Möllmann <gerd.moellmann <at> gmail.com> Cc: 76091 <at> debbugs.gnu.org Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Thu, 06 Feb 2025 16:48:56 +0100
Hi Eli, * Eli Zaretskii <eliz <at> gnu.org> [2025-02-06; 17:43 +02]: >> Date: Thu, 06 Feb 2025 13:49:30 +0100 >> From: Gregor Zattler via "Bug reports for GNU Emacs, >> the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org> >> >> Dear Emacs developers, I don't know if >> this failed assertion is due to using >> MPS as GC. >> >> I played along with pdf-tools and >> org-noter when it happened. >> >> This time I built with a current >> checkout of feature/igc. >> >> GDB output even further below. >> >> The crashed session is still in GDB. >> [...] >> Breakpoint 1, terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 >> 425 { >> +bt >> #0 terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 >> #1 0x00005555555b8f5b in die (msg=msg <at> entry=0x5555559b40d0 "BUFFERP (a)", file=file <at> entry=0x5555559b40c7 "buffer.h", line=line <at> entry=829) at ./src/alloc.c:7683 >> #2 0x00005555555a0bda in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out >> ) at ./src/buffer.h:829 >> #3 0x00005555555a4370 in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out >> ) at ./src/xdisp.c:17024 >> #4 prepare_menu_bars () at ./src/xdisp.c:14041 > > This is here: > > FOR_EACH_FRAME (tail, frame) > { > struct frame *f = XFRAME (frame); > struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f)); > if (some_windows > && !f->redisplay > && !w->redisplay > && !XBUFFER (w->contents)->text->redisplay) > continue; > > And I don't understand how w->contents of a frame's selected window > could fail the BUFFERP test. Can you tell what the below commands > produce? > > (gdb) frame 3 > (gdb) print a > (gdb) xtype +frame 3 #3 0x00005555555a4370 in XBUFFER (a=...) at ./src/xdisp.c:17024 17024 XFRAME (frame)->already_hscrolled_p = false; +print a $1 = <optimized out> +xtype ++xgettype $ +++if (CHECK_LISP_OBJECT_TYPE) ++++set $bugfix = $.i +++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) value has been optimized out I'll try to use an un-optimized build but I'm afraid it's too slow for everyday usage. HTH, Gregor
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Thu, 06 Feb 2025 23:17:02 GMT) Full text and rfc822 format available.Message #14 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Gregor Zattler <telegraph <at> gmx.net> To: Eli Zaretskii <eliz <at> gnu.org>, Pip Cet <pipcet <at> protonmail.com>, Gerd Möllmann <gerd.moellmann <at> gmail.com> Cc: 76091 <at> debbugs.gnu.org Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 07 Feb 2025 00:15:25 +0100
Hi Eli, * Gregor Zattler <telegraph <at> gmx.net> [2025-02-06; 16:48 +01]: > I'll try to use an un-optimized build > but I'm afraid it's too slow for > everyday usage. So I did, it's really slow, but just usable, and I got a hit at the same breakpoint. I again played around with org-noter. When I finally hit C-x k (a convenience function which kills current buffer) the graphical frame vanished. It might even be that this is expected behaviour of org-noter but the daemon now hangs which it surely should not. As always first infos for this build, then GDB output In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, cairo version 1.16.0) of 2025-02-06 built on no Repository revision: aa915b0c87e42444ee5426744df18c3b15ac0cf5 Repository branch: HEAD Windowing system distributor 'The X.Org Foundation', version 11.0.12101007 System Description: Debian GNU/Linux 12 (bookworm) Configured using: 'configure --infodir=/usr/share/info/emacs --with-json --with-file-notification=yes --with-libsystemd --with-cairo --with-x=yes --with-x-toolkit=no --without-toolkit-scroll-bars --without-gsettings --enable-check-lisp-object-type --enable-checking=yes,glyphs,igc_debug --with-native-compilation=no --with-mps=debug 'CFLAGS=-ggdb3 -Og -ffile-prefix-map=/home/grfz/src/emacs-igc2=. -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer' 'CPPFLAGS=-I/home/grfz/mps-artifacts -Wdate-time -D_FORTIFY_SOURCE=2' 'LDFLAGS=-L/home/grfz/mps-artifacts -Wl,-z,relro'' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM HARFBUZZ JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES MPS NOTIFY INOTIFY OLDXMENU PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF WEBP X11 XDBE XIM XINPUT2 XPM ZLIB Important settings: value of $EMACSLOADPATH: :/usr/share/emacs/site-lisp:/usr/share/emacs/site-lisp/autoconf:/usr/share/emacs/site-lisp/dictionaries-common:/usr/share/emacs/site-lisp/elpa-src:/usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0:/usr/share/emacs/site-lisp/elpa-src/tablist-1.0:/usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.6:/usr/share/emacs/site-lisp/llvm-14:/usr/share/emacs/site-lisp/elpa:/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0:/usr/share/emacs/site-lisp/elpa/tablist-1.0:/usr/share/emacs/site-lisp/elpa/dh-elpa-2.0.16:/usr/share/emacs/site-lisp/elpa/let-alist-1.0.6:/usr/share/emacs/28.2/site-lisp value of $LC_ALL: value of $LC_COLLATE: de_DE.utf8 value of $LC_CTYPE: de_DE.utf8 value of $LC_MESSAGES: POSIX value of $LC_MONETARY: de_DE.utf8 value of $LC_NUMERIC: de_DE.utf8 value of $LC_TIME: de_DE.utf8 value of $LANG: de_DE.utf8 locale-coding-system: utf-8-unix Major mode: Message[Notmuch] Minor modes in effect: orgalist-mode: t wcheck-mode: t rainbow-delimiters-mode: t winner-mode: t which-key-mode: t savehist-mode: t ws-butler-global-mode: t ws-butler-mode: t delete-selection-mode: t minibuffer-depth-indicate-mode: t which-function-mode: t windmove-mode: t xterm-mouse-mode: t key-chord-mode: t find-function-mode: t mml-mode: t mail-abbrevs-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t minibuffer-regexp-mode: t size-indication-mode: t column-number-mode: t line-number-mode: t auto-fill-function: #[128 \304\300\301#\207 [orgalist--auto-fill message-do-auto-fill :around nil apply] 5 advice] transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t abbrev-mode: t Load-path shadows: ~/src/notmuch/emacs/notmuch-address hides /home/grfz/.config/emacs/elisp/notmuch-address /home/grfz/src/ol-notmuch/ol-notmuch hides /home/grfz/.config/emacs/elisp/ol-notmuch /home/grfz/.config/emacs/elpa-31.0/magit-4.2.0/magit-autorevert hides /home/grfz/.config/emacs/elpa-31.0/magit-section-4.2.0/magit-autorevert ~/src/notmuch/emacs/notmuch-lib hides /usr/local/share/emacs/site-lisp/notmuch-lib ~/src/notmuch/emacs/coolj hides /usr/local/share/emacs/site-lisp/coolj ~/src/notmuch/emacs/notmuch-address hides /usr/local/share/emacs/site-lisp/notmuch-address ~/src/notmuch/emacs/notmuch-hello hides /usr/local/share/emacs/site-lisp/notmuch-hello ~/src/notmuch/emacs/notmuch-parser hides /usr/local/share/emacs/site-lisp/notmuch-parser ~/src/notmuch/emacs/notmuch-show hides /usr/local/share/emacs/site-lisp/notmuch-show ~/src/notmuch/emacs/notmuch-wash hides /usr/local/share/emacs/site-lisp/notmuch-wash ~/src/notmuch/emacs/notmuch-draft hides /usr/local/share/emacs/site-lisp/notmuch-draft ~/src/notmuch/emacs/notmuch-tree hides /usr/local/share/emacs/site-lisp/notmuch-tree ~/src/notmuch/emacs/notmuch-version hides /usr/local/share/emacs/site-lisp/notmuch-version ~/src/notmuch/emacs/notmuch-jump hides /usr/local/share/emacs/site-lisp/notmuch-jump ~/src/notmuch/emacs/notmuch-company hides /usr/local/share/emacs/site-lisp/notmuch-company ~/src/notmuch/emacs/notmuch hides /usr/local/share/emacs/site-lisp/notmuch ~/src/notmuch/emacs/notmuch-crypto hides /usr/local/share/emacs/site-lisp/notmuch-crypto ~/src/notmuch/emacs/notmuch-compat hides /usr/local/share/emacs/site-lisp/notmuch-compat ~/src/notmuch/emacs/notmuch-maildir-fcc hides /usr/local/share/emacs/site-lisp/notmuch-maildir-fcc ~/src/notmuch/emacs/notmuch-tag hides /usr/local/share/emacs/site-lisp/notmuch-tag ~/src/notmuch/emacs/notmuch-message hides /usr/local/share/emacs/site-lisp/notmuch-message ~/src/notmuch/emacs/notmuch-print hides /usr/local/share/emacs/site-lisp/notmuch-print ~/src/notmuch/emacs/notmuch-mua hides /usr/local/share/emacs/site-lisp/notmuch-mua ~/src/notmuch/emacs/notmuch-query hides /usr/local/share/emacs/site-lisp/notmuch-query /home/grfz/.config/emacs/elpa-31.0/transient-0.8.4/transient hides /home/grfz/src/emacs-igc2/lisp/transient /home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-shell hides /home/grfz/src/emacs-igc2/lisp/obsolete/idlw-shell /home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlwave hides /home/grfz/src/emacs-igc2/lisp/obsolete/idlwave /home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-toolbar hides /home/grfz/src/emacs-igc2/lisp/obsolete/idlw-toolbar /home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-help hides /home/grfz/src/emacs-igc2/lisp/obsolete/idlw-help /home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-complete-structtag hides /home/grfz/src/emacs-igc2/lisp/obsolete/idlw-complete-structtag /home/grfz/src/emacs-igc2/lisp/emacs-lisp/let-alist hides /usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist /usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist-autoloads hides /usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.6/let-alist-autoloads /usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist-pkg hides /usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.6/let-alist-pkg /home/grfz/src/emacs-igc2/lisp/emacs-lisp/let-alist hides /usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.6/let-alist /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-isearch hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-isearch /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-util hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-util /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-sync hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-sync /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-links hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-links /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-dev hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-dev /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-cache hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-cache /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-loader hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-loader /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-misc hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-misc /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-macs hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-macs /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-annot hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-annot /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-tools-autoloads hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-tools-autoloads /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-tools-pkg hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-tools-pkg /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-virtual hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-virtual /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-tools hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-tools /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-outline hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-outline /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-view hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-view /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-history hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-history /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-occur hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-occur /usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-info hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-info /usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist-pkg hides /usr/share/emacs/site-lisp/elpa-src/tablist-1.0/tablist-pkg /usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist hides /usr/share/emacs/site-lisp/elpa-src/tablist-1.0/tablist /usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist-filter hides /usr/share/emacs/site-lisp/elpa-src/tablist-1.0/tablist-filter /usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist-autoloads hides /usr/share/emacs/site-lisp/elpa-src/tablist-1.0/tablist-autoloads Features: (shadow emacsbug sort orgalist wcheck-mode ecomplete mail-extr vc-hg vc-bzr vc-dir ewoc vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view log-edit pcvs-util vc vc-dispatcher bug-reference mule-util tramp tramp-cache time-stamp trampver tramp-integration tramp-message tramp-compat shell tramp-loaddefs add-log rainbow-delimiters winner which-key ol-notmuch notmuch notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-message notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser notmuch-wash diff-mode track-changes coolj goto-addr icalendar diary-lib diary-loaddefs notmuch-tag crm notmuch-lib notmuch-version notmuch-compat hl-line compat org-contrib org-crypt org-protocol org-clock ob-plantuml gnus-alias advice finder-inf savehist auth-source-pass holidays holiday-loaddefs ws-butler delsel modus-operandi-theme modus-themes mb-depth which-func windmove xt-mouse edmacro kmacro key-chord org ob ob-ref ob-lob ob-table ob-exp org-macro org-pcomplete pcomplete org-list org-footnote org-faces org-entities noutline outline so-long ob-emacs-lisp org-table org-loaddefs find-func cal-menu calendar cal-loaddefs gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group mm-url gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source imap rfc2104 utf7 nnoo parse-time iso8601 gnus-spec gnus-int gnus-range gnus-win gnus message yank-media dired desktop frameset dired-loaddefs autorevert filenotify rfc822 mml mailabbrev sendmail gmm-utils mailheader nnheader mail-utils range ob-tangle ol org-src sh-script flymake project warnings thingatpt smie treesit shortdoc executable skeleton org-keys oc ob-comint ob-core org-cycle org-fold org-fold-core org-compat org-element-ast ob-eval org-version org-macs format-spec use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key use-package-core async-autoloads csv-mode-autoloads debbugs-autoloads dired-git-info-autoloads git-timemachine-autoloads hyperbole-autoloads kotl-autoloads hact set hhist idlwave-autoloads key-chord-autoloads magit-autoloads magit-section-autoloads dash-autoloads minibuffer-line-autoloads org-contrib-autoloads org-noter-autoloads org-autoloads orgalist-autoloads paredit-autoloads rainbow-delimiters-autoloads transient-autoloads wcheck-mode-autoloads info speedbar imenu ezimage dframe with-editor-autoloads ws-butler-autoloads package let-alist browse-url xdg url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mm-view mml-smime mml-sec epa gnus-util time-date smime gnutls puny dig mailcap url-handlers mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-parse auth-source eieio eieio-core password-cache json map byte-opt bytecomp byte-compile compile rx text-property-search comint easy-mmode files-x ansi-osc ansi-color ring url-vars epg cl-extra help-mode derived cl-seq rfc6068 epg-config subr-x cl-macs inline gv pcase cus-edit pp cus-load icons wid-edit cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting font-render-setting cairo xinput2 x multi-tty move-toolbar make-network-process tty-child-frames mps emacs) Memory information: ((conses 24 0 0) (symbols 56 0 0) (strings 40 0 0) (string-bytes 1 0) (vectors 24 0) (vector-slots 8 0 0) (floats 24 0 0) (intervals 64 0 0) (buffers 992 0)) +run --debug-init -xrm --init-directory="${USER_EMACS_DIRECTORY}" --fg-daemon="${EMACS_SERVER_NAME}" Starting program: /home/grfz/src/emacs-igc2/src/emacs --debug-init -xrm --init-directory="${USER_EMACS_DIRECTORY}" --fg-daemon="${EMACS_SERVER_NAME}" [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [Detaching after vfork from child process 1750477] Program received signal SIGSEGV, Segmentation fault. [... 8528 lines ...] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1751646] [Detaching after vfork from child process 1751647] Program received signal SIGSEGV, Segmentation fault. [... 1082 Zeilen gelöscht ...] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1751723] [Detaching after vfork from child process 1751724] Program received signal SIGSEGV, Segmentation fault. [... 1426 Zeilen gelöscht ...] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1752941] [Detaching after vfork from child process 1752942] [Detaching after vfork from child process 1752950] [Detaching after vfork from child process 1752951] Program received signal SIGSEGV, Segmentation fault. [... 894 Zeilen gelöscht ...] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1752985] Program received signal SIGSEGV, Segmentation fault. [... 2926 Zeilen gelöscht ...] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1755223] [Detaching after vfork from child process 1755224] [Detaching after vfork from child process 1755985] [Detaching after vfork from child process 1755986] Program received signal SIGSEGV, Segmentation fault. [... 9262 Zeilen gelöscht ...] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1771940] [Detaching after vfork from child process 1771944] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1772038] [Detaching after vfork from child process 1772101] Program received signal SIGSEGV, Segmentation fault. [... 10770 Zeilen gelöscht ...] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1772677] Program received signal SIGSEGV, Segmentation fault. [... 2962 Zeilen gelöscht ...] Program received signal SIGSEGV, Segmentation fault. Breakpoint 1, terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 425 { +t [Current thread is 1 (Thread 0x7ffff4f48000 (LWP 1750449))] +bt #0 terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 #1 0x00005555557d9a62 in set_state (state=state <at> entry=IGC_STATE_DEAD) at ./src/igc.c:1017 #2 0x00005555557d9a96 in igc_assert_fail (file=file <at> entry=0x555555903e97 "igc.c", line=line <at> entry=3020, msg=msg <at> entry=0x5555558f2277 "r == NULL") at ./src/igc.c:306 #3 0x00005555557da4e4 in igc_check_freeable (start=start <at> entry=0x555555b2b8f0) at ./src/igc.c:3020 #4 0x0000555555736d12 in xfree (block=block <at> entry=0x555555b2b8f0) at ./src/alloc.c:760 #5 0x00005555556889f0 in x_delete_display (dpyinfo=dpyinfo <at> entry=0x555555b2b8f0) at ./src/xterm.c:31925 #6 0x000055555569385e in x_delete_terminal (terminal=0x7fffd549a0c0) at ./src/xterm.c:32154 #7 0x000055555567099a in Fdelete_terminal (terminal=terminal <at> entry=XIL(0x7fffd549a0c5), force=XIL(0x38)) at ./src/terminal.c:428 #8 0x00005555555b492a in delete_frame (frame=frame <at> entry=XIL(0x7fffd5771d1d), force=XIL(0)) at ./src/frame.c:2670 #9 0x00005555555b4e00 in Fdelete_frame (frame=XIL(0x7fffd5771d1d), force=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/frame.c:2839 #10 0x000055555576022a in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:2612 #11 0x0000555555760bc3 in Fif (args=XIL(0x7fffbb79b6ab)) at ./src/eval.c:407 #12 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb79996b)) at ./src/eval.c:2560 #13 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #14 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:2560 #15 0x0000555555760bc3 in Fif (args=XIL(0x7fffbb7901f3)) at ./src/eval.c:407 #16 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb77c5bb)) at ./src/eval.c:2560 #17 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #18 0x00005555557617f5 in FletX (args=XIL(0x7fffbb767a1b)) at ./src/eval.c:1051 #19 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb7662fb)) at ./src/eval.c:2560 #20 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #21 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:2560 #22 0x0000555555760bc3 in Fif (args=XIL(0x7fffbb75e76b)) at ./src/eval.c:407 #23 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb75d12b)) at ./src/eval.c:2560 #24 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #25 0x0000555555760914 in funcall_lambda (fun=fun <at> entry=XIL(0x7fffbb756a7d), nargs=nargs <at> entry=1, arg_vector=arg_vector <at> entry=0x7fffffffb5e0) at ./src/eval.c:3361 #26 0x0000555555761136 in apply_lambda (fun=Python Exception <class 'gdb.error'>: value has been optimized out , fun <at> entry=XIL(0x7fffbb756a7d), args=Python Exception <class 'gdb.error'>: value has been optimized out , count=count <at> entry=...) at ./src/eval.c:3226 #27 0x000055555576034e in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb781583)) at ./src/eval.c:2656 #28 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #29 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:2560 #30 0x0000555555760bc3 in Fif (args=XIL(0x7fffbb77fe6b)) at ./src/eval.c:407 #31 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb77f943)) at ./src/eval.c:2560 #32 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #33 0x0000555555761542 in Flet (args=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:1118 #34 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb77e803)) at ./src/eval.c:2560 #35 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #36 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb77bf2b)) at ./src/eval.c:2560 #37 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #38 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:2560 #39 0x0000555555760bc3 in Fif (args=XIL(0x7fffbb771c4b)) at ./src/eval.c:407 #40 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb76ff53)) at ./src/eval.c:2560 #41 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #42 0x0000555555761542 in Flet (args=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:1118 #43 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb76aea3)) at ./src/eval.c:2560 #44 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #45 0x0000555555760914 in funcall_lambda (fun=fun <at> entry=XIL(0x7fffbb765de5), nargs=nargs <at> entry=0, arg_vector=arg_vector <at> entry=0x7fffffffbfd0) at ./src/eval.c:3361 #46 0x0000555555760b07 in funcall_general (fun=XIL(0x7fffbb765de5), numargs=numargs <at> entry=0, args=args <at> entry=0x7fffffffbfd0) at ./src/eval.c:3055 #47 0x000055555575db3b in Ffuncall (nargs=1, args=0x7fffffffbfc8) at ./src/eval.c:3104 #48 0x000055555575df87 in funcall_nil (nargs=<optimized out>, args=<optimized out>) at ./src/eval.c:2787 #49 0x000055555575cffc in run_hook_with_args (nargs=nargs <at> entry=1, args=args <at> entry=0x7fffffffbfc8, funcall=funcall <at> entry=0x55555575df7e <funcall_nil>) at ./src/eval.c:2964 #50 0x000055555575d08a in Frun_hook_with_args (nargs=nargs <at> entry=1, args=args <at> entry=0x7fffffffbfc8) at ./src/eval.c:2829 #51 0x000055555575d0a6 in run_hook (hook=XIL(0x2aaa65d2ec98)) at ./src/eval.c:2977 #52 0x00005555556fb765 in Fkill_buffer (buffer_or_name=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/lisp.h:1184 #53 0x000055555575ef53 in funcall_subr (subr=0x5555559b0320 <Skill_buffer>, numargs=numargs <at> entry=1, args=args <at> entry=0x7fffe2200100) at ./src/eval.c:3172 #54 0x00005555557a0de0 in exec_byte_code (fun=Python Exception <class 'gdb.error'>: value has been optimized out , fun <at> entry=XIL(0x7fffedb24d1d), args_template=<optimized out>, nargs=<optimized out>, nargs <at> entry=0, args=<optimized out>, args <at> entry=0x7fffffffc2e0) at ./src/bytecode.c:827 #55 0x000055555576070e in funcall_lambda (fun=fun <at> entry=XIL(0x7fffedb24d1d), nargs=nargs <at> entry=0, arg_vector=arg_vector <at> entry=0x7fffffffc2e0) at ./src/eval.c:3263 #56 0x0000555555761136 in apply_lambda (fun=Python Exception <class 'gdb.error'>: value has been optimized out , fun <at> entry=XIL(0x7fffedb24d1d), args=Python Exception <class 'gdb.error'>: value has been optimized out , count=count <at> entry=...) at ./src/eval.c:3226 #57 0x000055555576034e in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffdca6007b)) at ./src/eval.c:2656 #58 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #59 0x0000555555760ba4 in Fif (args=XIL(0x7fffdca5ca03)) at ./src/eval.c:408 #60 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffdca5c303)) at ./src/eval.c:2560 #61 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #62 0x0000555555760914 in funcall_lambda (fun=fun <at> entry=XIL(0x7fffdc9de3f5), nargs=nargs <at> entry=1, arg_vector=arg_vector <at> entry=0x7fffffffc770) at ./src/eval.c:3361 #63 0x0000555555760b07 in funcall_general (fun=XIL(0x7fffdc9de3f5), numargs=numargs <at> entry=1, args=args <at> entry=0x7fffffffc770) at ./src/eval.c:3055 #64 0x000055555575db3b in Ffuncall (nargs=nargs <at> entry=2, args=args <at> entry=0x7fffffffc768) at ./src/eval.c:3104 #65 0x000055555575850c in Ffuncall_interactively (nargs=2, args=0x7fffffffc768) at ./src/callint.c:250 #66 0x000055555575f0c6 in funcall_subr (subr=0x5555559b67e0 <Sfuncall_interactively>, numargs=numargs <at> entry=2, args=args <at> entry=0x7fffffffc768) at ./src/eval.c:3195 #67 0x0000555555760af7 in funcall_general (fun=XIL(0x5555559b67e5), numargs=numargs <at> entry=2, args=args <at> entry=0x7fffffffc768) at ./src/eval.c:3051 #68 0x000055555575db3b in Ffuncall (nargs=nargs <at> entry=3, args=args <at> entry=0x7fffffffc760) at ./src/eval.c:3104 #69 0x000055555575a466 in Fcall_interactively (function=Python Exception <class 'gdb.error'>: value has been optimized out , record_flag=Python Exception <class 'gdb.error'>: value has been optimized out , keys=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/callint.c:789 #70 0x000055555575ef7f in funcall_subr (subr=0x5555559b67a0 <Scall_interactively>, numargs=numargs <at> entry=3, args=args <at> entry=0x7fffe2200070) at ./src/eval.c:3176 #71 0x00005555557a0de0 in exec_byte_code (fun=Python Exception <class 'gdb.error'>: value has been optimized out , fun <at> entry=XIL(0x7fffed66283d), args_template=<optimized out>, nargs=<optimized out>, nargs <at> entry=1, args=<optimized out>, args <at> entry=0x7fffffffcc08) at ./src/bytecode.c:827 #72 0x000055555576070e in funcall_lambda (fun=fun <at> entry=XIL(0x7fffed66283d), nargs=nargs <at> entry=1, arg_vector=arg_vector <at> entry=0x7fffffffcc08) at ./src/eval.c:3263 #73 0x0000555555760b07 in funcall_general (fun=XIL(0x7fffed66283d), numargs=numargs <at> entry=1, args=args <at> entry=0x7fffffffcc08) at ./src/eval.c:3055 #74 0x000055555575db3b in Ffuncall (nargs=nargs <at> entry=2, args=args <at> entry=0x7fffffffcc00) at ./src/eval.c:3104 #75 0x00005555556e3cac in command_loop_1 () at ./src/lisp.h:1184 #76 0x000055555575c6d8 in internal_condition_case (bfun=bfun <at> entry=0x5555556e382c <command_loop_1>, handlers=Python Exception <class 'gdb.error'>: value has been optimized out , handlers <at> entry=XIL(0xa8), hfun=hfun <at> entry=0x5555556d6847 <cmd_error>) at ./src/eval.c:1623 #77 0x00005555556cdb82 in command_loop_2 (handlers=handlers <at> entry=XIL(0xa8)) at ./src/keyboard.c:1174 #78 0x000055555575c5ed in internal_catch (tag=Python Exception <class 'gdb.error'>: value has been optimized out , tag <at> entry=XIL(0x15498), func=func <at> entry=0x5555556cdb60 <command_loop_2>, arg=Python Exception <class 'gdb.error'>: value has been optimized out , arg <at> entry=XIL(0xa8)) at ./src/eval.c:1302 #79 0x00005555556cdb3d in command_loop () at ./src/lisp.h:1184 #80 0x00005555556d635e in recursive_edit_1 () at ./src/keyboard.c:760 #81 0x00005555556d66ff in Frecursive_edit () at ./src/keyboard.c:843 #82 0x00005555556cd517 in main (argc=5, argv=0x7fffffffcff8) at ./src/emacs.c:2580 ++set $bt = backtrace_top () ++if backtrace_p ($bt) +++echo \n +++echo Lisp Backtrace:\n Lisp Backtrace: +++xbacktrace ++++set $bt = backtrace_top () ++++while backtrace_p ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "delete-frame"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffaf10) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffafe8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "progn"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb0c8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb1a8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "let*"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb2f8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "progn"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb3d8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb4b8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "org-noter-kill-session"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb5e0) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "progn"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb768) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb848) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "let"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb9b8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "progn"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffba98) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "progn"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffbb78) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffbc58) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "let"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffbdb8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "org-noter--handle-kill-buffer"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffbfd0) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "kill-buffer"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xe2200100) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "kill-this-buffer"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffc2e0) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffc488) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "grfz-kill-a-buffer"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffc770) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "funcall-interactively"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffc768) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "call-interactively"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xe2200070) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "command-execute"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffcc08) +++++set $bt = backtrace_next ($bt) +xbacktrace ++set $bt = backtrace_top () ++while backtrace_p ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "delete-frame"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffaf10) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffafe8) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "progn"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb0c8) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb1a8) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "let*"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb2f8) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "progn"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb3d8) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb4b8) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "org-noter-kill-session"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb5e0) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "progn"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb768) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb848) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "let"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb9b8) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "progn"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffba98) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "progn"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffbb78) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffbc58) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "let"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffbdb8) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "org-noter--handle-kill-buffer"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffbfd0) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "kill-buffer"++++printf " (0x%x)\n", backtrace_args ($bt) (0xe2200100) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "kill-this-buffer"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffc2e0) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffc488) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "grfz-kill-a-buffer"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffc770) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "funcall-interactively"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffc768) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "call-interactively"++++printf " (0x%x)\n", backtrace_args ($bt) (0xe2200070) +++set $bt = backtrace_next ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "command-execute"++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffcc08) +++set $bt = backtrace_next ($bt) +bt full #0 terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 #1 0x00005555557d9a62 in set_state (state=state <at> entry=IGC_STATE_DEAD) at ./src/igc.c:1017 old_state = <optimized out> #2 0x00005555557d9a96 in igc_assert_fail (file=file <at> entry=0x555555903e97 "igc.c", line=line <at> entry=3020, msg=msg <at> entry=0x5555558f2277 "r == NULL") at ./src/igc.c:306 #3 0x00005555557da4e4 in igc_check_freeable (start=start <at> entry=0x555555b2b8f0) at ./src/igc.c:3020 r = <optimized out> #4 0x0000555555736d12 in xfree (block=block <at> entry=0x555555b2b8f0) at ./src/alloc.c:760 #5 0x00005555556889f0 in x_delete_display (dpyinfo=dpyinfo <at> entry=0x555555b2b8f0) at ./src/xterm.c:31925 t = <optimized out> color_entry = <optimized out> next_color_entry = <optimized out> i = 256 ie = <optimized out> last = <optimized out> temp = <optimized out> #6 0x000055555569385e in x_delete_terminal (terminal=0x7fffd549a0c0) at ./src/xterm.c:32154 dpyinfo = 0x555555b2b8f0 f = <optimized out> frame = XIL(0x7fffed64d525) #7 0x000055555567099a in Fdelete_terminal (terminal=terminal <at> entry=XIL(0x7fffd549a0c5), force=XIL(0x38)) at ./src/terminal.c:428 t = 0x7fffd549a0c0 #8 0x00005555555b492a in delete_frame (frame=frame <at> entry=XIL(0x7fffd5771d1d), force=XIL(0)) at ./src/frame.c:2670 tmp = XIL(0x7fffd549a0c5) terminal = <optimized out> f = 0x7fffd5771d18 sf = <optimized out> kb = 0x0 frame1 = XIL(0x7fffed64d525) is_tooltip_frame = 0 nochild = true minibuffer_child_frame = Python Exception <class 'gdb.error'>: value has been optimized out #9 0x00005555555b4e00 in Fdelete_frame (frame=XIL(0x7fffd5771d1d), force=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/frame.c:2839 #10 0x000055555576022a in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:2612 i = 2 maxargs = 2 args_left = XIL(0) numargs = 1 original_fun = Python Exception <class 'gdb.error'>: value has been optimized out original_args = XIL(0x7fffbb7a3463) count = { bytes = 1120 } fun = XIL(0x5555559a8b65) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = Python Exception <class 'gdb.error'>: value has been optimized out argvals = {XIL(0x7fffd5771d1d), XIL(0), XIL(0x1), XIL(0x7fffffffb0c8), make_fixnum(16383), XIL(0), XIL(0x7fffffffaf50), make_fixnum(23456248591394)} #11 0x0000555555760bc3 in Fif (args=XIL(0x7fffbb79b6ab)) at ./src/eval.c:407 #12 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb79996b)) at ./src/eval.c:2560 args_left = XIL(0x7fffbb79b6ab) numargs = 3 original_fun = XIL(0xc7f0) original_args = XIL(0x7fffbb79b6ab) count = { bytes = <optimized out> } fun = XIL(0x5555559b7425) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = Python Exception <class 'gdb.error'>: value has been optimized out argvals = {XIL(0x7fffffffb070), XIL(0x5555557e2a19), XIL(0), XIL(0x369475a905028a00), XIL(0x7fffffffb000), XIL(0x5555559b6be5), XIL(0x420), XIL(0x2aaa97c1cb30)} #13 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #14 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:2560 args_left = XIL(0x7fffbb795beb) numargs = 1 original_fun = XIL(0x12018) original_args = XIL(0x7fffbb795beb) count = { bytes = <optimized out> } fun = XIL(0x5555559b73a5) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = Python Exception <class 'gdb.error'>: value has been optimized out argvals = {XIL(0x7fffd5771d1d), XIL(0x369475a905028a00), XIL(0x7fffffffb0f0), XIL(0x7fffbba862d8), XIL(0x7fffffffb170), XIL(0x5555556fbba8), XIL(0x1), XIL(0x5555556fbc68)} #15 0x0000555555760bc3 in Fif (args=XIL(0x7fffbb7901f3)) at ./src/eval.c:407 #16 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb77c5bb)) at ./src/eval.c:2560 args_left = XIL(0x7fffbb7901f3) numargs = 2 original_fun = XIL(0xc7f0) original_args = XIL(0x7fffbb7901f3) count = { bytes = <optimized out> } fun = XIL(0x5555559b7425) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = Python Exception <class 'gdb.error'>: value has been optimized out argvals = {XIL(0x7fffbba862dd), XIL(0x7fffabd4c8a3), XIL(0x7fffffffb200), XIL(0x5555557d9e08), XIL(0x7fffabe9ec60), XIL(0x369475a905028a00), XIL(0x555555e075f0), XIL(0x3)} #17 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #18 0x00005555557617f5 in FletX (args=XIL(0x7fffbb767a1b)) at ./src/eval.c:1051 var = XIL(0x2aaa65d088e8) val = XIL(0x7fffbba862dd) elt = Python Exception <class 'gdb.error'>: value has been optimized out lexenv = XIL(0x7fffabd4c8a3) varlist = XIL(0) #19 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb7662fb)) at ./src/eval.c:2560 args_left = XIL(0x7fffbb767a1b) numargs = 9 original_fun = XIL(0xe2a0) original_args = XIL(0x7fffbb767a1b) count = { bytes = <optimized out> } fun = XIL(0x5555559b6fe5) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = Python Exception <class 'gdb.error'>: value has been optimized out argvals = {XIL(0x7fffbbbf624d), XIL(0x7fffbb7589cb), XIL(0x1), make_fixnum(23456248566315), make_fixnum(0), XIL(0x5555559a1f60), XIL(0x7fffffffb380), XIL(0x55555574a0d0)} #20 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #21 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:2560 args_left = XIL(0x7fffbb76232b) numargs = 3 original_fun = XIL(0x12018) original_args = XIL(0x7fffbb76232b) count = { bytes = <optimized out> } fun = XIL(0x5555559b73a5) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = Python Exception <class 'gdb.error'>: value has been optimized out argvals = {XIL(0xd2a8), XIL(0x7fffffffb460), make_fixnum(0), XIL(0x7fffabd4c7b3), XIL(0x7fffbba855a5), XIL(0x7fffbb783dc3), XIL(0x7fffffffb450), XIL(0x55555575befd)} #22 0x0000555555760bc3 in Fif (args=XIL(0x7fffbb75e76b)) at ./src/eval.c:407 #23 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb75d12b)) at ./src/eval.c:2560 args_left = XIL(0x7fffbb75e76b) numargs = 2 original_fun = XIL(0xc7f0) original_args = XIL(0x7fffbb75e76b) count = { bytes = <optimized out> } fun = XIL(0x5555559b7425) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = Python Exception <class 'gdb.error'>: value has been optimized out argvals = {XIL(0x3), XIL(0x100000001), XIL(0x7fffffffb510), XIL(0x7fffabd4c8a3), XIL(0x555555e07570), XIL(0x1), XIL(0x555555e07570), XIL(0x1)} #24 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #25 0x0000555555760914 in funcall_lambda (fun=fun <at> entry=XIL(0x7fffbb756a7d), nargs=nargs <at> entry=1, arg_vector=arg_vector <at> entry=0x7fffffffb5e0) at ./src/eval.c:3361 syms_left = Python Exception <class 'gdb.error'>: value has been optimized out lexenv = Python Exception <class 'gdb.error'>: value has been optimized out i = 1 optional = true rest = false previous_rest = false #26 0x0000555555761136 in apply_lambda (fun=Python Exception <class 'gdb.error'>: value has been optimized out , fun <at> entry=XIL(0x7fffbb756a7d), args=Python Exception <class 'gdb.error'>: value has been optimized out , count=count <at> entry=...) at ./src/eval.c:3226 arg_vector = 0x7fffffffb5e0 tem = XIL(0x2aaa97fcc5e8) sa_avail = <optimized out> numargs = 1 args_left = Python Exception <class 'gdb.error'>: value has been optimized out #27 0x000055555576034e in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb781583)) at ./src/eval.c:2656 original_fun = XIL(0x2aaa65d1f748) original_args = XIL(0x7fffbb781b5b) count = { bytes = 832 } fun = XIL(0x7fffbb756a7d) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = XIL(0x7fffbb780ef3) argvals = {XIL(0x7fffbba855a5), XIL(0x7fffbba855a5), XIL(0x7fffbb78321b), XIL(0x2bb78270b), make_fixnum(0), XIL(0x5555559a1f60), XIL(0xd2a8), XIL(0x7fffabd4c5d3)} #28 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #29 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:2560 args_left = XIL(0x7fffbb780ef3) numargs = 1 original_fun = XIL(0x12018) original_args = XIL(0x7fffbb780ef3) count = { bytes = <optimized out> } fun = XIL(0x5555559b73a5) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = Python Exception <class 'gdb.error'>: value has been optimized out argvals = {XIL(0xc), XIL(0xd2a8), XIL(0x7fffabd4c5d3), XIL(0x7fffbba855a5), XIL(0x7fffabd4c5d3), XIL(0x369475a905028a00), XIL(0x7fffffffb7c0), XIL(0x2aaa97c585c8)} #30 0x0000555555760bc3 in Fif (args=XIL(0x7fffbb77fe6b)) at ./src/eval.c:407 #31 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb77f943)) at ./src/eval.c:2560 args_left = XIL(0x7fffbb77fe6b) numargs = 2 original_fun = XIL(0xc7f0) original_args = XIL(0x7fffbb77fe6b) count = { bytes = <optimized out> } fun = XIL(0x5555559b7425) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = Python Exception <class 'gdb.error'>: value has been optimized out argvals = {XIL(0x3), make_fixnum(1073741824), XIL(0x7fffffffb8a0), XIL(0x7fffabd4c873), XIL(0x555555e074f0), XIL(0x1), XIL(0x555555e074f0), XIL(0x7fffffffb900)} #32 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #33 0x0000555555761542 in Flet (args=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:1118 temps = 0x7fffffffb900 tem = Python Exception <class 'gdb.error'>: value has been optimized out lexenv = Python Exception <class 'gdb.error'>: value has been optimized out elt = XIL(0x2aaa65d088e8) argnum = 3 sa_avail = <optimized out> varlist = Python Exception <class 'gdb.error'>: value has been optimized out varlist_len = <optimized out> nvars = 3 #34 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb77e803)) at ./src/eval.c:2560 args_left = XIL(0x7fffbb77ed3b) numargs = 2 original_fun = XIL(0xe268) original_args = XIL(0x7fffbb77ed3b) count = { bytes = <optimized out> } fun = XIL(0x5555559b6fa5) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = Python Exception <class 'gdb.error'>: value has been optimized out argvals = {XIL(0x7fffffffba00), XIL(0x2a0), XIL(0x38), XIL(0), XIL(0x1), XIL(0x1), XIL(0x7fffffffba50), XIL(0x55555575d835)} #35 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #36 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb77bf2b)) at ./src/eval.c:2560 args_left = XIL(0x7fffbb77e353) numargs = 1 original_fun = XIL(0x12018) original_args = XIL(0x7fffbb77e353) count = { bytes = <optimized out> } fun = XIL(0x5555559b73a5) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = Python Exception <class 'gdb.error'>: value has been optimized out argvals = {XIL(0x2aaa97fcc5e8), XIL(0x1), XIL(0x1), XIL(0x555555e07490), XIL(0x7fffffffbb40), XIL(0x55555576116b), XIL(0x7fffbbbf624d), XIL(0x55555576107d)} #37 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #38 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:2560 args_left = XIL(0x7fffbb777bbb) numargs = 1 original_fun = XIL(0x12018) original_args = XIL(0x7fffbb777bbb) count = { bytes = <optimized out> } fun = XIL(0x5555559b73a5) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = Python Exception <class 'gdb.error'>: value has been optimized out argvals = {XIL(0), XIL(0), XIL(0), XIL(0x7fffbb721963), XIL(0x2aaa6607ddc8), XIL(0x7fffbbab36e8), XIL(0x7fffffffbbd0), XIL(0x55555576d6ff)} #39 0x0000555555760bc3 in Fif (args=XIL(0x7fffbb771c4b)) at ./src/eval.c:407 #40 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb76ff53)) at ./src/eval.c:2560 args_left = XIL(0x7fffbb771c4b) numargs = 2 original_fun = XIL(0xc7f0) original_args = XIL(0x7fffbb771c4b) count = { bytes = <optimized out> } fun = XIL(0x5555559b7425) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = Python Exception <class 'gdb.error'>: value has been optimized out argvals = {XIL(0x3), XIL(0x100000000), XIL(0x7fffffffbcb0), XIL(0x7fffabd4c5d3), XIL(0x555555e07450), XIL(0x1), XIL(0x555555e07450), XIL(0x7fffffffbd10)} #41 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #42 0x0000555555761542 in Flet (args=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:1118 temps = 0x7fffffffbd10 tem = Python Exception <class 'gdb.error'>: value has been optimized out lexenv = Python Exception <class 'gdb.error'>: value has been optimized out elt = XIL(0x2aaa97fcc5e8) argnum = 1 sa_avail = <optimized out> varlist = Python Exception <class 'gdb.error'>: value has been optimized out varlist_len = <optimized out> nvars = 1 #43 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb76aea3)) at ./src/eval.c:2560 args_left = XIL(0x7fffbb76c8f3) numargs = 2 original_fun = XIL(0xe268) original_args = XIL(0x7fffbb76c8f3) count = { bytes = <optimized out> } fun = XIL(0x5555559b6fa5) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = Python Exception <class 'gdb.error'>: value has been optimized out argvals = {XIL(0x7fffffffbe00), XIL(0x1556f5ad8), XIL(0x2aaa97c1cb30), XIL(0x7fffdf5af95b), XIL(0x555555e07410), XIL(0x1), XIL(0x555555e07410), XIL(0)} #44 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #45 0x0000555555760914 in funcall_lambda (fun=fun <at> entry=XIL(0x7fffbb765de5), nargs=nargs <at> entry=0, arg_vector=arg_vector <at> entry=0x7fffffffbfd0) at ./src/eval.c:3361 syms_left = Python Exception <class 'gdb.error'>: value has been optimized out lexenv = Python Exception <class 'gdb.error'>: value has been optimized out i = 0 optional = false rest = false previous_rest = false #46 0x0000555555760b07 in funcall_general (fun=XIL(0x7fffbb765de5), numargs=numargs <at> entry=0, args=args <at> entry=0x7fffffffbfd0) at ./src/eval.c:3055 original_fun = XIL(0x2aaa65d2ec98) #47 0x000055555575db3b in Ffuncall (nargs=1, args=0x7fffffffbfc8) at ./src/eval.c:3104 count = { bytes = 480 } val = Python Exception <class 'gdb.error'>: value has been optimized out #48 0x000055555575df87 in funcall_nil (nargs=<optimized out>, args=<optimized out>) at ./src/eval.c:2787 #49 0x000055555575cffc in run_hook_with_args (nargs=nargs <at> entry=1, args=args <at> entry=0x7fffffffbfc8, funcall=funcall <at> entry=0x55555575df7e <funcall_nil>) at ./src/eval.c:2964 global_vals = Python Exception <class 'gdb.error'>: value has been optimized out sym = XIL(0xdd60) val = Python Exception <class 'gdb.error'>: value has been optimized out #50 0x000055555575d08a in Frun_hook_with_args (nargs=nargs <at> entry=1, args=args <at> entry=0x7fffffffbfc8) at ./src/eval.c:2829 #51 0x000055555575d0a6 in run_hook (hook=XIL(0x2aaa65d2ec98)) at ./src/eval.c:2977 #52 0x00005555556fb765 in Fkill_buffer (buffer_or_name=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/lisp.h:1184 modified = <optimized out> buffer = XIL(0x7fffbba855a5) b = 0x7fffbba855a0 tem = Python Exception <class 'gdb.error'>: value has been optimized out #53 0x000055555575ef53 in funcall_subr (subr=0x5555559b0320 <Skill_buffer>, numargs=numargs <at> entry=1, args=args <at> entry=0x7fffe2200100) at ./src/eval.c:3172 argbuf = {XIL(0x7fffffffc0d0), make_fixnum(23456248566315), XIL(0), XIL(0x5555559a1710), XIL(0x7fffffffc0b0), XIL(0x55555574846d), XIL(0x7fffeda8fe78), XIL(0x5555559a6718)} a = <optimized out> maxargs = 1 fun = Python Exception <class 'gdb.error'>: value has been optimized out #54 0x00005555557a0de0 in exec_byte_code (fun=Python Exception <class 'gdb.error'>: value has been optimized out , fun <at> entry=XIL(0x7fffedb24d1d), args_template=<optimized out>, nargs=<optimized out>, nargs <at> entry=0, args=<optimized out>, args <at> entry=0x7fffffffc2e0) at ./src/bytecode.c:827 call_nargs = 1 call_fun = XIL(0x5555559b0325) val = Python Exception <class 'gdb.error'>: value has been optimized out call_args = 0x7fffe2200100 op = 1 type = <optimized out> targets = {0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31c4 <exec_byte_code+11028>, 0x5555557a31f9 <exec_byte_code+11081>, 0x5555557a31fb <exec_byte_code+11083>, 0x5555557a31fd <exec_byte_code+11085>, 0x5555557a31c4 <exec_byte_code+11028>, 0x5555557a31ff <exec_byte_code+11087>, 0x5555557a3237 <exec_byte_code+11143>, 0x5555557a0943 <exec_byte_code+659>, 0x5555557a099a <exec_byte_code+746>, 0x5555557a099c <exec_byte_code+748>, 0x5555557a099e <exec_byte_code+750>, 0x5555557a09a0 <exec_byte_code+752>, 0x5555557a0943 <exec_byte_code+659>, 0x5555557a09a2 <exec_byte_code+754>, 0x5555557a0931 <exec_byte_code+641>, 0x5555557a0b91 <exec_byte_code+1249>, 0x5555557a0c00 <exec_byte_code+1360>, 0x5555557a0c02 <exec_byte_code+1362>, 0x5555557a0c04 <exec_byte_code+1364>, 0x5555557a0c06 <exec_byte_code+1366>, 0x5555557a0b91 <exec_byte_code+1249>, 0x5555557a0c1d <exec_byte_code+1389>, 0x5555557a0c08 <exec_byte_code+1368>, 0x5555557a0c7a <exec_byte_code+1482>, 0x5555557a0cc4 <exec_byte_code+1556>, 0x5555557a0cc6 <exec_byte_code+1558>, 0x5555557a0cc8 <exec_byte_code+1560>, 0x5555557a0cca <exec_byte_code+1562>, 0x5555557a0c7a <exec_byte_code+1482>, 0x5555557a0c5f <exec_byte_code+1455>, 0x5555557a0c68 <exec_byte_code+1464>, 0x5555557a0ceb <exec_byte_code+1595>, 0x5555557a0e56 <exec_byte_code+1958>, 0x5555557a0e5b <exec_byte_code+1963>, 0x5555557a0e60 <exec_byte_code+1968>, 0x5555557a0e65 <exec_byte_code+1973>, 0x5555557a0ceb <exec_byte_code+1595>, 0x5555557a0ccc <exec_byte_code+1564>, 0x5555557a0cd6 <exec_byte_code+1574>, 0x5555557a0f48 <exec_byte_code+2200>, 0x5555557a0f8f <exec_byte_code+2271>, 0x5555557a0f91 <exec_byte_code+2273>, 0x5555557a0f93 <exec_byte_code+2275>, 0x5555557a0f95 <exec_byte_code+2277>, 0x5555557a0f48 <exec_byte_code+2200>, 0x5555557a0f2d <exec_byte_code+2173>, 0x5555557a0f36 <exec_byte_code+2182>, 0x5555557a14ee <exec_byte_code+3646>, 0x5555557a144a <exec_byte_code+3482>, 0x5555557a13ba <exec_byte_code+3338>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a1650 <exec_byte_code+4000>, 0x5555557a172a <exec_byte_code+4218>, 0x5555557a176b <exec_byte_code+4283>, 0x5555557a17b7 <exec_byte_code+4359>, 0x5555557a1803 <exec_byte_code+4435>, 0x5555557a0a88 <exec_byte_code+984>, 0x5555557a0ad7 <exec_byte_code+1063>, 0x5555557a185f <exec_byte_code+4527>, 0x5555557a0a08 <exec_byte_code+856>, 0x5555557a0b11 <exec_byte_code+1121>, 0x5555557a18a0 <exec_byte_code+4592>, 0x5555557a18da <exec_byte_code+4650>, 0x5555557a1906 <exec_byte_code+4694>, 0x5555557a1940 <exec_byte_code+4752>, 0x5555557a1979 <exec_byte_code+4809>, 0x5555557a19f7 <exec_byte_code+4935>, 0x5555557a1a23 <exec_byte_code+4979>, 0x5555557a1b2b <exec_byte_code+5243>, 0x5555557a1c61 <exec_byte_code+5553>, 0x5555557a1c8d <exec_byte_code+5597>, 0x5555557a1cb9 <exec_byte_code+5641>, 0x5555557a1cf3 <exec_byte_code+5699>, 0x5555557a1d2d <exec_byte_code+5757>, 0x5555557a1d67 <exec_byte_code+5815>, 0x5555557a1da5 <exec_byte_code+5877>, 0x5555557a1ddb <exec_byte_code+5931>, 0x5555557a1e11 <exec_byte_code+5985>, 0x5555557a1e88 <exec_byte_code+6104>, 0x5555557a1ef4 <exec_byte_code+6212>, 0x5555557a1f60 <exec_byte_code+6320>, 0x5555557a1fdc <exec_byte_code+6444>, 0x5555557a2070 <exec_byte_code+6592>, 0x5555557a2104 <exec_byte_code+6740>, 0x5555557a2198 <exec_byte_code+6888>, 0x5555557a222c <exec_byte_code+7036>, 0x5555557a22c1 <exec_byte_code+7185>, 0x5555557a2334 <exec_byte_code+7300>, 0x5555557a23c7 <exec_byte_code+7447>, 0x5555557a2446 <exec_byte_code+7574>, 0x5555557a24c5 <exec_byte_code+7701>, 0x5555557a2694 <exec_byte_code+8164>, 0x5555557a12c4 <exec_byte_code+3092>, 0x5555557a26d7 <exec_byte_code+8231>, 0x5555557a2703 <exec_byte_code+8275>, 0x5555557a2775 <exec_byte_code+8389>, 0x5555557a27b8 <exec_byte_code+8456>, 0x5555557a27fb <exec_byte_code+8523>, 0x5555557a2827 <exec_byte_code+8567>, 0x5555557a2855 <exec_byte_code+8613>, 0x5555557a2883 <exec_byte_code+8659>, 0x5555557a28b9 <exec_byte_code+8713>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a28ea <exec_byte_code+8762>, 0x5555557a2918 <exec_byte_code+8808>, 0x5555557a2946 <exec_byte_code+8854>, 0x5555557a2974 <exec_byte_code+8900>, 0x5555557a29a2 <exec_byte_code+8946>, 0x5555557a29d0 <exec_byte_code+8992>, 0x5555557a12c4 <exec_byte_code+3092>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a29fc <exec_byte_code+9036>, 0x5555557a2a3b <exec_byte_code+9099>, 0x5555557a2a67 <exec_byte_code+9143>, 0x5555557a2a93 <exec_byte_code+9187>, 0x5555557a2acd <exec_byte_code+9245>, 0x5555557a2b07 <exec_byte_code+9303>, 0x5555557a2b33 <exec_byte_code+9347>, 0x5555557a2b5f <exec_byte_code+9391>, 0x5555557a2b99 <exec_byte_code+9449>, 0x5555557a2bd3 <exec_byte_code+9507>, 0x5555557a2c0d <exec_byte_code+9565>, 0x5555557a2c3b <exec_byte_code+9611>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a1262 <exec_byte_code+2994>, 0x5555557a0f97 <exec_byte_code+2279>, 0x5555557a09ab <exec_byte_code+763>, 0x5555557a1020 <exec_byte_code+2416>, 0x5555557a106d <exec_byte_code+2493>, 0x5555557a10b4 <exec_byte_code+2564>, 0x5555557a10fb <exec_byte_code+2635>, 0x5555557a1240 <exec_byte_code+2960>, 0x5555557a0c33 <exec_byte_code+1411>, 0x5555557a12a2 <exec_byte_code+3058>, 0x5555557a12e6 <exec_byte_code+3126>, 0x5555557a1348 <exec_byte_code+3224>, 0x5555557a1379 <exec_byte_code+3273>, 0x5555557a151e <exec_byte_code+3694>, 0x5555557a1571 <exec_byte_code+3777>, 0x5555557a15af <exec_byte_code+3839>, 0x5555557a15f6 <exec_byte_code+3910>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a2c67 <exec_byte_code+9655>, 0x5555557a2ca5 <exec_byte_code+9717>, 0x5555557a2cd1 <exec_byte_code+9761>, 0x5555557a2cfd <exec_byte_code+9805>, 0x5555557a2d29 <exec_byte_code+9849>, 0x5555557a2d55 <exec_byte_code+9893>, 0x5555557a2d8f <exec_byte_code+9951>, 0x5555557a2dc9 <exec_byte_code+10009>, 0x5555557a2e03 <exec_byte_code+10067>, 0x5555557a2e3d <exec_byte_code+10125>, 0x5555557a2f1f <exec_byte_code+10351>, 0x5555557a2f59 <exec_byte_code+10409>, 0x5555557a2f93 <exec_byte_code+10467>, 0x5555557a2fbf <exec_byte_code+10511>, 0x5555557a302a <exec_byte_code+10618>, 0x5555557a3095 <exec_byte_code+10725>, 0x5555557a30c1 <exec_byte_code+10769>, 0x5555557a30ed <exec_byte_code+10813>, 0x5555557a256e <exec_byte_code+7870>, 0x5555557a260a <exec_byte_code+8026>, 0x5555557a3123 <exec_byte_code+10867>, 0x5555557a3164 <exec_byte_code+10932>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a19b6 <exec_byte_code+4870>, 0x5555557a1e47 <exec_byte_code+6039>, 0x5555557a2734 <exec_byte_code+8324>, 0x5555557a3278 <exec_byte_code+11208>, 0x5555557a32b8 <exec_byte_code+11272>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a3303 <exec_byte_code+11347>, 0x5555557a334e <exec_byte_code+11422>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a3445 <exec_byte_code+11669> <repeats 64 times>} quitcounter = 1 '\001' bc = 0x5555559a6718 <main_thread+504> top = 0x7fffe22000f8 pc = 0x7fffedb25b59 "\210\t\205B" bytestr = Python Exception <class 'gdb.error'>: value has been optimized out vectorp = 0x7fffedb25398 max_stack = <optimized out> frame_base = <optimized out> fp = <optimized out> bytestr_data = 0x7fffedb25b28 "\211\203\021" rest = <optimized out> mandatory = <optimized out> nonrest = <optimized out> pushedargs = <optimized out> saved_quitcounter = 0 '\000' saved_vectorp = 0x5555559b73a5 <Sprogn+5> saved_bytestr_data = 0x160 <error: Cannot access memory at address 0x160> #55 0x000055555576070e in funcall_lambda (fun=fun <at> entry=XIL(0x7fffedb24d1d), nargs=nargs <at> entry=0, arg_vector=arg_vector <at> entry=0x7fffffffc2e0) at ./src/eval.c:3263 syms_left = make_fixnum(256) lexenv = Python Exception <class 'gdb.error'>: value has been optimized out i = <optimized out> optional = <optimized out> rest = <optimized out> previous_rest = <optimized out> #56 0x0000555555761136 in apply_lambda (fun=Python Exception <class 'gdb.error'>: value has been optimized out , fun <at> entry=XIL(0x7fffedb24d1d), args=Python Exception <class 'gdb.error'>: value has been optimized out , count=count <at> entry=...) at ./src/eval.c:3226 arg_vector = 0x7fffffffc2e0 tem = XIL(0x180) sa_avail = <optimized out> numargs = 0 args_left = Python Exception <class 'gdb.error'>: value has been optimized out #57 0x000055555576034e in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffdca6007b)) at ./src/eval.c:2656 original_fun = XIL(0x2aaa980eef48) original_args = XIL(0) count = { bytes = 384 } fun = XIL(0x7fffedb24d1d) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = XIL(0x7fffdca5ca03) argvals = {XIL(0), XIL(0), XIL(0x7fffddcd320b), XIL(0), XIL(0), XIL(0x369475a905028a00), XIL(0x7fffffffc3e0), XIL(0x7fffddccef2d)} #58 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #59 0x0000555555760ba4 in Fif (args=XIL(0x7fffdca5ca03)) at ./src/eval.c:408 #60 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffdca5c303)) at ./src/eval.c:2560 args_left = XIL(0x7fffdca5ca03) numargs = 3 original_fun = XIL(0xc7f0) original_args = XIL(0x7fffdca5ca03) count = { bytes = <optimized out> } fun = XIL(0x5555559b7425) val = Python Exception <class 'gdb.error'>: value has been optimized out funcar = Python Exception <class 'gdb.error'>: value has been optimized out argvals = {XIL(0x3), XIL(0x100000001), XIL(0x7fffffffc4e0), XIL(0x7fffabd4c56b), XIL(0x555555e07350), XIL(0x1), XIL(0x555555e07350), XIL(0x1)} #61 0x00005555557605e2 in Fprogn (body=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/eval.c:452 #62 0x0000555555760914 in funcall_lambda (fun=fun <at> entry=XIL(0x7fffdc9de3f5), nargs=nargs <at> entry=1, arg_vector=arg_vector <at> entry=0x7fffffffc770) at ./src/eval.c:3361 syms_left = Python Exception <class 'gdb.error'>: value has been optimized out lexenv = Python Exception <class 'gdb.error'>: value has been optimized out i = 1 optional = false rest = false previous_rest = false #63 0x0000555555760b07 in funcall_general (fun=XIL(0x7fffdc9de3f5), numargs=numargs <at> entry=1, args=args <at> entry=0x7fffffffc770) at ./src/eval.c:3055 original_fun = XIL(0x2aaa86c6f3f8) #64 0x000055555575db3b in Ffuncall (nargs=nargs <at> entry=2, args=args <at> entry=0x7fffffffc768) at ./src/eval.c:3104 count = { bytes = 288 } val = Python Exception <class 'gdb.error'>: value has been optimized out #65 0x000055555575850c in Ffuncall_interactively (nargs=2, args=0x7fffffffc768) at ./src/callint.c:250 #66 0x000055555575f0c6 in funcall_subr (subr=0x5555559b67e0 <Sfuncall_interactively>, numargs=numargs <at> entry=2, args=args <at> entry=0x7fffffffc768) at ./src/eval.c:3195 maxargs = -2 fun = Python Exception <class 'gdb.error'>: value has been optimized out #67 0x0000555555760af7 in funcall_general (fun=XIL(0x5555559b67e5), numargs=numargs <at> entry=2, args=args <at> entry=0x7fffffffc768) at ./src/eval.c:3051 original_fun = XIL(0xaf38) #68 0x000055555575db3b in Ffuncall (nargs=nargs <at> entry=3, args=args <at> entry=0x7fffffffc760) at ./src/eval.c:3104 count = { bytes = 224 } val = Python Exception <class 'gdb.error'>: value has been optimized out #69 0x000055555575a466 in Fcall_interactively (function=Python Exception <class 'gdb.error'>: value has been optimized out , record_flag=Python Exception <class 'gdb.error'>: value has been optimized out , keys=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/callint.c:789 arg_from_tty = false key_count = <optimized out> record_then_fail = <optimized out> save_this_command = Python Exception <class 'gdb.error'>: value has been optimized out save_this_original_command = Python Exception <class 'gdb.error'>: value has been optimized out save_real_this_command = Python Exception <class 'gdb.error'>: value has been optimized out save_last_command = Python Exception <class 'gdb.error'>: value has been optimized out prefix_arg = Python Exception <class 'gdb.error'>: value has been optimized out specs = Python Exception <class 'gdb.error'>: value has been optimized out sa_avail = <optimized out> string_len = <optimized out> string = <optimized out> string_end = <optimized out> next_event = 2 nargs = <optimized out> args = <optimized out> visargs = <optimized out> varies = <optimized out> tem = <optimized out> #70 0x000055555575ef7f in funcall_subr (subr=0x5555559b67a0 <Scall_interactively>, numargs=numargs <at> entry=3, args=args <at> entry=0x7fffe2200070) at ./src/eval.c:3176 argbuf = {XIL(0x2aaa86c6f3f8), XIL(0), XIL(0x7fffffffc960), XIL(0x55555576dac0), XIL(0x7fffbc312bc3), XIL(0x4), XIL(0), XIL(0x555555760003)} a = <optimized out> maxargs = 3 fun = Python Exception <class 'gdb.error'>: value has been optimized out #71 0x00005555557a0de0 in exec_byte_code (fun=Python Exception <class 'gdb.error'>: value has been optimized out , fun <at> entry=XIL(0x7fffed66283d), args_template=<optimized out>, nargs=<optimized out>, nargs <at> entry=1, args=<optimized out>, args <at> entry=0x7fffffffcc08) at ./src/bytecode.c:827 call_nargs = 3 call_fun = XIL(0x5555559b67a5) val = Python Exception <class 'gdb.error'>: value has been optimized out call_args = 0x7fffe2200070 op = 3 type = <optimized out> targets = {0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31c4 <exec_byte_code+11028>, 0x5555557a31f9 <exec_byte_code+11081>, 0x5555557a31fb <exec_byte_code+11083>, 0x5555557a31fd <exec_byte_code+11085>, 0x5555557a31c4 <exec_byte_code+11028>, 0x5555557a31ff <exec_byte_code+11087>, 0x5555557a3237 <exec_byte_code+11143>, 0x5555557a0943 <exec_byte_code+659>, 0x5555557a099a <exec_byte_code+746>, 0x5555557a099c <exec_byte_code+748>, 0x5555557a099e <exec_byte_code+750>, 0x5555557a09a0 <exec_byte_code+752>, 0x5555557a0943 <exec_byte_code+659>, 0x5555557a09a2 <exec_byte_code+754>, 0x5555557a0931 <exec_byte_code+641>, 0x5555557a0b91 <exec_byte_code+1249>, 0x5555557a0c00 <exec_byte_code+1360>, 0x5555557a0c02 <exec_byte_code+1362>, 0x5555557a0c04 <exec_byte_code+1364>, 0x5555557a0c06 <exec_byte_code+1366>, 0x5555557a0b91 <exec_byte_code+1249>, 0x5555557a0c1d <exec_byte_code+1389>, 0x5555557a0c08 <exec_byte_code+1368>, 0x5555557a0c7a <exec_byte_code+1482>, 0x5555557a0cc4 <exec_byte_code+1556>, 0x5555557a0cc6 <exec_byte_code+1558>, 0x5555557a0cc8 <exec_byte_code+1560>, 0x5555557a0cca <exec_byte_code+1562>, 0x5555557a0c7a <exec_byte_code+1482>, 0x5555557a0c5f <exec_byte_code+1455>, 0x5555557a0c68 <exec_byte_code+1464>, 0x5555557a0ceb <exec_byte_code+1595>, 0x5555557a0e56 <exec_byte_code+1958>, 0x5555557a0e5b <exec_byte_code+1963>, 0x5555557a0e60 <exec_byte_code+1968>, 0x5555557a0e65 <exec_byte_code+1973>, 0x5555557a0ceb <exec_byte_code+1595>, 0x5555557a0ccc <exec_byte_code+1564>, 0x5555557a0cd6 <exec_byte_code+1574>, 0x5555557a0f48 <exec_byte_code+2200>, 0x5555557a0f8f <exec_byte_code+2271>, 0x5555557a0f91 <exec_byte_code+2273>, 0x5555557a0f93 <exec_byte_code+2275>, 0x5555557a0f95 <exec_byte_code+2277>, 0x5555557a0f48 <exec_byte_code+2200>, 0x5555557a0f2d <exec_byte_code+2173>, 0x5555557a0f36 <exec_byte_code+2182>, 0x5555557a14ee <exec_byte_code+3646>, 0x5555557a144a <exec_byte_code+3482>, 0x5555557a13ba <exec_byte_code+3338>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a1650 <exec_byte_code+4000>, 0x5555557a172a <exec_byte_code+4218>, 0x5555557a176b <exec_byte_code+4283>, 0x5555557a17b7 <exec_byte_code+4359>, 0x5555557a1803 <exec_byte_code+4435>, 0x5555557a0a88 <exec_byte_code+984>, 0x5555557a0ad7 <exec_byte_code+1063>, 0x5555557a185f <exec_byte_code+4527>, 0x5555557a0a08 <exec_byte_code+856>, 0x5555557a0b11 <exec_byte_code+1121>, 0x5555557a18a0 <exec_byte_code+4592>, 0x5555557a18da <exec_byte_code+4650>, 0x5555557a1906 <exec_byte_code+4694>, 0x5555557a1940 <exec_byte_code+4752>, 0x5555557a1979 <exec_byte_code+4809>, 0x5555557a19f7 <exec_byte_code+4935>, 0x5555557a1a23 <exec_byte_code+4979>, 0x5555557a1b2b <exec_byte_code+5243>, 0x5555557a1c61 <exec_byte_code+5553>, 0x5555557a1c8d <exec_byte_code+5597>, 0x5555557a1cb9 <exec_byte_code+5641>, 0x5555557a1cf3 <exec_byte_code+5699>, 0x5555557a1d2d <exec_byte_code+5757>, 0x5555557a1d67 <exec_byte_code+5815>, 0x5555557a1da5 <exec_byte_code+5877>, 0x5555557a1ddb <exec_byte_code+5931>, 0x5555557a1e11 <exec_byte_code+5985>, 0x5555557a1e88 <exec_byte_code+6104>, 0x5555557a1ef4 <exec_byte_code+6212>, 0x5555557a1f60 <exec_byte_code+6320>, 0x5555557a1fdc <exec_byte_code+6444>, 0x5555557a2070 <exec_byte_code+6592>, 0x5555557a2104 <exec_byte_code+6740>, 0x5555557a2198 <exec_byte_code+6888>, 0x5555557a222c <exec_byte_code+7036>, 0x5555557a22c1 <exec_byte_code+7185>, 0x5555557a2334 <exec_byte_code+7300>, 0x5555557a23c7 <exec_byte_code+7447>, 0x5555557a2446 <exec_byte_code+7574>, 0x5555557a24c5 <exec_byte_code+7701>, 0x5555557a2694 <exec_byte_code+8164>, 0x5555557a12c4 <exec_byte_code+3092>, 0x5555557a26d7 <exec_byte_code+8231>, 0x5555557a2703 <exec_byte_code+8275>, 0x5555557a2775 <exec_byte_code+8389>, 0x5555557a27b8 <exec_byte_code+8456>, 0x5555557a27fb <exec_byte_code+8523>, 0x5555557a2827 <exec_byte_code+8567>, 0x5555557a2855 <exec_byte_code+8613>, 0x5555557a2883 <exec_byte_code+8659>, 0x5555557a28b9 <exec_byte_code+8713>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a28ea <exec_byte_code+8762>, 0x5555557a2918 <exec_byte_code+8808>, 0x5555557a2946 <exec_byte_code+8854>, 0x5555557a2974 <exec_byte_code+8900>, 0x5555557a29a2 <exec_byte_code+8946>, 0x5555557a29d0 <exec_byte_code+8992>, 0x5555557a12c4 <exec_byte_code+3092>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a29fc <exec_byte_code+9036>, 0x5555557a2a3b <exec_byte_code+9099>, 0x5555557a2a67 <exec_byte_code+9143>, 0x5555557a2a93 <exec_byte_code+9187>, 0x5555557a2acd <exec_byte_code+9245>, 0x5555557a2b07 <exec_byte_code+9303>, 0x5555557a2b33 <exec_byte_code+9347>, 0x5555557a2b5f <exec_byte_code+9391>, 0x5555557a2b99 <exec_byte_code+9449>, 0x5555557a2bd3 <exec_byte_code+9507>, 0x5555557a2c0d <exec_byte_code+9565>, 0x5555557a2c3b <exec_byte_code+9611>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a1262 <exec_byte_code+2994>, 0x5555557a0f97 <exec_byte_code+2279>, 0x5555557a09ab <exec_byte_code+763>, 0x5555557a1020 <exec_byte_code+2416>, 0x5555557a106d <exec_byte_code+2493>, 0x5555557a10b4 <exec_byte_code+2564>, 0x5555557a10fb <exec_byte_code+2635>, 0x5555557a1240 <exec_byte_code+2960>, 0x5555557a0c33 <exec_byte_code+1411>, 0x5555557a12a2 <exec_byte_code+3058>, 0x5555557a12e6 <exec_byte_code+3126>, 0x5555557a1348 <exec_byte_code+3224>, 0x5555557a1379 <exec_byte_code+3273>, 0x5555557a151e <exec_byte_code+3694>, 0x5555557a1571 <exec_byte_code+3777>, 0x5555557a15af <exec_byte_code+3839>, 0x5555557a15f6 <exec_byte_code+3910>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a2c67 <exec_byte_code+9655>, 0x5555557a2ca5 <exec_byte_code+9717>, 0x5555557a2cd1 <exec_byte_code+9761>, 0x5555557a2cfd <exec_byte_code+9805>, 0x5555557a2d29 <exec_byte_code+9849>, 0x5555557a2d55 <exec_byte_code+9893>, 0x5555557a2d8f <exec_byte_code+9951>, 0x5555557a2dc9 <exec_byte_code+10009>, 0x5555557a2e03 <exec_byte_code+10067>, 0x5555557a2e3d <exec_byte_code+10125>, 0x5555557a2f1f <exec_byte_code+10351>, 0x5555557a2f59 <exec_byte_code+10409>, 0x5555557a2f93 <exec_byte_code+10467>, 0x5555557a2fbf <exec_byte_code+10511>, 0x5555557a302a <exec_byte_code+10618>, 0x5555557a3095 <exec_byte_code+10725>, 0x5555557a30c1 <exec_byte_code+10769>, 0x5555557a30ed <exec_byte_code+10813>, 0x5555557a256e <exec_byte_code+7870>, 0x5555557a260a <exec_byte_code+8026>, 0x5555557a3123 <exec_byte_code+10867>, 0x5555557a3164 <exec_byte_code+10932>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a19b6 <exec_byte_code+4870>, 0x5555557a1e47 <exec_byte_code+6039>, 0x5555557a2734 <exec_byte_code+8324>, 0x5555557a3278 <exec_byte_code+11208>, 0x5555557a32b8 <exec_byte_code+11272>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a3303 <exec_byte_code+11347>, 0x5555557a334e <exec_byte_code+11422>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a3445 <exec_byte_code+11669> <repeats 64 times>} quitcounter = 1 '\001' bc = 0x5555559a6718 <main_thread+504> top = 0x7fffe2200068 pc = 0x7fffed7554af "\006\a9\205\231" bytestr = Python Exception <class 'gdb.error'>: value has been optimized out vectorp = 0x7fffed735fd8 max_stack = <optimized out> frame_base = <optimized out> fp = <optimized out> bytestr_data = 0x7fffed755428 "\304\020\211?\205\023" rest = <optimized out> mandatory = <optimized out> nonrest = <optimized out> pushedargs = <optimized out> saved_quitcounter = 54 '6' saved_vectorp = 0x0 saved_bytestr_data = 0x7fffed68016d "" #72 0x000055555576070e in funcall_lambda (fun=fun <at> entry=XIL(0x7fffed66283d), nargs=nargs <at> entry=1, arg_vector=arg_vector <at> entry=0x7fffffffcc08) at ./src/eval.c:3263 syms_left = make_fixnum(1025) lexenv = Python Exception <class 'gdb.error'>: value has been optimized out i = <optimized out> optional = <optimized out> rest = <optimized out> previous_rest = <optimized out> #73 0x0000555555760b07 in funcall_general (fun=XIL(0x7fffed66283d), numargs=numargs <at> entry=1, args=args <at> entry=0x7fffffffcc08) at ./src/eval.c:3055 original_fun = XIL(0x6b68) #74 0x000055555575db3b in Ffuncall (nargs=nargs <at> entry=2, args=args <at> entry=0x7fffffffcc00) at ./src/eval.c:3104 count = { bytes = 128 } val = Python Exception <class 'gdb.error'>: value has been optimized out #75 0x00005555556e3cac in command_loop_1 () at ./src/lisp.h:1184 cmd = Python Exception <class 'gdb.error'>: value has been optimized out keybuf = {make_fixnum(24), make_fixnum(107), make_fixnum(48), make_fixnum(98), XIL(0x7fffffffcc80), XIL(0x55555575befd), XIL(0x7fffffffcca8), XIL(0x60), XIL(0), XIL(0), XIL(0), XIL(0x1), XIL(0x7fffffffcce0), XIL(0x55555575d835), XIL(0xc), XIL(0x140b0), XIL(0x38), XIL(0x7fffa98b620d), XIL(0x7fffed400004), XIL(0x369475a905028a00), XIL(0x7fffa99487a3), XIL(0x7fffa99487a3), XIL(0x60), XIL(0), XIL(0x7fffffffcd50), XIL(0x5555556d69f8), XIL(0), XIL(0x38), XIL(0x60), XIL(0x7fffe37952cb)} i = <optimized out> last_pt = 447894 prev_modiff = 6774 prev_buffer = 0x7fffbba855a0 #76 0x000055555575c6d8 in internal_condition_case (bfun=bfun <at> entry=0x5555556e382c <command_loop_1>, handlers=Python Exception <class 'gdb.error'>: value has been optimized out , handlers <at> entry=XIL(0xa8), hfun=hfun <at> entry=0x5555556d6847 <cmd_error>) at ./src/eval.c:1623 val = XIL(0x7ffff7fc2470) c = 0x7fffe3dc9940 #77 0x00005555556cdb82 in command_loop_2 (handlers=handlers <at> entry=XIL(0xa8)) at ./src/keyboard.c:1174 #78 0x000055555575c5ed in internal_catch (tag=Python Exception <class 'gdb.error'>: value has been optimized out , tag <at> entry=XIL(0x15498), func=func <at> entry=0x5555556cdb60 <command_loop_2>, arg=Python Exception <class 'gdb.error'>: value has been optimized out , arg <at> entry=XIL(0xa8)) at ./src/eval.c:1302 val = XIL(0x7ffff7fc2470) c = 0x7fffe3da3cc0 #79 0x00005555556cdb3d in command_loop () at ./src/lisp.h:1184 #80 0x00005555556d635e in recursive_edit_1 () at ./src/keyboard.c:760 val = Python Exception <class 'gdb.error'>: value has been optimized out #81 0x00005555556d66ff in Frecursive_edit () at ./src/keyboard.c:843 #82 0x00005555556cd517 in main (argc=5, argv=0x7fffffffcff8) at ./src/emacs.c:2580 stack_bottom_variable = 0x0 old_argc = <optimized out> no_loadup = false junk = 0x0 dname_arg = 0x7fffffffd52e "EMACS-MPS=debug" ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 1 temacs = 0x0 attempt_load_pdump = <optimized out> only_version = false rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = <optimized out> sockfd = -1 module_assertions = <optimized out> ++set $bt = backtrace_top () ++if backtrace_p ($bt) +++echo \n +++echo Lisp Backtrace:\n Lisp Backtrace: +++xbacktrace ++++set $bt = backtrace_top () ++++while backtrace_p ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "delete-frame"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffaf10) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffafe8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "progn"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb0c8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb1a8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "let*"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb2f8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "progn"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb3d8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb4b8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "org-noter-kill-session"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb5e0) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "progn"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb768) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb848) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "let"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffb9b8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "progn"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffba98) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "progn"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffbb78) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffbc58) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "let"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffbdb8) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "org-noter--handle-kill-buffer"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffbfd0) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "kill-buffer"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xe2200100) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "kill-this-buffer"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffc2e0) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "if"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffc488) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "grfz-kill-a-buffer"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffc770) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "funcall-interactively"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffc768) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "call-interactively"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xe2200070) +++++set $bt = backtrace_next ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "command-execute"++++++printf " (0x%x)\n", backtrace_args ($bt) (0xffffcc08) +++++set $bt = backtrace_next ($bt) +i reg rax 0x7ffff7fc2470 140737353884784 rbx 0x555555b2b8f0 93824998357232 rcx 0x3f 63 rdx 0x0 0 rsi 0x7fffffff 2147483647 rdi 0x6 6 rbp 0x7fffffffad30 0x7fffffffad30 rsp 0x7fffffffad28 0x7fffffffad28 r8 0x0 0 r9 0x73 115 r10 0x7ffff5e4f868 140737318811752 r11 0x206 518 r12 0x0 0 r13 0x555555b2b8f0 93824998357232 r14 0x100 256 r15 0x0 0 rip 0x5555556cc062 0x5555556cc062 <terminate_due_to_signal> eflags 0x246 [ PF ZF IF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 +frame 3 #3 0x00005555557da4e4 in igc_check_freeable (start=start <at> entry=0x555555b2b8f0) at ./src/igc.c:3020 3020 igc_assert (r == NULL); +print a No symbol "a" in current context. +xtype ++xgettype $ +++if (CHECK_LISP_OBJECT_TYPE) ++++set $bugfix = $.i The history is empty. HTH, Gregor
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Fri, 07 Feb 2025 07:54:01 GMT) Full text and rfc822 format available.Message #17 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Gregor Zattler <telegraph <at> gmx.net> Cc: gerd.moellmann <at> gmail.com, 76091 <at> debbugs.gnu.org, pipcet <at> protonmail.com Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 07 Feb 2025 09:52:58 +0200
> From: Gregor Zattler <telegraph <at> gmx.net> > Cc: 76091 <at> debbugs.gnu.org > Date: Fri, 07 Feb 2025 00:15:25 +0100 > > Hi Eli, > * Gregor Zattler <telegraph <at> gmx.net> [2025-02-06; 16:48 +01]: > > I'll try to use an un-optimized build > > but I'm afraid it's too slow for > > everyday usage. > > So I did, it's really slow, but just > usable, and I got a hit at the same > breakpoint. I again played around with > org-noter. When I finally hit C-x k (a > convenience function which kills current > buffer) the graphical frame vanished. > It might even be that this is expected > behaviour of org-noter but the daemon > now hangs which it surely should not. This is a different problem, see below. > As always first infos for this > build, then GDB output Your GDB seems either misconfigured or buggy: it constantly complains about exceptions in Python, like this: #12 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out , form <at> entry=XIL(0x7fffbb79996b)) at ./src/eval.c:2560 Please either upgrade or downgrade your GDB, or figure out what is the problem in the configuration (incompatible Python version, perhaps?) and fix it. It gets in the way of reading the backtraces. > +run --debug-init -xrm --init-directory="${USER_EMACS_DIRECTORY}" --fg-daemon="${EMACS_SERVER_NAME}" These "+" signs are due to "set trace-command on" setting you use, which is fine for commands you type, but it also expands all the user-defined commands we have in src/.gdbinit, and that makes the results very hard to read, because the results are buried in gobs of unhelpful command lines. Example: > ++set $bt = backtrace_top () > ++if backtrace_p ($bt) > +++echo \n > > +++echo Lisp Backtrace:\n > Lisp Backtrace: > +++xbacktrace > ++++set $bt = backtrace_top () > ++++while backtrace_p ($bt) > +++++set $fun = backtrace_function ($bt) > +++++xgettype $fun > ++++++if (CHECK_LISP_OBJECT_TYPE) > +++++++set $bugfix = $fun.i > ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) > +++++if $type == Lisp_Symbol > ++++++xprintsym $fun > +++++++xsymname $fun > ++++++++xgetsym $fun > +++++++++xgetptr $fun > ++++++++++if (CHECK_LISP_OBJECT_TYPE) > +++++++++++set $bugfix = $fun.i > ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK > +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) > ++++++++set $symname = $ptr->u.s.name > +++++++xgetptr $symname > ++++++++if (CHECK_LISP_OBJECT_TYPE) > +++++++++set $bugfix = $symname.i > ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK > +++++++if $ptr != 0 > ++++++++set $sym_name = (struct Lisp_String *) $ptr > ++++++++xprintstr $sym_name > +++++++++if (! $arg0) > ++++++++++set $data = (char *) $sym_name->u.s.data > ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte > ++++++++++if $strsize == 0 > +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) > "delete-frame"++++++printf " (0x%x)\n", backtrace_args ($bt) > (0xffffaf10) This should have been just the following 2 lines: Lisp backtrace: "delete-frame" (0xffffaf10) So please don't use "set trace-command on" in the future, when reporting results of GDB sessions here. > Breakpoint 1, terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 > 425 { > +t > [Current thread is 1 (Thread 0x7ffff4f48000 (LWP 1750449))] > +bt > #0 terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 > #1 0x00005555557d9a62 in set_state (state=state <at> entry=IGC_STATE_DEAD) at ./src/igc.c:1017 > #2 0x00005555557d9a96 in igc_assert_fail (file=file <at> entry=0x555555903e97 "igc.c", line=line <at> entry=3020, msg=msg <at> entry=0x5555558f2277 "r == NULL") at ./src/igc.c:306 > #3 0x00005555557da4e4 in igc_check_freeable (start=start <at> entry=0x555555b2b8f0) at ./src/igc.c:3020 > #4 0x0000555555736d12 in xfree (block=block <at> entry=0x555555b2b8f0) at ./src/alloc.c:760 > #5 0x00005555556889f0 in x_delete_display (dpyinfo=dpyinfo <at> entry=0x555555b2b8f0) at ./src/xterm.c:31925 > #6 0x000055555569385e in x_delete_terminal (terminal=0x7fffd549a0c0) at ./src/xterm.c:32154 > #7 0x000055555567099a in Fdelete_terminal (terminal=terminal <at> entry=XIL(0x7fffd549a0c5), force=XIL(0x38)) at ./src/terminal.c:428 This seems to be a bug in x_delete_display: while dpyinfo is allocated in x_term_init by igc_xzalloc, it is freed by xfree: struct x_display_info * x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) { [...] #ifdef HAVE_MPS // FIXME/igc: use exact references dpyinfo = igc_xzalloc_ambig (sizeof *dpyinfo); #else dpyinfo = xzalloc (sizeof *dpyinfo); #endif but static void x_delete_display (struct x_display_info *dpyinfo) { [...] xfree (dpyinfo); }
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Fri, 07 Feb 2025 09:58:01 GMT) Full text and rfc822 format available.Message #20 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> protonmail.com> To: Gregor Zattler <telegraph <at> gmx.net> Cc: Gerd Möllmann <gerd.moellmann <at> gmail.com>, 76091 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 07 Feb 2025 09:57:15 +0000
"Gregor Zattler" <telegraph <at> gmx.net> writes: > Hi Eli, > * Gregor Zattler <telegraph <at> gmx.net> [2025-02-06; 16:48 +01]: >> I'll try to use an un-optimized build >> but I'm afraid it's too slow for >> everyday usage. > > So I did, it's really slow, but just > usable, and I got a hit at the same > breakpoint. I again played around with > org-noter. When I finally hit C-x k (a > convenience function which kills current > buffer) the graphical frame vanished. > It might even be that this is expected > behaviour of org-noter but the daemon > now hangs which it surely should not. > #0 terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 > #1 0x00005555557d9a62 in set_state (state=state <at> entry=IGC_STATE_DEAD) at ./src/igc.c:1017 > #2 0x00005555557d9a96 in igc_assert_fail (file=file <at> entry=0x555555903e97 "igc.c", line=line <at> entry=3020, msg=msg <at> entry=0x5555558f2277 "r == NULL") at ./src/igc.c:306 > #3 0x00005555557da4e4 in igc_check_freeable (start=start <at> entry=0x555555b2b8f0) at ./src/igc.c:3020 > #4 0x0000555555736d12 in xfree (block=block <at> entry=0x555555b2b8f0) at ./src/alloc.c:760 > #5 0x00005555556889f0 in x_delete_display (dpyinfo=dpyinfo <at> entry=0x555555b2b8f0) at ./src/xterm.c:31925 This is a different bug, which I've fixed. Still looking for the original bug... Pip
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Fri, 07 Feb 2025 10:42:01 GMT) Full text and rfc822 format available.Message #23 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> protonmail.com> To: Gerd Möllmann <gerd.moellmann <at> gmail.com> Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph <at> gmx.net>, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 07 Feb 2025 10:41:18 +0000
"Eli Zaretskii" <eliz <at> gnu.org> writes: >> Date: Thu, 06 Feb 2025 13:49:30 +0100 >> From: Gregor Zattler via "Bug reports for GNU Emacs, >> the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org> >> >> Dear Emacs developers, I don't know if >> this failed assertion is due to using >> MPS as GC. >> >> I played along with pdf-tools and >> org-noter when it happened. >> >> This time I built with a current >> checkout of feature/igc. >> >> GDB output even further below. >> >> The crashed session is still in GDB. >> [...] >> Breakpoint 1, terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 >> 425 { >> +bt >> #0 terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 >> #1 0x00005555555b8f5b in die (msg=msg <at> entry=0x5555559b40d0 "BUFFERP >> (a)", file=file <at> entry=0x5555559b40c7 "buffer.h", >> line=line <at> entry=829) at ./src/alloc.c:7683 >> #2 0x00005555555a0bda in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out >> ) at ./src/buffer.h:829 >> #3 0x00005555555a4370 in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out >> ) at ./src/xdisp.c:17024 >> #4 prepare_menu_bars () at ./src/xdisp.c:14041 > > This is here: > > FOR_EACH_FRAME (tail, frame) > { > struct frame *f = XFRAME (frame); > struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f)); > if (some_windows > && !f->redisplay > && !w->redisplay > && !XBUFFER (w->contents)->text->redisplay) > continue; > > And I don't understand how w->contents of a frame's selected window > could fail the BUFFERP test. Here's my current theory: 1. display_mode_lines calls record_unwind_protect (restore_frame_selected_window, XFRAME (new_frame)->selected_window); 2. that stores the selected window in the specpdl 3. the specpdl is then grown 4. we xpalloc the specpdl area, creating a copy of it and freeing the old memory, which is still registered as a root. 5. igc_on_grow_specpdl calls mps_arena_park 6. the first thing mps_arena_park does is to complete the current GC cycle. This means that it will: * look at the old specpdl area, which has been freed and may now contain invalid data * *modify* the old specpdl area, which may have been reallocated so cause random memory corruption * move objects by updating their pointers in the *old* specpdl area, leaving the pointers in the *new* specpdl area invalid 7. in our case, the selected window was supposed to have been moved but the pointer in the *new* specpdl area continues to point to the old memory, which is reused for something else which fails the BUFFERP test. 8. we unwind and restore the invalid selected window pointer. I have a patch, but I'd like to discuss whether this is a plausible theory first. Gerd, if there's something that prevents this problem from happening, and I missed it, could you briefly yell at me here? Thanks! Pip
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Fri, 07 Feb 2025 12:09:02 GMT) Full text and rfc822 format available.Message #26 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Pip Cet <pipcet <at> protonmail.com> Cc: gerd.moellmann <at> gmail.com, 76091 <at> debbugs.gnu.org, telegraph <at> gmx.net Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 07 Feb 2025 14:08:16 +0200
> Date: Fri, 07 Feb 2025 10:41:18 +0000 > From: Pip Cet <pipcet <at> protonmail.com> > Cc: Gregor Zattler <telegraph <at> gmx.net>, Eli Zaretskii <eliz <at> gnu.org>, 76091 <at> debbugs.gnu.org > > "Eli Zaretskii" <eliz <at> gnu.org> writes: > > >> Date: Thu, 06 Feb 2025 13:49:30 +0100 > >> From: Gregor Zattler via "Bug reports for GNU Emacs, > >> the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org> > >> > >> Dear Emacs developers, I don't know if > >> this failed assertion is due to using > >> MPS as GC. > >> > >> I played along with pdf-tools and > >> org-noter when it happened. > >> > >> This time I built with a current > >> checkout of feature/igc. > >> > >> GDB output even further below. > >> > >> The crashed session is still in GDB. > >> [...] > >> Breakpoint 1, terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 > >> 425 { > >> +bt > >> #0 terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 > >> #1 0x00005555555b8f5b in die (msg=msg <at> entry=0x5555559b40d0 "BUFFERP > >> (a)", file=file <at> entry=0x5555559b40c7 "buffer.h", > >> line=line <at> entry=829) at ./src/alloc.c:7683 > >> #2 0x00005555555a0bda in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out > >> ) at ./src/buffer.h:829 > >> #3 0x00005555555a4370 in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out > >> ) at ./src/xdisp.c:17024 > >> #4 prepare_menu_bars () at ./src/xdisp.c:14041 > > > > This is here: > > > > FOR_EACH_FRAME (tail, frame) > > { > > struct frame *f = XFRAME (frame); > > struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f)); > > if (some_windows > > && !f->redisplay > > && !w->redisplay > > && !XBUFFER (w->contents)->text->redisplay) > > continue; > > > > And I don't understand how w->contents of a frame's selected window > > could fail the BUFFERP test. > > Here's my current theory: > > 1. display_mode_lines calls > > record_unwind_protect > (restore_frame_selected_window, XFRAME (new_frame)->selected_window); > > 2. that stores the selected window in the specpdl > > 3. the specpdl is then grown > > 4. we xpalloc the specpdl area, creating a copy of it and freeing the > old memory, which is still registered as a root. > > 5. igc_on_grow_specpdl calls mps_arena_park > > 6. the first thing mps_arena_park does is to complete the current GC > cycle. This means that it will: > > * look at the old specpdl area, which has been freed and may now contain > invalid data > * *modify* the old specpdl area, which may have been reallocated so > cause random memory corruption > * move objects by updating their pointers in the *old* specpdl area, > leaving the pointers in the *new* specpdl area invalid > > 7. in our case, the selected window was supposed to have been moved but > the pointer in the *new* specpdl area continues to point to the old > memory, which is reused for something else which fails the BUFFERP test. > > 8. we unwind and restore the invalid selected window pointer. > > I have a patch, but I'd like to discuss whether this is a plausible > theory first. Gerd, if there's something that prevents this problem > from happening, and I missed it, could you briefly yell at me here? If this is possible, all hell will break loose. The selected window of any frame must be a leaf window, and its contents member must identify a buffer, at all times. We must ensure this is true whenever our code runs.
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Fri, 07 Feb 2025 13:49:01 GMT) Full text and rfc822 format available.Message #29 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Gerd Möllmann <gerd.moellmann <at> gmail.com> To: Pip Cet <pipcet <at> protonmail.com> Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph <at> gmx.net>, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 7 Feb 2025 14:47:55 +0100
[Message part 1 (text/plain, inline)]
On 7. Feb 2025, at 11:41, Pip Cet <pipcet <at> protonmail.com> wrote: > > I have a patch, but I'd like to discuss whether this is a plausible > theory first. Gerd, if there's something that prevents this problem > from happening, and I missed it, could you briefly yell at me here? Good catch! I think he idea I had with the igc_on_... is mistaken, one must not free the memory of a root while the MPS is not parked.
[Message part 2 (text/html, inline)]
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Fri, 07 Feb 2025 13:56:02 GMT) Full text and rfc822 format available.Message #32 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> protonmail.com> To: Gerd Möllmann <gerd.moellmann <at> gmail.com> Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph <at> gmx.net>, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 07 Feb 2025 13:55:19 +0000
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes: > On 7. Feb 2025, at 11:41, Pip Cet <pipcet <at> protonmail.com> wrote: > > I have a patch, but I'd like to discuss whether this is a plausible > theory first. Gerd, if there's something that prevents this problem > from happening, and I missed it, could you briefly yell at me here? > > Good catch! Thanks! > I think he idea I had with the igc_on_... is mistaken, I've rewritten the root resizing functions to always follow the 1. allocate new zeroed root 2. register new root 3. copy contents from old root 4. if this fails, try again 5. save new root 6. unregister old root 7. free old root pattern. It's a bit complicated, but avoids the need for parking the arena in these cases. And, yes, it'll waste some memory, but these are roots, and roots are supposed to be small. I'd rather do it that way and turn them into non-roots than figure out how to use realloc() on an MPS root, TBH. > one must not free the memory of a root while the MPS is not parked. I think the surprising thing is that parking the arena will cause GC activity. It's best to avoid parking it except when walking the pools, I think. Still testing the patch... Pip
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Fri, 07 Feb 2025 15:24:01 GMT) Full text and rfc822 format available.Message #35 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> protonmail.com> To: Gerd Möllmann <gerd.moellmann <at> gmail.com>, Helmut Eller <eller.helmut <at> gmail.com> Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph <at> gmx.net>, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 07 Feb 2025 15:23:08 +0000
Pip Cet <pipcet <at> protonmail.com> writes: > Gerd Möllmann <gerd.moellmann <at> gmail.com> writes: > >> On 7. Feb 2025, at 11:41, Pip Cet <pipcet <at> protonmail.com> wrote: >> >> I have a patch, but I'd like to discuss whether this is a plausible >> theory first. Gerd, if there's something that prevents this problem >> from happening, and I missed it, could you briefly yell at me here? >> >> Good catch! > > Thanks! > >> I think he idea I had with the igc_on_... is mistaken, > > I've rewritten the root resizing functions to always follow the > > 1. allocate new zeroed root > 2. register new root > 3. copy contents from old root > 4. if this fails, try again > 5. save new root > 6. unregister old root > 7. free old root > > pattern. It's a bit complicated, but avoids the need for parking the > arena in these cases. And, yes, it'll waste some memory, but these are > roots, and roots are supposed to be small. I'd rather do it that way > and turn them into non-roots than figure out how to use realloc() on an > MPS root, TBH. I should point out that the memory waste is temporary, only while we simulate realloc by allocating a new area, then freeing the old one. >> one must not free the memory of a root while the MPS is not parked. > > I think the surprising thing is that parking the arena will cause GC > activity. It's best to avoid parking it except when walking the pools, > I think. But if you think parking the area *more* is a solution, please let me know! > Still testing the patch... Well, here it is: It still needs more testing, thought, and comments. All the volatile stuff is needed because we can't copy a union with word atomicity: all we have is memcpy, which might copy bytewise and result in an invalid intermediate state. OTOH, we don't know anything about the type in igc_xpalloc_ambig and igc_xpalloc_exact, so we have to fake it and hope mps_word_t alignment is good enough. (Of course, with WIDE_EMACS_INT, mps_word_t is not good enough; unless we carefully write the scan function not to assume that the two half-words comprising a 64-bit Lisp_Object are in sync. As Eli was very opposed to the idea of removing WIDE_EMACS_INT again, we might have to find a workaround there.) Also, "scrans" should be "scans", but I'd rather not edit a patch I've tested and am about to post :-) Helmut, can you look over the larger_marker_vector changes? While testing, I hit easserts there, so I added some new ones to catch the situation earlier. I think the old code was fine, but the new one should also be, right? Pip From 8521107ab2a9033647082236517770a1604e53c9 Mon Sep 17 00:00:00 2001 From: Pip Cet <pipcet <at> protonmail.com> Subject: [PATCH] Bug#76091 --- src/alloc.c | 67 +++++++++------- src/eval.c | 26 +++++-- src/igc.c | 219 +++++++++++++++++++++++++++++++++++++++------------- src/igc.h | 2 + src/lisp.h | 3 +- src/print.c | 5 +- 6 files changed, 233 insertions(+), 89 deletions(-) diff --git a/src/alloc.c b/src/alloc.c index 8f24ca5e0f3..f0c0e0538b5 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -801,32 +801,13 @@ xnrealloc (void *pa, ptrdiff_t nitems, ptrdiff_t item_size) } -/* Grow PA, which points to an array of *NITEMS items, and return the - location of the reallocated array, updating *NITEMS to reflect its - new size. The new array will contain at least NITEMS_INCR_MIN more - items, but will not contain more than NITEMS_MAX items total. - ITEM_SIZE is the size of each item, in bytes. +/* Calculate the new allocation size for xpalloc. This needs to be a + separate function because MPS always allocates a new area, rather + than calling xrealloc as xpalloc does. */ - ITEM_SIZE and NITEMS_INCR_MIN must be positive. *NITEMS must be - nonnegative. If NITEMS_MAX is -1, it is treated as if it were - infinity. - - If PA is null, then allocate a new array instead of reallocating - the old one. - - Block interrupt input as needed. If memory exhaustion occurs, set - *NITEMS to zero if PA is null, and signal an error (i.e., do not - return). - - Thus, to grow an array A without saving its old contents, do - { xfree (A); A = NULL; A = xpalloc (NULL, &AITEMS, ...); }. - The A = NULL avoids a dangling pointer if xpalloc exhausts memory - and signals an error, and later this code is reexecuted and - attempts to free A. */ - -void * -xpalloc (void *pa, ptrdiff_t *nitems, ptrdiff_t nitems_incr_min, - ptrdiff_t nitems_max, ptrdiff_t item_size) +ptrdiff_t +xpalloc_nbytes (void *pa, ptrdiff_t *nitems, ptrdiff_t nitems_incr_min, + ptrdiff_t nitems_max, ptrdiff_t item_size) { ptrdiff_t n0 = *nitems; eassume (0 < item_size && 0 < nitems_incr_min && 0 <= n0 && -1 <= nitems_max); @@ -864,8 +845,42 @@ xpalloc (void *pa, ptrdiff_t *nitems, ptrdiff_t nitems_incr_min, || (0 <= nitems_max && nitems_max < n) || ckd_mul (&nbytes, n, item_size))) memory_full (SIZE_MAX); - pa = xrealloc (pa, nbytes); *nitems = n; + return nbytes; +} + +/* Grow PA, which points to an array of *NITEMS items, and return the + location of the reallocated array, updating *NITEMS to reflect its + new size. The new array will contain at least NITEMS_INCR_MIN more + items, but will not contain more than NITEMS_MAX items total. + ITEM_SIZE is the size of each item, in bytes. + + ITEM_SIZE and NITEMS_INCR_MIN must be positive. *NITEMS must be + nonnegative. If NITEMS_MAX is -1, it is treated as if it were + infinity. + + If PA is null, then allocate a new array instead of reallocating + the old one. + + Block interrupt input as needed. If memory exhaustion occurs, set + *NITEMS to zero if PA is null, and signal an error (i.e., do not + return). + + Thus, to grow an array A without saving its old contents, do + { xfree (A); A = NULL; A = xpalloc (NULL, &AITEMS, ...); }. + The A = NULL avoids a dangling pointer if xpalloc exhausts memory + and signals an error, and later this code is reexecuted and + attempts to free A. */ + +void * +xpalloc (void *pa, ptrdiff_t *nitems, ptrdiff_t nitems_incr_min, + ptrdiff_t nitems_max, ptrdiff_t item_size) +{ + ptrdiff_t nitems_new = *nitems; + ptrdiff_t nbytes = xpalloc_nbytes (pa, &nitems_new, nitems_incr_min, + nitems_max, item_size); + pa = xrealloc (pa, nbytes); + *nitems = nitems_new; return pa; } diff --git a/src/eval.c b/src/eval.c index 1fbed2d96b9..e542efd9476 100644 --- a/src/eval.c +++ b/src/eval.c @@ -225,12 +225,15 @@ init_eval_once (void) init_eval_once_for_pdumper (void) { enum { size = 50 }; - union specbinding *pdlvec = malloc ((size + 1) * sizeof *specpdl); + union specbinding *pdlvec = xzalloc ((size + 1) * sizeof *specpdl); specpdl = specpdl_ptr = pdlvec + 1; specpdl_end = specpdl + size; #ifdef HAVE_MPS for (int i = 0; i < size; ++i) - specpdl[i].kind = SPECPDL_FREE; + { + specpdl[i].kind = SPECPDL_FREE; + memset (&specpdl[i], 0, sizeof specpdl[i]); + } igc_on_alloc_main_thread_specpdl (); #endif } @@ -2479,15 +2482,23 @@ grow_specpdl_allocation (void) ptrdiff_t size = specpdl_end - specpdl; ptrdiff_t pdlvecsize = size + 1; eassert (max_size > size); + +#ifdef HAVE_MPS + ptrdiff_t old_pdlvecsize = pdlvecsize; + ptrdiff_t nbytes = xpalloc_nbytes (pdlvec, &pdlvecsize, 1, max_size + 1, + sizeof *specpdl); + union specbinding *new_pdlvec = xzalloc (nbytes); + igc_replace_specpdl (pdlvec, old_pdlvecsize, + new_pdlvec, pdlvecsize); + union specbinding *old_pdlvec = pdlvec; + pdlvec = new_pdlvec; + xfree (old_pdlvec); +#else pdlvec = xpalloc (pdlvec, &pdlvecsize, 1, max_size + 1, sizeof *specpdl); +#endif specpdl = pdlvec + 1; specpdl_end = specpdl + pdlvecsize - 1; specpdl_ptr = specpdl_ref_to_ptr (count); -#ifdef HAVE_MPS - for (int i = size; i < pdlvecsize - 1; ++i) - specpdl[i].kind = SPECPDL_FREE; - igc_on_grow_specpdl (); -#endif } /* Eval a sub-expression of the current expression (i.e. in the same @@ -3847,6 +3858,7 @@ unbind_to (specpdl_ref count, Lisp_Object value) this_binding = *--specpdl_ptr; #ifdef HAVE_MPS specpdl_ptr->kind = SPECPDL_FREE; + memset (specpdl_ptr, 0, sizeof *specpdl_ptr); #endif do_one_unbind (&this_binding, true, SET_INTERNAL_UNBIND); } diff --git a/src/igc.c b/src/igc.c index af73406cecc..08e8f37387f 100644 --- a/src/igc.c +++ b/src/igc.c @@ -2986,6 +2986,59 @@ igc_on_grow_specpdl (void) } } +void +igc_replace_specpdl (volatile union specbinding *old_pdlvec, ptrdiff_t old_entries, + volatile union specbinding *new_pdlvec, ptrdiff_t new_entries) +{ + struct igc *gc = global_igc; + mps_root_t root; + for (ptrdiff_t i = 0; i < new_entries; i++) + new_pdlvec[i].kind = SPECPDL_FREE; + + volatile union specbinding *new_specpdl = new_pdlvec + 1; + struct igc_thread_list *t = current_thread->gc_info; + mps_res_t res + = mps_root_create_area (&root, gc->arena, mps_rank_exact (), 0, + (void *)new_specpdl, (void *)(new_pdlvec + new_entries), + scan_specpdl, t); + IGC_CHECK_RES (res); + struct igc_root_list *old_root = t->d.specpdl_root; + t->d.specpdl_root + = register_root (gc, root, (void *)new_specpdl, (void *)(new_pdlvec + new_entries), + false, "specpdl"); + volatile union specbinding orig; + + for (ptrdiff_t i = 0; i < old_entries; i++) + { + try_again:; + orig = old_pdlvec[i]; + if (memcmp ((void *)&orig, (void *)(&old_pdlvec[i]), sizeof orig)) + { + /* We tried to create a snapshot of old_pdlvec[i] on the + stack, which would pin all pointers in old_pdlvec[i]. But + we failed, because a pointer in old_pdlvec[i] was updated + by GC while we were creating the copy. Try again. */ + goto try_again; + } + volatile union specbinding temp = orig; + temp.kind = SPECPDL_FREE; + new_pdlvec[i] = temp; + new_pdlvec[i].kind = orig.kind; + if (memcmp ((void *)(&new_pdlvec[i]), (void *)(&old_pdlvec[i]), sizeof orig)) + { + /* old_pdlvec[i] was updated by GC even though all of its + references should have been pinned by the volatile "orig" + copy on the stack! This really shouldn't happen! */ + emacs_abort (); + } + } + + if (memcmp ((void *)new_pdlvec, (void *)old_pdlvec, old_entries * sizeof (old_pdlvec[0]))) + emacs_abort (); + + igc_destroy_root_with_start (old_root->d.start); +} + static igc_root_list * root_create_exact_n (Lisp_Object *start, size_t n) { @@ -3193,16 +3246,42 @@ igc_park_arena (void) igc_grow_rdstack (struct read_stack *rs) { struct igc *gc = global_igc; - IGC_WITH_PARKED (gc) - { - igc_destroy_root_with_start (rs->stack); - ptrdiff_t old_nitems = rs->size; - rs->stack = xpalloc (rs->stack, &rs->size, 1, -1, sizeof *rs->stack); - for (ptrdiff_t i = old_nitems; i < rs->size; ++i) - rs->stack[i].type = RE_free; - root_create_exact (gc, rs->stack, rs->stack + rs->size, scan_rdstack, - "rdstack"); - } + ptrdiff_t old_nitems = rs->size; + ptrdiff_t nbytes = xpalloc_nbytes (rs->stack, &rs->size, 1, -1, sizeof *rs->stack); + struct read_stack_entry *new_stack = xzalloc (nbytes); + for (ptrdiff_t i = 0; i < rs->size; i++) + new_stack[i].type = RE_free; + volatile struct read_stack_entry orig; + struct read_stack *old_stack = rs; + root_create_exact (gc, new_stack, (char *)new_stack + nbytes, scan_rdstack, + "rdstack"); + for (ptrdiff_t i = 0; i < old_nitems; i++) + { + try_again:; + orig = old_stack->stack[i]; + if (memcmp ((void *)&orig, (void *)(&old_stack->stack[i]), sizeof orig)) + { + /* We tried to create a snapshot of old_stack[i] on the + stack, which would pin all pointers in old_stack[i]. But + we failed, because a pointer in old_stack[i] was updated + by GC while we were creating the copy. Try again. */ + goto try_again; + } + volatile struct read_stack_entry temp = orig; + temp.type = RE_free; + new_stack[i] = temp; + new_stack[i].type = orig.type; + if (memcmp ((void *)(&new_stack[i]), (void *)(&old_stack->stack[i]), sizeof orig)) + { + /* old_pdlvec[i] was updated by GC even though all of its + references should have been pinned by the volatile "orig" + copy on the stack! This really shouldn't happen! */ + emacs_abort (); + } + } + + igc_xfree (rs->stack); + rs->stack = new_stack; } Lisp_Object * @@ -3249,28 +3328,35 @@ igc_xzalloc_ambig (size_t size) void * igc_xnmalloc_ambig (ptrdiff_t nitems, ptrdiff_t item_size) { - return igc_xzalloc_ambig (nitems * item_size); + ptrdiff_t nbytes; + if (ckd_mul (&nbytes, nitems, item_size) || SIZE_MAX < nbytes) + memory_full (SIZE_MAX); + return igc_xzalloc_ambig (nbytes); } void * igc_realloc_ambig (void *block, size_t size) { struct igc *gc = global_igc; - void *p; - IGC_WITH_PARKED (gc) - { - igc_destroy_root_with_start (block); - /* Can't make a root that has zero length. Want one to be able to - detect calling igc_free on something not having a root. */ - size_t new_size = (size == 0 ? IGC_ALIGN_DFLT : size); - p = xrealloc (block, new_size); - void *end = (char *)p + new_size; - root_create_ambig (global_igc, p, end, "realloc-ambig"); - } + void *p = xzalloc (size); + struct igc_root_list *r = root_find (block); + ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; + root_create_ambig (gc, p, (char *)p + size, "realloc-ambig"); + mps_word_t *old_pw = block; + mps_word_t *new_pw = p; + for (ptrdiff_t i = 0; i < old_size / sizeof (mps_word_t); i++) + { + volatile mps_word_t word = old_pw[i]; + if (memcmp ((void *)&word, old_pw + i, sizeof word)) + emacs_abort (); + new_pw[i] = word; + } + memcpy (new_pw + (old_size / sizeof (mps_word_t)), old_pw + (old_size / sizeof (mps_word_t)), + old_size % sizeof (mps_word_t)); + igc_xfree (block); return p; } - void igc_xfree (void *p) { @@ -3284,17 +3370,23 @@ igc_xfree (void *p) } void * -igc_xpalloc_ambig (void *pa, ptrdiff_t *nitems, ptrdiff_t nitems_incr_min, +igc_xpalloc_ambig (void *old_pa, ptrdiff_t *nitems, ptrdiff_t nitems_incr_min, ptrdiff_t nitems_max, ptrdiff_t item_size) { - IGC_WITH_PARKED (global_igc) - { - igc_destroy_root_with_start (pa); - pa = xpalloc (pa, nitems, nitems_incr_min, nitems_max, item_size); - char *end = (char *) pa + *nitems * item_size; - root_create_ambig (global_igc, pa, end, "xpalloc-ambig"); - } - return pa; + ptrdiff_t old_nitems = *nitems; + ptrdiff_t new_nitems = *nitems; + ptrdiff_t nbytes = xpalloc_nbytes (old_pa, &new_nitems, nitems_incr_min, + nitems_max, item_size); + void *new_pa = xzalloc (nbytes); + char *end = (char *)new_pa + nbytes; + root_create_ambig (global_igc, new_pa, end, "xpalloc-ambig"); + mps_word_t *old_word = old_pa; + mps_word_t *new_word = new_pa; + for (ptrdiff_t i = 0; i < (old_nitems * item_size) / sizeof (mps_word_t); i++) + new_word[i] = old_word[i]; + *nitems = new_nitems; + igc_xfree (old_pa); + return new_pa; } void @@ -3303,29 +3395,48 @@ igc_xpalloc_exact (void **pa_cell, ptrdiff_t *nitems, ptrdiff_t item_size, igc_scan_area_t scan_area, void *closure) { - IGC_WITH_PARKED (global_igc) - { - void *pa = *pa_cell; - igc_destroy_root_with_start (pa); - pa = xpalloc (pa, nitems, nitems_incr_min, nitems_max, item_size); - char *end = (char *)pa + *nitems * item_size; - root_create (global_igc, pa, end, mps_rank_exact (), (mps_area_scan_t) scan_area, - closure, false, "xpalloc-exact"); - *pa_cell = pa; - } + void *old_pa = *pa_cell; + ptrdiff_t old_nitems = *nitems; + ptrdiff_t new_nitems = *nitems; + ptrdiff_t nbytes = xpalloc_nbytes (old_pa, &new_nitems, nitems_incr_min, + nitems_max, item_size); + void *new_pa = xzalloc (nbytes); + char *end = (char *)new_pa + nbytes; + root_create (global_igc, new_pa, end, mps_rank_exact (), (mps_area_scan_t) scan_area, + closure, false, "xpalloc-exact"); + for (ptrdiff_t i = 0; i < (old_nitems); i++) + { + volatile mps_word_t area[(item_size + (sizeof (mps_word_t) - 1)) / (sizeof (mps_word_t))]; + memcpy ((void *)area, (char *)old_pa + item_size * i, item_size); + if (memcmp ((void *)area, (char *)old_pa + item_size * i, item_size)) + emacs_abort (); + memcpy ((char *)new_pa + item_size * i, (void *)area, item_size); + } + if (memcmp (old_pa, new_pa, old_nitems * item_size)) + emacs_abort (); + eassert ((item_size) % sizeof (mps_word_t) == 0); + *pa_cell = new_pa; + *nitems = new_nitems; + igc_xfree (old_pa); } void * -igc_xnrealloc_ambig (void *pa, ptrdiff_t nitems, ptrdiff_t item_size) +igc_xnrealloc_ambig (void *old_pa, ptrdiff_t nitems, ptrdiff_t item_size) { - IGC_WITH_PARKED (global_igc) - { - igc_destroy_root_with_start (pa); - pa = xnrealloc (pa, nitems, item_size); - char *end = (char *) pa + nitems * item_size; - root_create_ambig (global_igc, pa, end, "xnrealloc-ambig"); - } - return pa; + struct igc_root_list *r = root_find (old_pa); + ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; + ptrdiff_t nbytes; + if (ckd_mul (&nbytes, nitems, item_size) || SIZE_MAX < nbytes) + memory_full (SIZE_MAX); + void *new_pa = xzalloc (nbytes); + char *end = (char *) new_pa + nbytes; + root_create_ambig (global_igc, new_pa, end, "xnrealloc-ambig"); + memcpy (new_pa, old_pa, old_nbytes); + if (memcmp (new_pa, old_pa, old_nbytes)) + emacs_abort (); + igc_xfree (old_pa); + + return new_pa; } static void @@ -4408,9 +4519,9 @@ larger_marker_vector (Lisp_Object v) ptrdiff_t old_len = NILP (v) ? 0 : ASIZE (v); ptrdiff_t new_len = max (2, 2 * old_len); Lisp_Object new_v = alloc_marker_vector (new_len, Qnil); - ptrdiff_t i = 0; + ptrdiff_t i = 1; if (VECTORP (v)) - for (i = 1; i < ASIZE (v); ++i) + for (; i < ASIZE (v); ++i) ASET (new_v, i, AREF (v, i)); for (; i < ASIZE (new_v) - 1; ++i) ASET (new_v, i, make_fixnum (i + 1)); @@ -4430,6 +4541,8 @@ igc_add_marker (struct buffer *b, struct Lisp_Marker *m) v = BUF_MARKERS (b) = larger_marker_vector (v); next_free = XFIXNUM (AREF (v, 0)); } + /* unrelated; triggered during testing */ + eassert (FIXNUMP (AREF (v, next_free))); ASET (v, 0, AREF (v, next_free)); ASET (v, next_free, make_lisp_ptr (m, Lisp_Vectorlike)); m->index = next_free; diff --git a/src/igc.h b/src/igc.h index d4be8e4c03d..7ccb931550d 100644 --- a/src/igc.h +++ b/src/igc.h @@ -141,6 +141,8 @@ #define EMACS_IGC_H specpdl_ref igc_park_arena (void); void igc_postmortem (void); void igc_on_grow_specpdl (void); +void igc_replace_specpdl (volatile union specbinding *old_specpdl, ptrdiff_t old_nitems, + volatile union specbinding *new_specpdl, ptrdiff_t new_nitems); void igc_on_alloc_main_thread_specpdl (void); void igc_on_alloc_main_thread_bc (void); void igc_on_staticpros_complete (void); diff --git a/src/lisp.h b/src/lisp.h index 7dfcda223df..e48e1c5e121 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3799,7 +3799,7 @@ #define DEFVAR_KBOARD(lname, vname, doc) \ enum specbind_tag { # ifdef HAVE_MPS - SPECPDL_FREE, + SPECPDL_FREE = 0, /* must be 0 so xzalloc'd memory scrans without crashing */ # endif SPECPDL_UNWIND, /* An unwind_protect function on Lisp_Object. */ SPECPDL_UNWIND_ARRAY, /* Likewise, on an array that needs freeing. @@ -5903,6 +5903,7 @@ NATIVE_COMP_FUNCTION_DYNP (Lisp_Object a) ATTRIBUTE_MALLOC_SIZE ((1,2)) ATTRIBUTE_RETURNS_NONNULL; extern void *xnrealloc (void *, ptrdiff_t, ptrdiff_t) ATTRIBUTE_ALLOC_SIZE ((2,3)) ATTRIBUTE_RETURNS_NONNULL; +extern ptrdiff_t xpalloc_nbytes (void *, ptrdiff_t *, ptrdiff_t, ptrdiff_t, ptrdiff_t); extern void *xpalloc (void *, ptrdiff_t *, ptrdiff_t, ptrdiff_t, ptrdiff_t) ATTRIBUTE_RETURNS_NONNULL; diff --git a/src/print.c b/src/print.c index 6fc13d4dd39..fc689d11e7a 100644 --- a/src/print.c +++ b/src/print.c @@ -1402,12 +1402,13 @@ pp_stack_push_values (Lisp_Object vectorlike, ptrdiff_t start, ptrdiff_t n) return; if (ppstack.sp >= ppstack.size) grow_pp_stack (); + memset (&ppstack.stack[ppstack.sp], 0, sizeof ppstack.stack[ppstack.sp]); + ppstack.stack[ppstack.sp].is_free = false; ppstack.stack[ppstack.sp++] = (struct print_pp_entry){.start = start, .n = n, .u.vectorlike = vectorlike }; - ppstack.stack[ppstack.sp - 1].is_free = false; } #else static inline void @@ -2222,7 +2223,7 @@ named_escape (int i) enum print_entry_type { #ifdef HAVE_MPS - PE_free, + PE_free = 0, /* must be zero so xzalloc'd memory scans without crashing */ #endif PE_list, /* print rest of list */ PE_rbrac, /* print ")" */ -- 2.48.1
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Fri, 07 Feb 2025 15:32:02 GMT) Full text and rfc822 format available.Message #38 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> protonmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: gerd.moellmann <at> gmail.com, 76091 <at> debbugs.gnu.org, telegraph <at> gmx.net Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 07 Feb 2025 15:30:45 +0000
"Eli Zaretskii" <eliz <at> gnu.org> writes: >> Date: Fri, 07 Feb 2025 10:41:18 +0000 >> From: Pip Cet <pipcet <at> protonmail.com> >> Cc: Gregor Zattler <telegraph <at> gmx.net>, Eli Zaretskii <eliz <at> gnu.org>, 76091 <at> debbugs.gnu.org >> >> "Eli Zaretskii" <eliz <at> gnu.org> writes: >> >> >> Date: Thu, 06 Feb 2025 13:49:30 +0100 >> >> From: Gregor Zattler via "Bug reports for GNU Emacs, >> >> the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org> >> >> >> >> Dear Emacs developers, I don't know if >> >> this failed assertion is due to using >> >> MPS as GC. >> >> >> >> I played along with pdf-tools and >> >> org-noter when it happened. >> >> >> >> This time I built with a current >> >> checkout of feature/igc. >> >> >> >> GDB output even further below. >> >> >> >> The crashed session is still in GDB. >> >> [...] >> >> Breakpoint 1, terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 >> >> 425 { >> >> +bt >> >> #0 terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 >> >> #1 0x00005555555b8f5b in die (msg=msg <at> entry=0x5555559b40d0 "BUFFERP >> >> (a)", file=file <at> entry=0x5555559b40c7 "buffer.h", >> >> line=line <at> entry=829) at ./src/alloc.c:7683 >> >> #2 0x00005555555a0bda in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out >> >> ) at ./src/buffer.h:829 >> >> #3 0x00005555555a4370 in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out >> >> ) at ./src/xdisp.c:17024 >> >> #4 prepare_menu_bars () at ./src/xdisp.c:14041 >> > >> > This is here: >> > >> > FOR_EACH_FRAME (tail, frame) >> > { >> > struct frame *f = XFRAME (frame); >> > struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f)); >> > if (some_windows >> > && !f->redisplay >> > && !w->redisplay >> > && !XBUFFER (w->contents)->text->redisplay) >> > continue; >> > >> > And I don't understand how w->contents of a frame's selected window >> > could fail the BUFFERP test. >> >> Here's my current theory: >> >> 1. display_mode_lines calls >> >> record_unwind_protect >> (restore_frame_selected_window, XFRAME (new_frame)->selected_window); >> >> 2. that stores the selected window in the specpdl >> >> 3. the specpdl is then grown >> >> 4. we xpalloc the specpdl area, creating a copy of it and freeing the >> old memory, which is still registered as a root. >> >> 5. igc_on_grow_specpdl calls mps_arena_park >> >> 6. the first thing mps_arena_park does is to complete the current GC >> cycle. This means that it will: >> >> * look at the old specpdl area, which has been freed and may now contain >> invalid data >> * *modify* the old specpdl area, which may have been reallocated so >> cause random memory corruption >> * move objects by updating their pointers in the *old* specpdl area, >> leaving the pointers in the *new* specpdl area invalid >> >> 7. in our case, the selected window was supposed to have been moved but >> the pointer in the *new* specpdl area continues to point to the old >> memory, which is reused for something else which fails the BUFFERP test. >> >> 8. we unwind and restore the invalid selected window pointer. >> >> I have a patch, but I'd like to discuss whether this is a plausible >> theory first. Gerd, if there's something that prevents this problem >> from happening, and I missed it, could you briefly yell at me here? > > If this is possible, all hell will break loose. Failing to update moved Lisp_Objects will make all hell break loose no matter where they are. > The selected window of any frame must be a leaf window, and its > contents member must identify a buffer, at all times. We must ensure > this is true whenever our code runs. Absolutely, which is why I think we need to remove the root reszing code, and its no-GC assumption which turned out to be unjustified, because parking the arena in an attempt to avoid GC turned out to trigger GC at a very bad time. The remaining no-GC assumptions are: 1. we don't allow the first GC to happen until things have been set up (this seems justifiable) 2. we park the arena when walking the pool for statistics (so they represent consistent counts) 3. (my code only) we park the arena while implementing which_symbols or scanning the heap for references to a given object, but those are ultima ratio debug methods which, while highly desirable, do not count as ordinary operations. I'll post about (3) in some more detail when I've decided whether I would want to propose heap scanning code in time for the feature/igc merge or not. Pip
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Fri, 07 Feb 2025 15:54:01 GMT) Full text and rfc822 format available.Message #41 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Gerd Möllmann <gerd.moellmann <at> gmail.com> To: Pip Cet <pipcet <at> protonmail.com> Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph <at> gmx.net>, Helmut Eller <eller.helmut <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 07 Feb 2025 16:53:15 +0100
Pip Cet <pipcet <at> protonmail.com> writes: > Well, here it is: IIUC, that fixes the problem with igc_on_grow_specpdl as part of a grander effort that avoids parking the arena in more cases. (I'd naively just written a new igc_xpalloc_specpdl patterned after the existing igc_xpalloc_exectly and ambig variants, but I'm also lazy :-).) Hard to review. Did you take this into account? igc.c: 3240 /* Can't make a root that has zero length. Want one to be able to 3241 detect calling igc_free on something not having a root. */ 3242 void *end = (char *) p + size; 3243 if (end == p) 3244 end = (char *) p + IGC_ALIGN_DFLT; 3245 root_create_ambig (global_igc, p, end, "xzalloc-ambig");
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Fri, 07 Feb 2025 16:08:02 GMT) Full text and rfc822 format available.Message #44 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> protonmail.com> To: Gerd Möllmann <gerd.moellmann <at> gmail.com> Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph <at> gmx.net>, Helmut Eller <eller.helmut <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 07 Feb 2025 16:07:30 +0000
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes: > Pip Cet <pipcet <at> protonmail.com> writes: > >> Well, here it is: > > IIUC, that fixes the problem with igc_on_grow_specpdl as part of a > grander effort that avoids parking the arena in more cases. My assumption was the other root resizing methods would have similar issues, yes. I'm not sure this is true, but why risk it? > (I'd naively just written a new igc_xpalloc_specpdl patterned after the > existing igc_xpalloc_exectly and ambig variants, but I'm also lazy :-).) Laziness is a virtue for hackers :-) > Hard to review. Did you take this into account? Well, yes. I'll split it up into individual patches, so we can review them one by one? > igc.c: > 3240 /* Can't make a root that has zero length. Want one to be able to > 3241 detect calling igc_free on something not having a root. */ > 3242 void *end = (char *) p + size; > 3243 if (end == p) > 3244 end = (char *) p + IGC_ALIGN_DFLT; > 3245 root_create_ambig (global_igc, p, end, "xzalloc-ambig"); Ugh. No, I didn't. Need to fix igc_realloc_ambig (also, it doesn't handle the "shrinking" case correctly, oops. However, there appear to be no callers of igc_realloc_ambig that expect the root to shrink, whew). As for that code, is it really necessary to lie about this case? Can't we simply force size to be >= IGC_ALIGN_DFLT when making the allocation? Pip
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Fri, 07 Feb 2025 16:17:01 GMT) Full text and rfc822 format available.Message #47 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Gerd Möllmann <gerd.moellmann <at> gmail.com> To: Pip Cet <pipcet <at> protonmail.com> Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph <at> gmx.net>, Helmut Eller <eller.helmut <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 7 Feb 2025 17:16:07 +0100
On 7. Feb 2025, at 17:07, Pip Cet <pipcet <at> protonmail.com> wrote: > > Gerd Möllmann <gerd.moellmann <at> gmail.com> writes: > >> Pip Cet <pipcet <at> protonmail.com> writes: >> >>> Well, here it is: >> >> IIUC, that fixes the problem with igc_on_grow_specpdl as part of a >> grander effort that avoids parking the arena in more cases. > > My assumption was the other root resizing methods would have similar > issues, yes. I'm not sure this is true, but why risk it? Yes, true. > >> (I'd naively just written a new igc_xpalloc_specpdl patterned after the >> existing igc_xpalloc_exectly and ambig variants, but I'm also lazy :-).) > > Laziness is a virtue for hackers :-) > >> Hard to review. Did you take this into account? > > Well, yes. I'll split it up into individual patches, so we can review > them one by one? Not necessary, but thanks. > >> igc.c: >> 3240 /* Can't make a root that has zero length. Want one to be able to >> 3241 detect calling igc_free on something not having a root. */ >> 3242 void *end = (char *) p + size; >> 3243 if (end == p) >> 3244 end = (char *) p + IGC_ALIGN_DFLT; >> 3245 root_create_ambig (global_igc, p, end, "xzalloc-ambig"); > > Ugh. No, I didn't. Need to fix igc_realloc_ambig (also, it doesn't > handle the "shrinking" case correctly, oops. However, there appear to > be no callers of igc_realloc_ambig that expect the root to shrink, > whew). > > As for that code, is it really necessary to lie about this case? Can't > we simply force size to be >= IGC_ALIGN_DFLT when making the allocation? > We could do that. I did it only that way because it was easy and unproblematic at that time.
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Fri, 07 Feb 2025 16:20:02 GMT) Full text and rfc822 format available.Message #50 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Gerd Möllmann <gerd.moellmann <at> gmail.com> To: Pip Cet <pipcet <at> protonmail.com> Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph <at> gmx.net>, Helmut Eller <eller.helmut <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 7 Feb 2025 17:19:39 +0100
>> Well, yes. I'll split it up into individual patches, so we can review >> them one by one? > > Not necessary, but thanks. I'm through. Except for the shrinking case that you already mentioned I haven't found other problems. So LGTM.
Pip Cet <pipcet <at> protonmail.com>
:Gregor Zattler <telegraph <at> gmx.net>
:Message #55 received at 76091-done <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> protonmail.com> To: Gerd Möllmann <gerd.moellmann <at> gmail.com> Cc: 76091-done <at> debbugs.gnu.org, Gregor Zattler <telegraph <at> gmx.net>, Helmut Eller <eller.helmut <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 07 Feb 2025 19:43:18 +0000
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes: >>> Well, yes. I'll split it up into individual patches, so we can review >>> them one by one? >> >> Not necessary, but thanks. > > I'm through. Except for the shrinking case that you already mentioned I haven't found other problems. > > So LGTM. Thanks! Hope I didn't break anything, but I just pushed the series. Please feel free to revert or fix as appropriate! Gregor, I believe this should fix the bug you originally saw (the second bug you saw when building without optimization has also been fixed), so I'm optimistically closing this report. If you run into any further issues, please open a new bug or reopen this one if it looks quite similar :-) Thanks again for the report, please keep them coming! Pip
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Fri, 07 Feb 2025 20:18:02 GMT) Full text and rfc822 format available.Message #58 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Helmut Eller <eller.helmut <at> gmail.com> To: Pip Cet <pipcet <at> protonmail.com> Cc: Gerd Möllmann <gerd.moellmann <at> gmail.com>, 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph <at> gmx.net>, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 07 Feb 2025 21:16:52 +0100
On Fri, Feb 07 2025, Pip Cet wrote: > It still needs more testing, thought, and comments. All the volatile > stuff is needed because we can't copy a union with word atomicity: all > we have is memcpy, which might copy bytewise and result in an invalid > intermediate state. But volatile doesn't guarantee atomicity. Does it? > Helmut, can you look over the larger_marker_vector changes? While > testing, I hit easserts there, so I added some new ones to catch the > situation earlier. I think the old code was fine, but the new one > should also be, right? Yes, I think the same. Helmut
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Fri, 07 Feb 2025 20:36:02 GMT) Full text and rfc822 format available.Message #61 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> protonmail.com> To: Helmut Eller <eller.helmut <at> gmail.com> Cc: Gerd Möllmann <gerd.moellmann <at> gmail.com>, 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph <at> gmx.net>, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 07 Feb 2025 20:35:10 +0000
"Helmut Eller" <eller.helmut <at> gmail.com> writes: > On Fri, Feb 07 2025, Pip Cet wrote: > >> It still needs more testing, thought, and comments. All the volatile >> stuff is needed because we can't copy a union with word atomicity: all >> we have is memcpy, which might copy bytewise and result in an invalid >> intermediate state. > > But volatile doesn't guarantee atomicity. Does it? No, it doesn't. But having a volatile structure on the stack guarantees that none of the pointers in the heap structure can be moved (the volatile stack structure pins them). But I see now we do use union assignments in an attempt to get word atomicity, so maybe the volatile stack structure pinning the pointers isn't always needed. Maybe it'd be better to define memcpy_by_words which never reveals intermediate states. However, this race condition window should be quite small, so probably worth thinking about more... Pip
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Sat, 08 Feb 2025 07:24:02 GMT) Full text and rfc822 format available.Message #64 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Pip Cet <pipcet <at> protonmail.com> Cc: gerd.moellmann <at> gmail.com, 76091 <at> debbugs.gnu.org, telegraph <at> gmx.net, eller.helmut <at> gmail.com Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Sat, 08 Feb 2025 09:23:16 +0200
> Date: Fri, 07 Feb 2025 19:43:18 +0000 > From: Pip Cet <pipcet <at> protonmail.com> > Cc: Helmut Eller <eller.helmut <at> gmail.com>, Gregor Zattler <telegraph <at> gmx.net>, Eli Zaretskii <eliz <at> gnu.org>, 76091-done <at> debbugs.gnu.org > > Gerd Möllmann <gerd.moellmann <at> gmail.com> writes: > > >>> Well, yes. I'll split it up into individual patches, so we can review > >>> them one by one? > >> > >> Not necessary, but thanks. > > > > I'm through. Except for the shrinking case that you already mentioned I haven't found other problems. > > > > So LGTM. > > Thanks! > > Hope I didn't break anything, but I just pushed the series. Please feel > free to revert or fix as appropriate! Here I get compilation warnings: igc.c: In function 'igc_realloc_ambig': igc.c:3324:55: warning: potential null pointer dereference [-Wnull-dereference] 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; | ~~~~^~~~~~ igc.c:3324:36: warning: potential null pointer dereference [-Wnull-dereference] 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; | ~~~~^~~~ igc.c:3324:55: warning: potential null pointer dereference [-Wnull-dereference] 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; | ~~~~^~~~~~ igc.c:3324:36: warning: potential null pointer dereference [-Wnull-dereference] 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; | ~~~~^~~~ igc.c: In function 'igc_xpalloc_exact': igc.c:3397:27: warning: argument to variable-length array may be too large [-Wvla-larger-than=] 3397 | volatile mps_word_t area[(item_size + (sizeof (mps_word_t) - 1)) | ^~~~ igc.c:3397:27: note: limit is 4031 bytes, but argument may be as large as 4294967292 igc.c: In function 'igc_xnrealloc_ambig': igc.c:3415:57: warning: potential null pointer dereference [-Wnull-dereference] 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; | ~~~~^~~~~~ igc.c:3415:38: warning: potential null pointer dereference [-Wnull-dereference] 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; | ~~~~^~~~ igc.c:3415:57: warning: potential null pointer dereference [-Wnull-dereference] 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; | ~~~~^~~~~~ igc.c:3415:38: warning: potential null pointer dereference [-Wnull-dereference] 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; | ~~~~^~~~ Most of them seem to be because root_find can return NULL. The nit about arena[] is probably because one cannot use sizeof and variables in an array declaration? We should probably either use the maximum as a constant, or use alloca instead. This is a 32-bit build on MS-Windows. Also, does this: > (Of course, with WIDE_EMACS_INT, mps_word_t is not good enough; unless > we carefully write the scan function not to assume that the two > half-words comprising a 64-bit Lisp_Object are in sync. As Eli was very > opposed to the idea of removing WIDE_EMACS_INT again, we might have to > find a workaround there.) mean that the wide-int 32-bit build is now in trouble? Or did you install some workaround for the above?
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Sat, 08 Feb 2025 10:25:02 GMT) Full text and rfc822 format available.Message #67 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> protonmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: gerd.moellmann <at> gmail.com, 76091 <at> debbugs.gnu.org, telegraph <at> gmx.net, eller.helmut <at> gmail.com Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Sat, 08 Feb 2025 10:24:01 +0000
"Eli Zaretskii" <eliz <at> gnu.org> writes: >> Date: Fri, 07 Feb 2025 19:43:18 +0000 >> From: Pip Cet <pipcet <at> protonmail.com> >> Cc: Helmut Eller <eller.helmut <at> gmail.com>, Gregor Zattler <telegraph <at> gmx.net>, Eli Zaretskii <eliz <at> gnu.org>, 76091-done <at> debbugs.gnu.org >> >> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes: >> >> >>> Well, yes. I'll split it up into individual patches, so we can review >> >>> them one by one? >> >> >> >> Not necessary, but thanks. >> > >> > I'm through. Except for the shrinking case that you already mentioned I haven't found other problems. >> > >> > So LGTM. >> >> Thanks! >> >> Hope I didn't break anything, but I just pushed the series. Please feel >> free to revert or fix as appropriate! > > Here I get compilation warnings: > > igc.c: In function 'igc_realloc_ambig': > igc.c:3324:55: warning: potential null pointer dereference [-Wnull-dereference] > 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; > | ~~~~^~~~~~ > igc.c:3324:36: warning: potential null pointer dereference [-Wnull-dereference] > 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; > | ~~~~^~~~ > igc.c:3324:55: warning: potential null pointer dereference [-Wnull-dereference] > 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; > | ~~~~^~~~~~ > igc.c:3324:36: warning: potential null pointer dereference [-Wnull-dereference] > 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; > | ~~~~^~~~ > igc.c: In function 'igc_xpalloc_exact': > igc.c:3397:27: warning: argument to variable-length array may be too large [-Wvla-larger-than=] > 3397 | volatile mps_word_t area[(item_size + (sizeof (mps_word_t) - 1)) > | ^~~~ > igc.c:3397:27: note: limit is 4031 bytes, but argument may be as large as 4294967292 > igc.c: In function 'igc_xnrealloc_ambig': > igc.c:3415:57: warning: potential null pointer dereference [-Wnull-dereference] > 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; > | ~~~~^~~~~~ > igc.c:3415:38: warning: potential null pointer dereference [-Wnull-dereference] > 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; > | ~~~~^~~~ > igc.c:3415:57: warning: potential null pointer dereference [-Wnull-dereference] > 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; > | ~~~~^~~~~~ > igc.c:3415:38: warning: potential null pointer dereference [-Wnull-dereference] > 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; > | ~~~~^~~~ > > Most of them seem to be because root_find can return NULL. The nit Those are harmless; I'll add an eassert (r), that should prevent the warnings (together with Gerd's fix for the igc_realloc (NULL) case). > about arena[] is probably because one cannot use sizeof and variables > in an array declaration? We should probably either use the maximum as I'll add another eassert to ensure no one is calling this with unreasonably large item_size values. If anyone does, it's probably best to crash early. > a constant, or use alloca instead. The vla limit applies to alloca as well. > Also, does this: > >> (Of course, with WIDE_EMACS_INT, mps_word_t is not good enough; unless >> we carefully write the scan function not to assume that the two >> half-words comprising a 64-bit Lisp_Object are in sync. As Eli was very >> opposed to the idea of removing WIDE_EMACS_INT again, we might have to >> find a workaround there.) > > mean that the wide-int 32-bit build is now in trouble? Yes, it does. All scanning functions need to be written to deal with half-written Lisp_Object values in that case. (Easier than it sounds because we USE_LSB_TAG). > Or did you install some workaround for the above? Not yet :-) Pip
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Sat, 08 Feb 2025 11:56:01 GMT) Full text and rfc822 format available.Message #70 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Pip Cet <pipcet <at> protonmail.com> Cc: gerd.moellmann <at> gmail.com, 76091 <at> debbugs.gnu.org, telegraph <at> gmx.net, eller.helmut <at> gmail.com Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Sat, 08 Feb 2025 13:54:54 +0200
> Date: Sat, 08 Feb 2025 10:24:01 +0000 > From: Pip Cet <pipcet <at> protonmail.com> > Cc: gerd.moellmann <at> gmail.com, eller.helmut <at> gmail.com, telegraph <at> gmx.net, 76091 <at> debbugs.gnu.org > > "Eli Zaretskii" <eliz <at> gnu.org> writes: > > >> Date: Fri, 07 Feb 2025 19:43:18 +0000 > >> From: Pip Cet <pipcet <at> protonmail.com> > >> Cc: Helmut Eller <eller.helmut <at> gmail.com>, Gregor Zattler <telegraph <at> gmx.net>, Eli Zaretskii <eliz <at> gnu.org>, 76091-done <at> debbugs.gnu.org > >> > >> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes: > >> > >> >>> Well, yes. I'll split it up into individual patches, so we can review > >> >>> them one by one? > >> >> > >> >> Not necessary, but thanks. > >> > > >> > I'm through. Except for the shrinking case that you already mentioned I haven't found other problems. > >> > > >> > So LGTM. > >> > >> Thanks! > >> > >> Hope I didn't break anything, but I just pushed the series. Please feel > >> free to revert or fix as appropriate! > > > > Here I get compilation warnings: > > > > igc.c: In function 'igc_realloc_ambig': > > igc.c:3324:55: warning: potential null pointer dereference [-Wnull-dereference] > > 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; > > | ~~~~^~~~~~ > > igc.c:3324:36: warning: potential null pointer dereference [-Wnull-dereference] > > 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; > > | ~~~~^~~~ > > igc.c:3324:55: warning: potential null pointer dereference [-Wnull-dereference] > > 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; > > | ~~~~^~~~~~ > > igc.c:3324:36: warning: potential null pointer dereference [-Wnull-dereference] > > 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; > > | ~~~~^~~~ > > igc.c: In function 'igc_xpalloc_exact': > > igc.c:3397:27: warning: argument to variable-length array may be too large [-Wvla-larger-than=] > > 3397 | volatile mps_word_t area[(item_size + (sizeof (mps_word_t) - 1)) > > | ^~~~ > > igc.c:3397:27: note: limit is 4031 bytes, but argument may be as large as 4294967292 > > igc.c: In function 'igc_xnrealloc_ambig': > > igc.c:3415:57: warning: potential null pointer dereference [-Wnull-dereference] > > 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; > > | ~~~~^~~~~~ > > igc.c:3415:38: warning: potential null pointer dereference [-Wnull-dereference] > > 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; > > | ~~~~^~~~ > > igc.c:3415:57: warning: potential null pointer dereference [-Wnull-dereference] > > 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; > > | ~~~~^~~~~~ > > igc.c:3415:38: warning: potential null pointer dereference [-Wnull-dereference] > > 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; > > | ~~~~^~~~ > > > > Most of them seem to be because root_find can return NULL. The nit > > Those are harmless; I'll add an eassert (r), that should prevent the > warnings (together with Gerd's fix for the igc_realloc (NULL) case). Not sure if you already did, but: . I still see the warnings, and . this is an optimized build, so eassert compiles to nothing > > Also, does this: > > > >> (Of course, with WIDE_EMACS_INT, mps_word_t is not good enough; unless > >> we carefully write the scan function not to assume that the two > >> half-words comprising a 64-bit Lisp_Object are in sync. As Eli was very > >> opposed to the idea of removing WIDE_EMACS_INT again, we might have to > >> find a workaround there.) > > > > mean that the wide-int 32-bit build is now in trouble? > > Yes, it does. All scanning functions need to be written to deal with > half-written Lisp_Object values in that case. (Easier than it sounds > because we USE_LSB_TAG). > > > Or did you install some workaround for the above? > > Not yet :-) Hopefully, soon then?
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Sat, 08 Feb 2025 12:29:02 GMT) Full text and rfc822 format available.Message #73 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> protonmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: gerd.moellmann <at> gmail.com, 76091 <at> debbugs.gnu.org, telegraph <at> gmx.net, eller.helmut <at> gmail.com Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Sat, 08 Feb 2025 12:28:12 +0000
"Eli Zaretskii" <eliz <at> gnu.org> writes: >> Date: Sat, 08 Feb 2025 10:24:01 +0000 >> From: Pip Cet <pipcet <at> protonmail.com> >> Cc: gerd.moellmann <at> gmail.com, eller.helmut <at> gmail.com, telegraph <at> gmx.net, 76091 <at> debbugs.gnu.org >> >> "Eli Zaretskii" <eliz <at> gnu.org> writes: >> >> >> Date: Fri, 07 Feb 2025 19:43:18 +0000 >> >> From: Pip Cet <pipcet <at> protonmail.com> >> >> Cc: Helmut Eller <eller.helmut <at> gmail.com>, Gregor Zattler <telegraph <at> gmx.net>, Eli Zaretskii <eliz <at> gnu.org>, 76091-done <at> debbugs.gnu.org >> >> >> >> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes: >> >> >> >> >>> Well, yes. I'll split it up into individual patches, so we can review >> >> >>> them one by one? >> >> >> >> >> >> Not necessary, but thanks. >> >> > >> >> > I'm through. Except for the shrinking case that you already mentioned I haven't found other problems. >> >> > >> >> > So LGTM. >> >> >> >> Thanks! >> >> >> >> Hope I didn't break anything, but I just pushed the series. Please feel >> >> free to revert or fix as appropriate! >> > >> > Here I get compilation warnings: >> > >> > igc.c: In function 'igc_realloc_ambig': >> > igc.c:3324:55: warning: potential null pointer dereference [-Wnull-dereference] >> > 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; >> > | ~~~~^~~~~~ >> > igc.c:3324:36: warning: potential null pointer dereference [-Wnull-dereference] >> > 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; >> > | ~~~~^~~~ >> > igc.c:3324:55: warning: potential null pointer dereference [-Wnull-dereference] >> > 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; >> > | ~~~~^~~~~~ >> > igc.c:3324:36: warning: potential null pointer dereference [-Wnull-dereference] >> > 3324 | ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start; >> > | ~~~~^~~~ >> > igc.c: In function 'igc_xpalloc_exact': >> > igc.c:3397:27: warning: argument to variable-length array may be too large [-Wvla-larger-than=] >> > 3397 | volatile mps_word_t area[(item_size + (sizeof (mps_word_t) - 1)) >> > | ^~~~ >> > igc.c:3397:27: note: limit is 4031 bytes, but argument may be as large as 4294967292 >> > igc.c: In function 'igc_xnrealloc_ambig': >> > igc.c:3415:57: warning: potential null pointer dereference [-Wnull-dereference] >> > 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; >> > | ~~~~^~~~~~ >> > igc.c:3415:38: warning: potential null pointer dereference [-Wnull-dereference] >> > 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; >> > | ~~~~^~~~ >> > igc.c:3415:57: warning: potential null pointer dereference [-Wnull-dereference] >> > 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; >> > | ~~~~^~~~~~ >> > igc.c:3415:38: warning: potential null pointer dereference [-Wnull-dereference] >> > 3415 | ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start; >> > | ~~~~^~~~ >> > >> > Most of them seem to be because root_find can return NULL. The nit >> >> Those are harmless; I'll add an eassert (r), that should prevent the >> warnings (together with Gerd's fix for the igc_realloc (NULL) case). > > Not sure if you already did, but: > > . I still see the warnings, and > . this is an optimized build, so eassert compiles to nothing Oh, thanks! Yeah, I can see them in optimized builds, and they require eassume, not eassert. I'll suggest a patch once I've thought of a good way to avoid those, but for now, we just might have to ignore the warnings. >> > Also, does this: >> > >> >> (Of course, with WIDE_EMACS_INT, mps_word_t is not good enough; unless >> >> we carefully write the scan function not to assume that the two >> >> half-words comprising a 64-bit Lisp_Object are in sync. As Eli was very >> >> opposed to the idea of removing WIDE_EMACS_INT again, we might have to >> >> find a workaround there.) >> > >> > mean that the wide-int 32-bit build is now in trouble? >> >> Yes, it does. All scanning functions need to be written to deal with >> half-written Lisp_Object values in that case. (Easier than it sounds >> because we USE_LSB_TAG). >> >> > Or did you install some workaround for the above? >> >> Not yet :-) > > Hopefully, soon then? I don't think there are any fundamental problems there, but it needs some time and the setjmp() issues seem more important right now. (Two issues: nativecomp uses %rbp and may call setjmp directly, which scrambles the %rbp value before saving it in a jmp_buf. And it seems that push_handler_nosignal allocates the jmp_buf from a non-root but doesn't trace it in any way whatsoever. I have no idea why that isn't causing more frequent crashes....) Pip
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Sun, 09 Feb 2025 17:25:01 GMT) Full text and rfc822 format available.Message #76 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> protonmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: gerd.moellmann <at> gmail.com, 76091 <at> debbugs.gnu.org, telegraph <at> gmx.net, eller.helmut <at> gmail.com Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Sun, 09 Feb 2025 17:24:11 +0000
Pip Cet <pipcet <at> protonmail.com> writes: > Oh, thanks! Yeah, I can see them in optimized builds, and they require > eassume, not eassert. I'll suggest a patch once I've thought of a good > way to avoid those, but for now, we just might have to ignore the > warnings. Okay, patch pushed. I still see warnings for some builds, but I don't really know how to fix them. Also fixed a minor oversight which caused trouble in the print code in !HAVE_MPS builds. >>> > Also, does this: >>> > >>> >> (Of course, with WIDE_EMACS_INT, mps_word_t is not good enough; unless >>> >> we carefully write the scan function not to assume that the two >>> >> half-words comprising a 64-bit Lisp_Object are in sync. As Eli was very >>> >> opposed to the idea of removing WIDE_EMACS_INT again, we might have to >>> >> find a workaround there.) >>> > >>> > mean that the wide-int 32-bit build is now in trouble? >>> >>> Yes, it does. All scanning functions need to be written to deal with >>> half-written Lisp_Object values in that case. (Easier than it sounds >>> because we USE_LSB_TAG). >>> >>> > Or did you install some workaround for the above? >>> >>> Not yet :-) >> >> Hopefully, soon then? > > I don't think there are any fundamental problems there, but it needs > some time and the setjmp() issues seem more important right now. > > (Two issues: nativecomp uses %rbp and may call setjmp directly, which > scrambles the %rbp value before saving it in a jmp_buf. > > And it seems that push_handler_nosignal allocates the jmp_buf from a > non-root but doesn't trace it in any way whatsoever. I have no idea why > that isn't causing more frequent crashes....) I think both these issues need fixing to avoid crashes with unusual optimization options, but they should be fine for non-LTO builds. Pip
bug-gnu-emacs <at> gnu.org
:bug#76091
; Package emacs
.
(Sun, 09 Feb 2025 19:41:01 GMT) Full text and rfc822 format available.Message #79 received at 76091 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Pip Cet <pipcet <at> protonmail.com> Cc: gerd.moellmann <at> gmail.com, 76091 <at> debbugs.gnu.org, telegraph <at> gmx.net, eller.helmut <at> gmail.com Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Sun, 09 Feb 2025 21:40:13 +0200
> Date: Sun, 09 Feb 2025 17:24:11 +0000 > From: Pip Cet <pipcet <at> protonmail.com> > Cc: gerd.moellmann <at> gmail.com, eller.helmut <at> gmail.com, telegraph <at> gmx.net, 76091 <at> debbugs.gnu.org > > Pip Cet <pipcet <at> protonmail.com> writes: > > > Oh, thanks! Yeah, I can see them in optimized builds, and they require > > eassume, not eassert. I'll suggest a patch once I've thought of a good > > way to avoid those, but for now, we just might have to ignore the > > warnings. > > Okay, patch pushed. I still see warnings for some builds, but I don't > really know how to fix them. Thanks, those warnings are gone now.
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Mon, 10 Mar 2025 11:24:12 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.