* bug#65198: 29.1; Emacs29.1 crash in function face_for_font @ 2023-08-10 9:57 张云峰 2023-08-10 10:06 ` Eli Zaretskii 0 siblings, 1 reply; 14+ messages in thread From: 张云峰 @ 2023-08-10 9:57 UTC (permalink / raw) To: 65198 [-- Attachment #1: Type: text/plain, Size: 23425 bytes --] In GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0) of 2023-08-10 built on zayfen Windowing system distributor 'The X.Org Foundation', version 11.0.12201001 System Description: Ubuntu 22.04.3 LTS Configured features: CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LC_MONETARY: zh_CN.UTF-8 value of $LC_NUMERIC: zh_CN.UTF-8 value of $LC_TIME: zh_CN.UTF-8 value of $LANG: zh_CN.UTF-8 value of $XMODIFIERS: @im=fcitx5 locale-coding-system: utf-8-unix Major mode: Dashboard Minor modes in effect: global-tempel-abbrev-mode: t tempel-abbrev-mode: t editorconfig-mode: t gcmh-mode: t eros-mode: t undo-fu-session-global-mode: t which-function-mode: t global-subword-mode: t subword-mode: t desktop-save-mode: t global-so-long-mode: t savehist-mode: t save-place-mode: t minibuffer-depth-indicate-mode: t delete-selection-mode: t pixel-scroll-precision-mode: t winner-mode: t windmove-mode: t global-treesit-auto-mode: t dirvish-override-dired-mode: t vertico-mode: t all-the-icons-completion-mode: t marginalia-mode: t doom-modeline-mode: t which-key-mode: t global-auto-revert-mode: t display-time-mode: t recentf-mode: t general-override-mode: t override-global-mode: t straight-use-package-mode: t straight-package-neutering-mode: t straight-live-modifications-mode: t puni-global-mode: t puni-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tab-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t buffer-read-only: 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 Features: (shadow sort disp-table spell-fu ispell mail-extr network-stream nsm display-line-numbers hl-line hideshow page-break-lines tempel-collection tempel rainbow-delimiters highlight-numbers parent-mode symbol-overlay hl-todo flycheck-posframe posframe flycheck find-func jka-compr let-alist lsp-bridge lsp-bridge-org-babel lsp-bridge-lsp-installer lsp-bridge-diagnostic lsp-bridge-code-action acm acm-quick-access acm-backend-copilot acm-backend-codeium array acm-backend-citre acm-backend-tailwind acm-backend-tabnine acm-backend-telega acm-backend-tempel acm-backend-search-sdcv-words acm-backend-search-file-words acm-backend-path acm-backend-lsp acm-backend-elisp acm-backend-yas yasnippet-snippets yasnippet acm-icon svg dom lsp-bridge-call-hierarchy lsp-bridge-peek lsp-bridge-jdtls lsp-bridge-ref grep compile comint ansi-osc ansi-color lsp-bridge-epc acm-frame diff markdown-mode noutline outline warnings editorconfig editorconfig-core editorconfig-core-handle editorconfig-fnmatch ligature emacsbug message yank-media puny rfc822 mml mml-sec epa epg rfc6068 epg-config gnus-util time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils puni gcmh server multiple-cursors mc-separate-operations rectangular-region-mode mc-mark-pop mc-edit-lines iedit iedit-lib mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors multiple-cursors-core rect rivenemacs-lazy mule-util cursor-sensor vertico-repeat add-log derived vlf-setup advice eros elisp-demos re-elisp-extras undo-fu-session undo-fu orderless which-func imenu cap-words superword subword desktop frameset so-long savehist saveplace mb-depth delsel pixel-scroll cua-base winner battery dbus face-remap pulse color xml windmove rivenemacs-loaded treesit-auto eldoc-box icons dirvish transient format-spec dired dired-loaddefs vertico-directory vertico all-the-icons-completion marginalia doom-modeline doom-modeline-segments doom-modeline-env doom-modeline-core shrink-path f f-shortdoc s dash nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon nerd-icons-data-powerline nerd-icons-data-octicon nerd-icons-data-pomicon nerd-icons-data-ipsicon compat which-key exec-path-from-shell dracula-theme autorevert filenotify re-python python-pytest-autoloads projectile-autoloads nose-autoloads py-isort-autoloads pyimport-autoloads shut-up-autoloads pip-requirements-autoloads rust rust-mode-autoloads jsdoc-autoloads sass-mode-autoloads haml-mode-autoloads web-mode-autoloads emmet-mode-autoloads re-lua lua-mode-autoloads re-popup eldoc-box-autoloads re-indent aggressive-indent-mode-autoloads re-fold ts-fold-indicators-autoloads ts-fold-autoloads fringe-helper-autoloads tree-sitter-autoloads re-formatter clang-format-autoloads editorconfig-autoloads apheleia-autoloads re-treesit treesit-auto-autoloads treesit re-jump smart-jump xref dumb-jump-autoloads re-hackernews hackernews-autoloads re-leetcode leetcode-autoloads log4e-autoloads graphql-autoloads re-window re-binary re-workspaces re-tty xclip-autoloads re-tools bitwarden-autoloads logview-autoloads datetime-autoloads extmap-autoloads journalctl-mode-autoloads pkgbuild-mode-autoloads systemd-autoloads docker-compose-mode-autoloads docker-autoloads aio-autoloads multi-vterm-autoloads vterm-autoloads tldr-autoloads ssh-deploy-autoloads re-files treemacs-all-the-icons-autoloads treemacs-autoloads cfrs-autoloads pfuture-autoloads vlf-autoloads dirvish-autoloads re-natural-langs lexic-autoloads go-translate-autoloads spell-fu-autoloads re-latex auctex-latexmk-autoloads auctex-autoloads tex-site re-docs edraw-autoloads crdt-autoloads nov-autoloads esxml-autoloads kv-autoloads pdf-tools-autoloads re-extra crux-autoloads re-org consult-org-roam-autoloads org-roam-ui-autoloads websocket-autoloads simple-httpd-autoloads org-roam-autoloads org-present-autoloads org-fragtog-autoloads org-modern-autoloads org-appear-autoloads ox-hugo-autoloads tomelr-autoloads engrave-faces-autoloads org-contrib-autoloads re-data ob-d2-autoloads d2-mode-autoloads ob-mermaid-autoloads mermaid-mode-autoloads plantuml-mode-autoloads graphviz-dot-mode-autoloads json-mode-autoloads json-snatcher-autoloads toml-mode-autoloads yaml-pro-autoloads yaml-mode-autoloads csv-mode-autoloads re-lisp eros-autoloads info-colors-autoloads helpful-autoloads elisp-refs-autoloads elisp-demos-autoloads sly-macrostep-autoloads macrostep-geiser-autoloads macrostep-autoloads cider-autoloads sesman-autoloads spinner-autoloads queue-autoloads parseedn-autoloads parseclj-autoloads clojure-mode-autoloads geiser-stklos-autoloads geiser-racket-autoloads geiser-mit-autoloads geiser-kawa-autoloads geiser-guile-autoloads geiser-gauche-autoloads geiser-gambit-autoloads geiser-chicken-autoloads geiser-chibi-autoloads geiser-chez-autoloads geiser-autoloads racket-mode-autoloads sly-autoloads re-lsp-bridge yasnippet-snippets-autoloads yasnippet-autoloads re-debug disaster-autoloads realgud-autoloads realgud-recursive-autoloads test-simple-autoloads loc-changes-autoloads load-relative-autoloads re-checkers re-project consult-project-extra-autoloads re-vc repo-autoloads hydra ring lv git-modes-autoloads git-timemachine-autoloads diff-hl-autoloads emojify-autoloads forge-autoloads yaml-autoloads markdown-mode-autoloads ghub-autoloads treepy-autoloads closql-autoloads emacsql-autoloads magit-todos-autoloads pcre2el-autoloads async-autoloads magit-autoloads magit-section-autoloads git-commit-autoloads with-editor-autoloads re-multi-cursors multiple-cursors-autoloads iedit-autoloads re-undo undo-fu-session-autoloads undo-fu-autoloads vundo-autoloads re-daemon re-editor rainbow-mode-autoloads hl-todo-autoloads anzu-autoloads expand-region-autoloads highlight-numbers-autoloads parent-mode-autoloads rainbow-delimiters-autoloads ligature-autoloads pcache-autoloads tempel-collection-autoloads edmacro kmacro tempel-autoloads re-ui focus-autoloads page-break-lines-autoloads mixed-pitch-autoloads visual-fill-column-autoloads svg-lib-autoloads re-font re-completion vertico-prescient-autoloads prescient-autoloads find-file-in-project-autoloads vertico-autoloads orderless-autoloads all-the-icons-completion-autoloads marginalia-autoloads embark-consult-autoloads embark-autoloads consult-autoloads re-core-ui doom-modeline-autoloads shrink-path-autoloads f-autoloads nerd-icons-autoloads bookmark text-property-search pp project time dashboard dashboard-widgets all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons recentf tree-widget wid-edit ffap thingatpt dashboard-autoloads all-the-icons-autoloads modus-themes-autoloads re-defuns re-emacs-keybindings hydra-autoloads lv-autoloads re-general-ready general general-autoloads which-key-autoloads re-gc gcmh-autoloads re-builtin re-bootstrap explain-pause-mode-autoloads exec-path-from-shell-autoloads use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key use-package-core straight-autoloads cl-extra help-mode straight re-splash re-defaults pcase rx re-loaddefs ace-window-autoloads avy-autoloads dracula-theme-autoloads esup-autoloads flycheck-posframe-autoloads flycheck-rust-autoloads fussy-autoloads flx-autoloads goto-last-change-autoloads js-doc-autoloads package-lint-autoloads pkg-info-autoloads epl-autoloads poetry-autoloads popup-autoloads posframe-autoloads puni-autoloads easy-mmode pyvenv-autoloads quickrun-autoloads ht-autoloads dash-autoloads s-autoloads smart-jump-autoloads symbol-overlay-autoloads tablist-autoloads transient-autoloads info compat-autoloads finder-inf tsc-autoloads package browse-url 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 cl-loaddefs cl-lib re-vars china-util 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 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 dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process emacs) Memory information: ((conses 16 789144 521644) (symbols 48 36361 10) (strings 32 239057 97417) (string-bytes 1 6986378) (vectors 16 62923) (vector-slots 8 1738733 519301) (floats 8 794 931) (intervals 56 868 345) (buffers 984 17)) ;;;;; GDB INFO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. 0x00005555556859b8 in face_for_font (f=0x555561746d40, font_object=0x555558465ec5, base_face=base_face@entry=0x0) at xfaces.c:4931 4931 base_face = base_face->ascii_face; (gdb) bt #0 0x00005555556859b8 in face_for_font (f=0x555561746d40, font_object=0x555558465ec5, base_face=base_face@entry=0x0) at xfaces.c:4931 #1 0x00005555555ee682 in get_next_display_element (it=it@entry=0x7fffffff6c90) at xdisp.c:8322 #2 0x00005555555eacb0 in move_it_in_display_line_to (it=it@entry=0x7fffffff6c90, to_charpos=to_charpos@entry=412, to_x=to_x@entry=2147483647, op=op@entry=(MOVE_TO_X | MOVE_TO_POS)) at xdisp.c:9829 #3 0x00005555555f002a in move_it_to (it=0x7fffffff6c90, to_charpos=412, to_x=<optimized out>, to_y=<optimized out>, to_vpos=<optimized out>, op=11) at xdisp.c:10500 #4 0x0000555555604e4e in window_text_pixel_size (window=<optimized out>, from=<optimized out>, to=<optimized out>, x_limit=0x1ce2, y_limit=<optimized out>, mode_lines=0x0, ignore_line_at_end=0x0) at xdisp.c:11455 #5 0x0000555555605ae6 in Fwindow_text_pixel_size (window=0x555561746f95, from=0x0, to=0x0, x_limit=0x1ce2, y_limit=0xaf2, mode_lines=0x0, ignore_line_at_end=0x0) at xdisp.c:11629 #6 0x0000555555771442 in funcall_subr (subr=0x555555d0e5a0 <Swindow_text_pixel_size>, numargs=numargs@entry=5, args=args@entry=0x7ffff0bff1f0) at eval.c:3046 #7 0x00005555557b6523 in exec_byte_code (fun=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at bytecode.c:809 #8 0x000055555576df83 in Ffuncall (nargs=6, args=0x7fffffff9570) at eval.c:2995 #9 0x0000555555771ca7 in eval_sub (form=<optimized out>) at eval.c:2470 #10 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436 #11 FletX (args=0x55555d67e733) at eval.c:958 #12 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #13 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #14 funcall_lambda (fun=0x55555d67e013, nargs=3, arg_vector=0x7fffffff9810) at eval.c:3233 #15 0x000055555577347f in apply_lambda (fun=<optimized out>, args=<optimized out>, count=...) at eval.c:3103 #16 0x0000555555771ad6 in eval_sub (form=<optimized out>) at eval.c:2588 #17 0x0000555555773eb5 in Fprogn (body=0x55555ef746e3) at eval.c:436 #18 FletX (args=0x55555ef74b43) at eval.c:958 #19 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #20 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #21 funcall_lambda (fun=0x55555ef738c3, nargs=0, arg_vector=0x7fffffff9b00) at eval.c:3233 #22 0x000055555577347f in apply_lambda (fun=<optimized out>, args=<optimized out>, count=...) at eval.c:3103 #23 0x0000555555771ad6 in eval_sub (form=<optimized out>) at eval.c:2588 #24 0x0000555555773a9d in Fprogn (body=0x0) at eval.c:436 #25 Flet (args=<optimized out>) at eval.c:1026 #26 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #27 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #28 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436 #29 FletX (args=0x55555ef74d83) at eval.c:958 #30 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #31 0x000055555577212d in Fprogn (body=0x0) at eval.c:436 #32 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #33 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #34 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #35 funcall_lambda (fun=0x55555ef74e93, nargs=1, arg_vector=0x7fffffffa170) at eval.c:3233 #36 0x000055555577347f in apply_lambda (fun=<optimized out>, args=<optimized out>, count=...) at eval.c:3103 #37 0x0000555555771ad6 in eval_sub (form=<optimized out>) at eval.c:2588 #38 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #39 0x000055555577212d in Fprogn (body=0x0) at eval.c:436 #40 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #41 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #42 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436 #43 FletX (args=0x55555f141f93) at eval.c:958 #44 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #45 0x000055555577212d in Fprogn (body=0x0, body@entry=0x55555f141fc3) at eval.c:436 #46 0x000055555575df5c in Fsave_current_buffer (args=0x55555f141fc3) at editfns.c:874 #47 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 --Type <RET> for more, q to quit, c to continue without paging-- #48 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #49 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436 #50 FletX (args=0x55555f141863) at eval.c:958 #51 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #52 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436 #53 FletX (args=0x55555f141893) at eval.c:958 #54 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #55 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #56 funcall_lambda (fun=0x55555f141953, nargs=2, arg_vector=0x7fffffffaab0) at eval.c:3233 #57 0x000055555577347f in apply_lambda (fun=<optimized out>, args=<optimized out>, count=...) at eval.c:3103 #58 0x0000555555771ad6 in eval_sub (form=<optimized out>) at eval.c:2588 #59 0x00005555557745cb in Feval (form=0x55555e11a423, lexical=<optimized out>) at eval.c:2361 #60 0x0000555555771db9 in eval_sub (form=<optimized out>) at eval.c:2501 #61 0x0000555555772ced in Fprogn (body=0x55555f0dc2a3) at eval.c:436 #62 funcall_lambda (fun=0x55555f0dbcf3, nargs=1, arg_vector=0x7fffffffadf8) at eval.c:3233 #63 0x000055555576df83 in Ffuncall (nargs=2, args=0x7fffffffadf0) at eval.c:2995 #64 0x000055555576e472 in Fapply (nargs=2, args=0x7fffffffadf0) at eval.c:2623 #65 0x0000555555771ca7 in eval_sub (form=<optimized out>) at eval.c:2470 #66 0x0000555555773d06 in FletX (args=0x55555d799df3) at /home/ zhangyunfeng@pudu.com/Download/emacs-emacs-29.1/src/lisp.h:1529 #67 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #68 0x0000555555774453 in internal_lisp_condition_case (var=<optimized out>, bodyform=<optimized out>, handlers=<optimized out>) at eval.c:1428 #69 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #70 0x0000555555772a25 in Fprogn (body=0x0) at eval.c:436 #71 Fcond (args=<optimized out>) at eval.c:416 #72 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #73 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436 #74 FletX (args=0x55555d799fa3) at eval.c:958 #75 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #76 0x0000555555773a9d in Fprogn (body=0x0) at eval.c:436 #77 Flet (args=<optimized out>) at eval.c:1026 #78 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #79 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #80 funcall_lambda (fun=0x55555d799903, nargs=4, arg_vector=0x7fffffffb558) at eval.c:3233 #81 0x000055555576df83 in Ffuncall (nargs=5, args=0x7fffffffb550) at eval.c:2995 #82 0x000055555576e200 in Fapply (nargs=3, args=0x7fffffffb5f0) at eval.c:2666 #83 0x0000555555771ca7 in eval_sub (form=<optimized out>) at eval.c:2470 #84 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #85 funcall_lambda (fun=0x55556088b4e3, nargs=1, arg_vector=0x7fffffffb778) at eval.c:3233 #86 0x000055555576df83 in Ffuncall (nargs=2, args=0x7fffffffb770) at eval.c:2995 #87 0x0000555555771ca7 in eval_sub (form=<optimized out>) at eval.c:2470 #88 0x0000555555773891 in Flet (args=<optimized out>) at eval.c:996 #89 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #90 0x0000555555774453 in internal_lisp_condition_case (var=<optimized out>, bodyform=<optimized out>, handlers=<optimized out>) at eval.c:1428 #91 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #92 0x0000555555773a9d in Fprogn (body=0x0) at eval.c:436 #93 Flet (args=<optimized out>) at eval.c:1026 #94 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #95 0x0000555555772a25 in Fprogn (body=0x0) at eval.c:436 #96 Fcond (args=<optimized out>) at eval.c:416 #97 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 --Type <RET> for more, q to quit, c to continue without paging-- #98 0x0000555555773a9d in Fprogn (body=0x0) at eval.c:436 #99 Flet (args=<optimized out>) at eval.c:1026 #100 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #101 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #102 funcall_lambda (fun=0x55555d741ba3, nargs=3, arg_vector=0x7fffffffbec0) at eval.c:3233 #103 0x000055555577347f in apply_lambda (fun=<optimized out>, args=<optimized out>, count=...) at eval.c:3103 #104 0x0000555555771ad6 in eval_sub (form=<optimized out>) at eval.c:2588 #105 0x00005555557721e7 in Fsetq (args=<optimized out>) at eval.c:483 #106 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #107 0x0000555555774453 in internal_lisp_condition_case (var=<optimized out>, bodyform=<optimized out>, handlers=<optimized out>) at eval.c:1428 #108 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #109 0x0000555555773eb5 in Fprogn (body=0x55555d6e6453) at eval.c:436 #110 FletX (args=0x55555d6e63d3) at eval.c:958 #111 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #112 0x000055555577212d in Fprogn (body=0x0) at eval.c:436 #113 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #114 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449 #115 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #116 funcall_lambda (fun=0x55555d6e5d13, nargs=0, arg_vector=0x7ffff0bff058) at eval.c:3233 #117 0x000055555576df83 in Ffuncall (nargs=1, args=0x7ffff0bff050) at eval.c:2995 #118 0x000055555576e398 in Fapply (nargs=2, args=0x7ffff0bff050) at eval.c:2619 #119 0x00005555557b6523 in exec_byte_code (fun=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at bytecode.c:809 #120 0x000055555576df83 in Ffuncall (nargs=nargs@entry=2, args=args@entry=0x7fffffffc760) at eval.c:2995 #121 0x00005555556e74de in call1 (arg1=0x55555baa90ed, fn=0xfd80) at /home/ zhangyunfeng@pudu.com/Download/emacs-emacs-29.1/src/lisp.h:3248 #122 timer_check_2 (idle_timers=<optimized out>, timers=<optimized out>) at keyboard.c:4690 #123 timer_check () at keyboard.c:4756 #124 0x00005555557c4814 in wait_reading_process_output (time_limit=time_limit@entry=30, nsecs=nsecs@entry=0, read_kbd=read_kbd@entry=-1, do_display=do_display@entry=true, wait_for_cell=wait_for_cell@entry=0x0, wait_proc=wait_proc@entry=0x0, just_wait_proc=<optimized out>) at process.c:5386 #125 0x00005555555bb074 in sit_for (timeout=timeout@entry=0x7a, reading=reading@entry=true, display_option=display_option@entry=1) at dispnew.c:6264 #126 0x00005555556ef589 in read_char (commandflag=1, map=0x55555de3ab13, prev_event=0x0, used_mouse_menu=0x7fffffffd1cb, end_time=0x0) at keyboard.c:2881 #127 0x00005555556efe58 in read_key_sequence (keybuf=<optimized out>, prompt=0x0, dont_downcase_last=<optimized out>, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=<optimized out>) at keyboard.c:10083 #128 0x00005555556f1a60 in command_loop_1 () at keyboard.c:1384 #129 0x000055555576c587 in internal_condition_case (bfun=bfun@entry=0x5555556f1880 <command_loop_1>, handlers=handlers@entry=0x90, hfun=hfun@entry=0x5555556e4b40 <cmd_error>) at eval.c:1474 #130 0x00005555556dd01e in command_loop_2 (handlers=handlers@entry=0x90) at keyboard.c:1133 #131 0x000055555576c4c9 in internal_catch (tag=tag@entry=0x10080, func=func@entry=0x5555556dcff0 <command_loop_2>, arg=arg@entry=0x90) at eval.c:1197 #132 0x00005555556dcfb9 in command_loop () at keyboard.c:1111 #133 0x00005555556e4698 in recursive_edit_1 () at keyboard.c:720 #134 0x00005555556e4a40 in Frecursive_edit () at keyboard.c:803 #135 0x00005555555b00d5 in main (argc=<optimized out>, argv=<optimized out>) at emacs.c:2529 [-- Attachment #2: Type: text/html, Size: 26347 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#65198: 29.1; Emacs29.1 crash in function face_for_font 2023-08-10 9:57 bug#65198: 29.1; Emacs29.1 crash in function face_for_font 张云峰 @ 2023-08-10 10:06 ` Eli Zaretskii [not found] ` <CA+cG9GxATqwi7-aFEvma0zi3AZM5y6eshU510oPFohuKwhHF4w@mail.gmail.com> 0 siblings, 1 reply; 14+ messages in thread From: Eli Zaretskii @ 2023-08-10 10:06 UTC (permalink / raw) To: 张云峰; +Cc: 65198 > From: 张云峰 <zhangyunfeng0101@gmail.com> > Date: Thu, 10 Aug 2023 17:57:20 +0800 > > ;;;;; GDB INFO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. > 0x00005555556859b8 in face_for_font (f=0x555561746d40, font_object=0x555558465ec5, > base_face=base_face@entry=0x0) at xfaces.c:4931 > 4931 base_face = base_face->ascii_face; > (gdb) bt > #0 0x00005555556859b8 in face_for_font (f=0x555561746d40, font_object=0x555558465ec5, > base_face=base_face@entry=0x0) at xfaces.c:4931 > #1 0x00005555555ee682 in get_next_display_element (it=it@entry=0x7fffffff6c90) at xdisp.c:8322 > #2 0x00005555555eacb0 in move_it_in_display_line_to (it=it@entry=0x7fffffff6c90, > to_charpos=to_charpos@entry=412, to_x=to_x@entry=2147483647, op=op@entry=(MOVE_TO_X > | MOVE_TO_POS)) > at xdisp.c:9829 > #3 0x00005555555f002a in move_it_to (it=0x7fffffff6c90, to_charpos=412, to_x=<optimized out>, > to_y=<optimized out>, to_vpos=<optimized out>, op=11) at xdisp.c:10500 > #4 0x0000555555604e4e in window_text_pixel_size > (window=<optimized out>, from=<optimized out>, to=<optimized out>, x_limit=0x1ce2, > y_limit=<optimized out>, mode_lines=0x0, ignore_line_at_end=0x0) at xdisp.c:11455 > #5 0x0000555555605ae6 in Fwindow_text_pixel_size (window=0x555561746f95, from=0x0, > to=0x0, x_limit=0x1ce2, y_limit=0xaf2, mode_lines=0x0, ignore_line_at_end=0x0) at xdisp.c:11629 > #6 0x0000555555771442 in funcall_subr (subr=0x555555d0e5a0 <Swindow_text_pixel_size>, > numargs=numargs@entry=5, args=args@entry=0x7ffff0bff1f0) at eval.c:3046 Thanks. Any chance of a recipe to reproduce this crash? The backtrace indicates that the code which crashed was called from a timer function -- any idea what timer was that? ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <CA+cG9GxATqwi7-aFEvma0zi3AZM5y6eshU510oPFohuKwhHF4w@mail.gmail.com>]
* bug#65198: 29.1; Emacs29.1 crash in function face_for_font [not found] ` <CA+cG9GxATqwi7-aFEvma0zi3AZM5y6eshU510oPFohuKwhHF4w@mail.gmail.com> @ 2023-08-10 17:22 ` Eli Zaretskii 2023-08-10 17:58 ` 张云峰 0 siblings, 1 reply; 14+ messages in thread From: Eli Zaretskii @ 2023-08-10 17:22 UTC (permalink / raw) To: 张云峰; +Cc: 65198 > From: 张云峰 <zhangyunfeng0101@gmail.com> > Date: Thu, 10 Aug 2023 22:56:23 +0800 > > finally I fix this bug by removing a piece of code: > > (defun +set-chinese-font() > (interactive) > (set-fontset-font > t > 'han > (cond > ((string-equal system-type "windows-nt") > (cond > ((member "Microsoft YaHei" (font-family-list)) "Microsoft YaHei") > ((member "Microsoft JhengHei" (font-family-list)) "Microsoft JhengHei") > ((member "SimHei" (font-family-list)) "SimHei"))) > ((string-equal system-type "darwin") > (cond > ((member "Hei" (font-family-list)) "Hei") > ((member "Heiti SC" (font-family-list)) "Heiti SC") > ((member "Heiti TC" (font-family-list)) "Heiti TC"))) > ((string-equal system-type "gnu/linux") > (cond > ((member "WenQuanYi Micro Hei" (font-family-list)) "WenQuanYi > Micro Hei")))))) > > (add-hook 'buffer-list-update-hook '+set-chinese-font) I guess one of these fonts is faulty in some way? Or maybe you have neither of these fonts on that system, which would effectively specify that characters of the han script have no font at all? Of course, normally the latter should just cause the han characters to display as hex codes, not to cause crashes... Are you saying that just having the above in your customization and typing some Han character causes Emacs to crash? P.S. And please use Reply All to reply, so that the bug address is kept on the CC list. ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#65198: 29.1; Emacs29.1 crash in function face_for_font 2023-08-10 17:22 ` Eli Zaretskii @ 2023-08-10 17:58 ` 张云峰 2023-08-10 18:36 ` Eli Zaretskii 0 siblings, 1 reply; 14+ messages in thread From: 张云峰 @ 2023-08-10 17:58 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 65198 [-- Attachment #1.1: Type: text/plain, Size: 1791 bytes --] [image: 2023-08-11_01-53.png] when popup frame has the warning-icon (marked in picture) , emacs will crash immediately. Eli Zaretskii <eliz@gnu.org> 于2023年8月11日周五 01:22写道: > > From: 张云峰 <zhangyunfeng0101@gmail.com> > > Date: Thu, 10 Aug 2023 22:56:23 +0800 > > > > finally I fix this bug by removing a piece of code: > > > > (defun +set-chinese-font() > > (interactive) > > (set-fontset-font > > t > > 'han > > (cond > > ((string-equal system-type "windows-nt") > > (cond > > ((member "Microsoft YaHei" (font-family-list)) "Microsoft YaHei") > > ((member "Microsoft JhengHei" (font-family-list)) "Microsoft > JhengHei") > > ((member "SimHei" (font-family-list)) "SimHei"))) > > ((string-equal system-type "darwin") > > (cond > > ((member "Hei" (font-family-list)) "Hei") > > ((member "Heiti SC" (font-family-list)) "Heiti SC") > > ((member "Heiti TC" (font-family-list)) "Heiti TC"))) > > ((string-equal system-type "gnu/linux") > > (cond > > ((member "WenQuanYi Micro Hei" (font-family-list)) "WenQuanYi > > Micro Hei")))))) > > > > (add-hook 'buffer-list-update-hook '+set-chinese-font) > > I guess one of these fonts is faulty in some way? Or maybe you have > neither of these fonts on that system, which would effectively specify > that characters of the han script have no font at all? Of course, > normally the latter should just cause the han characters to display as > hex codes, not to cause crashes... > > Are you saying that just having the above in your customization and > typing some Han character causes Emacs to crash? > > P.S. And please use Reply All to reply, so that the bug address is > kept on the CC list. > [-- Attachment #1.2: Type: text/html, Size: 2594 bytes --] [-- Attachment #2: 2023-08-11_01-53.png --] [-- Type: image/png, Size: 66428 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#65198: 29.1; Emacs29.1 crash in function face_for_font 2023-08-10 17:58 ` 张云峰 @ 2023-08-10 18:36 ` Eli Zaretskii 2023-08-11 0:15 ` 张云峰 0 siblings, 1 reply; 14+ messages in thread From: Eli Zaretskii @ 2023-08-10 18:36 UTC (permalink / raw) To: 张云峰; +Cc: 65198 > From: 张云峰 <zhangyunfeng0101@gmail.com> > Date: Fri, 11 Aug 2023 01:58:34 +0800 > Cc: 65198@debbugs.gnu.org > > 2023-08-11_01-53.png > when popup frame has the warning-icon (marked in picture) , emacs will crash immediately. Can you try the patch below and see if it prevents the crash in these cases? diff --git a/src/xdisp.c b/src/xdisp.c index 9cddcfe..b25bdc7 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -8312,9 +8312,14 @@ get_next_display_element (struct it *it) && success_p && FRAME_WINDOW_P (it->f)) { - struct face *face = FACE_FROM_ID (it->f, it->face_id); + struct face *face = FACE_FROM_ID_OR_NULL (it->f, it->face_id); - if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0) + if (!face) + { + it->what = IT_GLYPHLESS; + it->glyphless_method = GLYPHLESS_DISPLAY_EMPTY_BOX; + } + else if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0) { /* Automatic composition with glyph-string. */ Lisp_Object gstring = composition_gstring_from_id (it->cmp_it.id); ^ permalink raw reply related [flat|nested] 14+ messages in thread
* bug#65198: 29.1; Emacs29.1 crash in function face_for_font 2023-08-10 18:36 ` Eli Zaretskii @ 2023-08-11 0:15 ` 张云峰 2023-08-11 0:50 ` 张云峰 0 siblings, 1 reply; 14+ messages in thread From: 张云峰 @ 2023-08-11 0:15 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 65198 I've tested this patch, unfortunately, it doesn't work, still crashes GDB information: Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. 0x0000555555619516 in produce_glyphless_glyph () (gdb) bt #0 0x0000555555619516 in produce_glyphless_glyph () #1 0x0000555555640789 in gui_produce_glyphs () #2 0x0000555555623f70 in move_it_in_display_line_to () #3 0x000055555562935a in move_it_to () #4 0x000055555563e84f in window_text_pixel_size () #5 0x000055555563f526 in Fwindow_text_pixel_size () #6 0x00007fffe7dc07a8 in F6669742d6672616d652d746f2d6275666665722d31_fit_frame_to_buffer_1_0 () at /home/zayfen/github.com/emacs/src/../native-lisp/29.1.50-9e9f496f/preloaded/window-0d1b8b93-6f4eee58.eln #7 0x000055555576a032 in funcall_subr () #8 0x0000555555766ba1 in Ffuncall () #9 0x000055555576aa04 in eval_sub () #10 0x000055555576ce6d in FletX () #11 0x000055555576aba7 in eval_sub () #12 0x000055555576be0d in funcall_lambda () #13 0x000055555576c3ee in apply_lambda () #14 0x000055555576a49b in eval_sub () #15 0x000055555576ce6d in FletX () #16 0x000055555576aba7 in eval_sub () #17 0x000055555576be0d in funcall_lambda () #18 0x000055555576c3ee in apply_lambda () #19 0x000055555576a49b in eval_sub () #20 0x000055555576ca2d in Flet () #21 0x000055555576aba7 in eval_sub () #22 0x000055555576aba7 in eval_sub () #23 0x000055555576ce6d in FletX () #24 0x000055555576aba7 in eval_sub () #25 0x000055555576af0d in Fprogn () #26 0x000055555576aba7 in eval_sub () #27 0x000055555576aba7 in eval_sub () #28 0x000055555576be0d in funcall_lambda () #29 0x000055555576c3ee in apply_lambda () #30 0x000055555576a49b in eval_sub () #31 0x000055555576aba7 in eval_sub () #32 0x000055555576af0d in Fprogn () #33 0x000055555576aba7 in eval_sub () #34 0x000055555576aba7 in eval_sub () #35 0x000055555576ce6d in FletX () #36 0x000055555576aba7 in eval_sub () #37 0x000055555576af0d in Fprogn () #38 0x000055555575666c in Fsave_current_buffer () #39 0x000055555576aba7 in eval_sub () #40 0x000055555576aba7 in eval_sub () #41 0x000055555576ce6d in FletX () #42 0x000055555576aba7 in eval_sub () #43 0x000055555576ce6d in FletX () #44 0x000055555576aba7 in eval_sub () #45 0x000055555576be0d in funcall_lambda () #46 0x000055555576c3ee in apply_lambda () #47 0x000055555576a49b in eval_sub () #48 0x000055555576d66b in Feval () #49 0x000055555576ace1 in eval_sub () Eli Zaretskii <eliz@gnu.org> 于2023年8月11日周五 02:36写道: > > > From: 张云峰 <zhangyunfeng0101@gmail.com> > > Date: Fri, 11 Aug 2023 01:58:34 +0800 > > Cc: 65198@debbugs.gnu.org > > > > 2023-08-11_01-53.png > > when popup frame has the warning-icon (marked in picture) , emacs will crash immediately. > > Can you try the patch below and see if it prevents the crash in these > cases? > > diff --git a/src/xdisp.c b/src/xdisp.c > index 9cddcfe..b25bdc7 100644 > --- a/src/xdisp.c > +++ b/src/xdisp.c > @@ -8312,9 +8312,14 @@ get_next_display_element (struct it *it) > && success_p > && FRAME_WINDOW_P (it->f)) > { > - struct face *face = FACE_FROM_ID (it->f, it->face_id); > + struct face *face = FACE_FROM_ID_OR_NULL (it->f, it->face_id); > > - if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0) > + if (!face) > + { > + it->what = IT_GLYPHLESS; > + it->glyphless_method = GLYPHLESS_DISPLAY_EMPTY_BOX; > + } > + else if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0) > { > /* Automatic composition with glyph-string. */ > Lisp_Object gstring = composition_gstring_from_id (it->cmp_it.id); ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#65198: 29.1; Emacs29.1 crash in function face_for_font 2023-08-11 0:15 ` 张云峰 @ 2023-08-11 0:50 ` 张云峰 2023-08-11 6:12 ` Eli Zaretskii 0 siblings, 1 reply; 14+ messages in thread From: 张云峰 @ 2023-08-11 0:50 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 65198 more clear GDB info: Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. 0x0000555555618c06 in produce_glyphless_glyph (it=0x7fffffff67d0, for_no_font=for_no_font@entry=false, acronym=acronym@entry=0x0) at xdisp.c:31791 31791 font = face->font ? face->font : FRAME_FONT (it->f); (gdb) bt #0 0x0000555555618c06 in produce_glyphless_glyph (it=0x7fffffff67d0, for_no_font=for_no_font@entry=false, acronym=acronym@entry=0x0) at xdisp.c:31791 #1 0x000055555563f321 in gui_produce_glyphs (it=0x7fffffff67d0) at xdisp.c:32639 #2 0x00005555556232e5 in move_it_in_display_line_to (it=it@entry=0x7fffffff67d0, to_charpos=to_charpos@entry=382, to_x=to_x@entry=2147483647, op=op@entry=(MOVE_TO_X | MOVE_TO_POS)) at xdisp.c:9906 #3 0x000055555562859a in move_it_to (it=0x7fffffff67d0, to_charpos=382, to_x=<optimized out>, to_y=<optimized out>, to_vpos=<optimized out>, op=11) at xdisp.c:10505 #4 0x000055555563d3ae in window_text_pixel_size (window=<optimized out>, from=<optimized out>, to=<optimized out>, x_limit=0x1c9a, y_limit=<optimized out>, mode_lines=0x0, ignore_line_at_end=0x0) at xdisp.c:11460 #5 0x000055555563e046 in Fwindow_text_pixel_size (window=0x555556296d25, from=0x0, to=0x0, x_limit=0x1c9a, y_limit=0xc32, mode_lines=0x0, ignore_line_at_end=0x0) at xdisp.c:11634 #6 0x00007fffe7dc07a8 in F6669742d6672616d652d746f2d6275666665722d31_fit_frame_to_buffer_1_0 () at /home/zayfen/github.com/emacs/src/../native-lisp/29.1.50-24bd8136/preloaded/window-0d1b8b93-6f4eee58.eln #7 0x00005555557650c2 in funcall_subr (subr=0x7fffe8360178, numargs=5, args=<optimized out>) at eval.c:3049 #8 0x0000555555761d93 in Ffuncall (nargs=6, args=0x7fffffff9570) at eval.c:2995 #9 0x0000555555765a3d in eval_sub (form=<optimized out>) at eval.c:2470 #10 0x0000555555767ddd in Fprogn (body=0x0) at eval.c:436 #11 FletX (args=0x55555af1ff63) at eval.c:958 #12 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #13 0x0000555555766ded in Fprogn (body=0x0) at eval.c:436 #14 funcall_lambda (fun=0x55555af1fe93, nargs=3, arg_vector=0x7fffffff9830) at eval.c:3233 #15 0x000055555576739f in apply_lambda (fun=<optimized out>, args=<optimized out>, count=...) at eval.c:3103 #16 0x000055555576550b in eval_sub (form=<optimized out>) at eval.c:2588 #17 0x0000555555767ddd in Fprogn (body=0x555559f14b83) at eval.c:436 #18 FletX (args=0x555559f15073) at eval.c:958 #19 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #20 0x0000555555766ded in Fprogn (body=0x0) at eval.c:436 #21 funcall_lambda (fun=0x555559f13a93, nargs=0, arg_vector=0x7fffffff9b40) at eval.c:3233 --Type <RET> for more, q to quit, c to continue without paging-- #22 0x000055555576739f in apply_lambda (fun=<optimized out>, args=<optimized out>, count=...) at eval.c:3103 #23 0x000055555576550b in eval_sub (form=<optimized out>) at eval.c:2588 #24 0x00005555557679c5 in Fprogn (body=0x0) at eval.c:436 #25 Flet (args=<optimized out>) at eval.c:1026 #26 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #27 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #28 0x0000555555767ddd in Fprogn (body=0x0) at eval.c:436 #29 FletX (args=0x555559f15d73) at eval.c:958 #30 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #31 0x0000555555765f4d in Fprogn (body=0x0) at eval.c:436 #32 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #33 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #34 0x0000555555766ded in Fprogn (body=0x0) at eval.c:436 #35 funcall_lambda (fun=0x555559f15b63, nargs=1, arg_vector=0x7fffffffa1e0) at eval.c:3233 #36 0x000055555576739f in apply_lambda (fun=<optimized out>, args=<optimized out>, count=...) at eval.c:3103 #37 0x000055555576550b in eval_sub (form=<optimized out>) at eval.c:2588 #38 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #39 0x0000555555765f4d in Fprogn (body=0x0) at eval.c:436 #40 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #41 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #42 0x0000555555767ddd in Fprogn (body=0x0) at eval.c:436 #43 FletX (args=0x55555aa10d93) at eval.c:958 #44 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #45 0x0000555555765f4d in Fprogn (body=0x0, body@entry=0x55555aa10d63) at eval.c:436 #46 0x0000555555751d6c in Fsave_current_buffer (args=0x55555aa10d63) at editfns.c:874 #47 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #48 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #49 0x0000555555767ddd in Fprogn (body=0x0) at eval.c:436 #50 FletX (args=0x55555aa10ce3) at eval.c:958 #51 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #52 0x0000555555767ddd in Fprogn (body=0x0) at eval.c:436 #53 FletX (args=0x55555aa10cb3) at eval.c:958 #54 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #55 0x0000555555766ded in Fprogn (body=0x0) at eval.c:436 #56 funcall_lambda (fun=0x55555aa10b93, nargs=2, arg_vector=0x7fffffffab80) at eval.c:3233 #57 0x000055555576739f in apply_lambda (fun=<optimized out>, args=<optimized out>, count=...) at eval.c:3103 #58 0x000055555576550b in eval_sub (form=<optimized out>) at eval.c:2588 #59 0x00005555557685cb in Feval (form=0x5555591dcf83, lexical=<optimized out>) at eval.c:2361 #60 0x0000555555765d23 in eval_sub (form=<optimized out>) at eval.c:2501 #61 0x0000555555766ded in Fprogn (body=0x55555a5f1ee3) at eval.c:436 #62 funcall_lambda (fun=0x55555a5f1a73, nargs=1, arg_vector=0x7fffffffaed8) at eval.c:3233 #63 0x0000555555761d93 in Ffuncall (nargs=2, args=0x7fffffffaed0) at eval.c:2995 #64 0x0000555555762282 in Fapply (nargs=2, args=0x7fffffffaed0) at eval.c:2623 #65 0x0000555555765a3d in eval_sub (form=<optimized out>) at eval.c:2470 #66 0x0000555555767c26 in FletX (args=0x55555bdb6543) at /home/zayfen/github.com/emacs/src/lisp.h:1529 #67 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #68 0x0000555555768379 in internal_lisp_condition_case (var=<optimized out>, bodyform=<optimized out>, handlers=<optimized out>) at eval.c:1428 #69 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 #70 0x000055555576688d in Fprogn (body=0x0) at eval.c:436 #71 Fcond (args=<optimized out>) at eval.c:416 #72 0x0000555555765be8 in eval_sub (form=<optimized out>) at eval.c:2449 张云峰 <zhangyunfeng0101@gmail.com> 于2023年8月11日周五 08:15写道: > > I've tested this patch, unfortunately, it doesn't work, still crashes > > GDB information: > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. > 0x0000555555619516 in produce_glyphless_glyph () > (gdb) bt > #0 0x0000555555619516 in produce_glyphless_glyph () > #1 0x0000555555640789 in gui_produce_glyphs () > #2 0x0000555555623f70 in move_it_in_display_line_to () > #3 0x000055555562935a in move_it_to () > #4 0x000055555563e84f in window_text_pixel_size () > #5 0x000055555563f526 in Fwindow_text_pixel_size () > #6 0x00007fffe7dc07a8 in > F6669742d6672616d652d746f2d6275666665722d31_fit_frame_to_buffer_1_0 () > at /home/zayfen/github.com/emacs/src/../native-lisp/29.1.50-9e9f496f/preloaded/window-0d1b8b93-6f4eee58.eln > #7 0x000055555576a032 in funcall_subr () > #8 0x0000555555766ba1 in Ffuncall () > #9 0x000055555576aa04 in eval_sub () > #10 0x000055555576ce6d in FletX () > #11 0x000055555576aba7 in eval_sub () > #12 0x000055555576be0d in funcall_lambda () > #13 0x000055555576c3ee in apply_lambda () > #14 0x000055555576a49b in eval_sub () > #15 0x000055555576ce6d in FletX () > #16 0x000055555576aba7 in eval_sub () > #17 0x000055555576be0d in funcall_lambda () > #18 0x000055555576c3ee in apply_lambda () > #19 0x000055555576a49b in eval_sub () > #20 0x000055555576ca2d in Flet () > #21 0x000055555576aba7 in eval_sub () > #22 0x000055555576aba7 in eval_sub () > #23 0x000055555576ce6d in FletX () > #24 0x000055555576aba7 in eval_sub () > #25 0x000055555576af0d in Fprogn () > #26 0x000055555576aba7 in eval_sub () > #27 0x000055555576aba7 in eval_sub () > #28 0x000055555576be0d in funcall_lambda () > #29 0x000055555576c3ee in apply_lambda () > #30 0x000055555576a49b in eval_sub () > #31 0x000055555576aba7 in eval_sub () > #32 0x000055555576af0d in Fprogn () > #33 0x000055555576aba7 in eval_sub () > #34 0x000055555576aba7 in eval_sub () > #35 0x000055555576ce6d in FletX () > #36 0x000055555576aba7 in eval_sub () > #37 0x000055555576af0d in Fprogn () > #38 0x000055555575666c in Fsave_current_buffer () > #39 0x000055555576aba7 in eval_sub () > #40 0x000055555576aba7 in eval_sub () > #41 0x000055555576ce6d in FletX () > #42 0x000055555576aba7 in eval_sub () > #43 0x000055555576ce6d in FletX () > #44 0x000055555576aba7 in eval_sub () > #45 0x000055555576be0d in funcall_lambda () > #46 0x000055555576c3ee in apply_lambda () > #47 0x000055555576a49b in eval_sub () > #48 0x000055555576d66b in Feval () > #49 0x000055555576ace1 in eval_sub () > > Eli Zaretskii <eliz@gnu.org> 于2023年8月11日周五 02:36写道: > > > > > From: 张云峰 <zhangyunfeng0101@gmail.com> > > > Date: Fri, 11 Aug 2023 01:58:34 +0800 > > > Cc: 65198@debbugs.gnu.org > > > > > > 2023-08-11_01-53.png > > > when popup frame has the warning-icon (marked in picture) , emacs will crash immediately. > > > > Can you try the patch below and see if it prevents the crash in these > > cases? > > > > diff --git a/src/xdisp.c b/src/xdisp.c > > index 9cddcfe..b25bdc7 100644 > > --- a/src/xdisp.c > > +++ b/src/xdisp.c > > @@ -8312,9 +8312,14 @@ get_next_display_element (struct it *it) > > && success_p > > && FRAME_WINDOW_P (it->f)) > > { > > - struct face *face = FACE_FROM_ID (it->f, it->face_id); > > + struct face *face = FACE_FROM_ID_OR_NULL (it->f, it->face_id); > > > > - if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0) > > + if (!face) > > + { > > + it->what = IT_GLYPHLESS; > > + it->glyphless_method = GLYPHLESS_DISPLAY_EMPTY_BOX; > > + } > > + else if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0) > > { > > /* Automatic composition with glyph-string. */ > > Lisp_Object gstring = composition_gstring_from_id (it->cmp_it.id); ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#65198: 29.1; Emacs29.1 crash in function face_for_font 2023-08-11 0:50 ` 张云峰 @ 2023-08-11 6:12 ` Eli Zaretskii 2023-08-11 14:21 ` 张云峰 0 siblings, 1 reply; 14+ messages in thread From: Eli Zaretskii @ 2023-08-11 6:12 UTC (permalink / raw) To: 张云峰; +Cc: 65198 > From: 张云峰 <zhangyunfeng0101@gmail.com> > Date: Fri, 11 Aug 2023 08:50:04 +0800 > Cc: 65198@debbugs.gnu.org > > more clear GDB info: > > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. > 0x0000555555618c06 in produce_glyphless_glyph (it=0x7fffffff67d0, > for_no_font=for_no_font@entry=false, acronym=acronym@entry=0x0) at > xdisp.c:31791 > 31791 font = face->font ? face->font : FRAME_FONT (it->f); Actually, this is progress: we are now crashing a bit later, while trying to display an empty box instead of a character that has no font and no suitable face. To resolve this, please help me by providing the results of the following GDB commands after Emacs crashes and GDB kicks in: (gdb) p it->face_id (gdb) p it->c (gdb) p FRAME_FONT(it->f) (gdb) p (it->f)->output_data.x->font Thanks. ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#65198: 29.1; Emacs29.1 crash in function face_for_font 2023-08-11 6:12 ` Eli Zaretskii @ 2023-08-11 14:21 ` 张云峰 2023-08-11 14:55 ` 张云峰 2023-08-11 15:24 ` Eli Zaretskii 0 siblings, 2 replies; 14+ messages in thread From: 张云峰 @ 2023-08-11 14:21 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 65198 Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. 0x0000555555616206 in produce_glyphless_glyph (it=0x7fffffff6cc0, for_no_font=for_no_font@entry=false, acronym=acronym@entry=0x0) at xdisp.c:31791 31791 font = face->font ? face->font : FRAME_FONT (it->f); (gdb) p it->face_id $1 = 0 (gdb) p it->c $2 = 9888 (gdb) p FRAME_FONT(it->f) No symbol "FRAME_FONT" in current context. (gdb) p (it->f)->output_data.x->font There is no member named font. (gdb) p face Cannot access memory at address 0x120 (gdb) p FACE_FROM_ID (it->f, it->face_id)->ascii_face No symbol "FACE_FROM_ID" in current context. (gdb) p it->what $3 = IT_GLYPHLESS Eli Zaretskii <eliz@gnu.org> 于2023年8月11日周五 14:12写道: > > > From: 张云峰 <zhangyunfeng0101@gmail.com> > > Date: Fri, 11 Aug 2023 08:50:04 +0800 > > Cc: 65198@debbugs.gnu.org > > > > more clear GDB info: > > > > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. > > 0x0000555555618c06 in produce_glyphless_glyph (it=0x7fffffff67d0, > > for_no_font=for_no_font@entry=false, acronym=acronym@entry=0x0) at > > xdisp.c:31791 > > 31791 font = face->font ? face->font : FRAME_FONT (it->f); > > Actually, this is progress: we are now crashing a bit later, while > trying to display an empty box instead of a character that has no font > and no suitable face. To resolve this, please help me by providing > the results of the following GDB commands after Emacs crashes and GDB > kicks in: > > (gdb) p it->face_id > (gdb) p it->c > (gdb) p FRAME_FONT(it->f) > (gdb) p (it->f)->output_data.x->font > > Thanks. ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#65198: 29.1; Emacs29.1 crash in function face_for_font 2023-08-11 14:21 ` 张云峰 @ 2023-08-11 14:55 ` 张云峰 2023-08-11 15:30 ` Eli Zaretskii 2023-08-11 15:24 ` Eli Zaretskii 1 sibling, 1 reply; 14+ messages in thread From: 张云峰 @ 2023-08-11 14:55 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 65198 (compile emacs without pgtk) (gdb) p it->face_id $13 = 0 (gdb) p it->c $14 = 9888 (gdb) p FRAME_FONT(it->f) No symbol "FRAME_FONT" in current context. (gdb) p it->f $15 = (struct frame *) 0x5555586492e0 (gdb) p (it->f)->output_data.x->font $16 = (struct font *) 0x555558ca8c18 (gdb) p (it->f)->output_data.x->font-> ascent default_ascent encoding_charset max_width props space_width vertical_centering average_width descent header min_width relative_compose underline_position baseline_offset driver height pixel_size repertory_charset underline_thickness (gdb) p (it->f)->output_data.x->font->encoding_charset $17 = -1 (gdb) p (it->f)->output_data.x->font->driver $18 = (const struct font_driver *) 0x555555e04fe0 <ftcrhbfont_driver> (gdb) p (it->f)->output_data.x->font->ascent $19 = 27 (gdb) p (it->f)->output_data.x->font->pixel-size No symbol "size" in current context. (gdb) p (it->f)->output_data.x->font->pixel_size $20 = 24 (gdb) p (it->f)->output_data.x->font->props $21 = {0x7ef0, 0x26eef30, 0x26eef60, 0x0, 0x9bd0, 0x14102, 0x19082, 0x19102, 0x62, 0x0, 0x192, 0x2, 0x555557cfa953, 0x0, 0x555558e5d854, 0x555558e5d874, 0x555558ca1884} (gdb) p (it->f)->output_data.x->font->relative_compose $22 = 0 (gdb) p (it->f)->output_data.x->font->repertory_charset $23 = -1 (gdb) 张云峰 <zhangyunfeng0101@gmail.com> 于2023年8月11日周五 22:21写道: > > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. > 0x0000555555616206 in produce_glyphless_glyph (it=0x7fffffff6cc0, > for_no_font=for_no_font@entry=false, acronym=acronym@entry=0x0) at > xdisp.c:31791 > 31791 font = face->font ? face->font : FRAME_FONT (it->f); > (gdb) p it->face_id > $1 = 0 > (gdb) p it->c > $2 = 9888 > (gdb) p FRAME_FONT(it->f) > No symbol "FRAME_FONT" in current context. > (gdb) p (it->f)->output_data.x->font > There is no member named font. > (gdb) p face > Cannot access memory at address 0x120 > (gdb) p FACE_FROM_ID (it->f, it->face_id)->ascii_face > No symbol "FACE_FROM_ID" in current context. > (gdb) p it->what > $3 = IT_GLYPHLESS > > Eli Zaretskii <eliz@gnu.org> 于2023年8月11日周五 14:12写道: > > > > > From: 张云峰 <zhangyunfeng0101@gmail.com> > > > Date: Fri, 11 Aug 2023 08:50:04 +0800 > > > Cc: 65198@debbugs.gnu.org > > > > > > more clear GDB info: > > > > > > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. > > > 0x0000555555618c06 in produce_glyphless_glyph (it=0x7fffffff67d0, > > > for_no_font=for_no_font@entry=false, acronym=acronym@entry=0x0) at > > > xdisp.c:31791 > > > 31791 font = face->font ? face->font : FRAME_FONT (it->f); > > > > Actually, this is progress: we are now crashing a bit later, while > > trying to display an empty box instead of a character that has no font > > and no suitable face. To resolve this, please help me by providing > > the results of the following GDB commands after Emacs crashes and GDB > > kicks in: > > > > (gdb) p it->face_id > > (gdb) p it->c > > (gdb) p FRAME_FONT(it->f) > > (gdb) p (it->f)->output_data.x->font > > > > Thanks. ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#65198: 29.1; Emacs29.1 crash in function face_for_font 2023-08-11 14:55 ` 张云峰 @ 2023-08-11 15:30 ` Eli Zaretskii 2023-08-11 16:14 ` 张云峰 0 siblings, 1 reply; 14+ messages in thread From: Eli Zaretskii @ 2023-08-11 15:30 UTC (permalink / raw) To: 张云峰; +Cc: 65198 > From: 张云峰 <zhangyunfeng0101@gmail.com> > Date: Fri, 11 Aug 2023 22:55:29 +0800 > Cc: 65198@debbugs.gnu.org > > (compile emacs without pgtk) > > (gdb) p it->face_id > $13 = 0 > (gdb) p it->c > $14 = 9888 > (gdb) p FRAME_FONT(it->f) > No symbol "FRAME_FONT" in current context. > (gdb) p it->f > $15 = (struct frame *) 0x5555586492e0 > (gdb) p (it->f)->output_data.x->font > $16 = (struct font *) 0x555558ca8c18 OK. A new patch (which includes the previous one, so please apply to the original code): diff --git a/src/xdisp.c b/src/xdisp.c index 9cddcfe..830b622 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -8312,9 +8312,14 @@ get_next_display_element (struct it *it) && success_p && FRAME_WINDOW_P (it->f)) { - struct face *face = FACE_FROM_ID (it->f, it->face_id); + struct face *face = FACE_FROM_ID_OR_NULL (it->f, it->face_id); - if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0) + if (!face) + { + it->what = IT_GLYPHLESS; + it->glyphless_method = GLYPHLESS_DISPLAY_EMPTY_BOX; + } + else if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0) { /* Automatic composition with glyph-string. */ Lisp_Object gstring = composition_gstring_from_id (it->cmp_it.id); @@ -31782,8 +31787,8 @@ produce_glyphless_glyph (struct it *it, bool for_no_font, Lisp_Object acronym) /* Get the metrics of the base font. We always refer to the current ASCII face. */ - face = FACE_FROM_ID (it->f, it->face_id)->ascii_face; - font = face->font ? face->font : FRAME_FONT (it->f); + face = FACE_FROM_ID_OR_NULL (it->f, it->face_id)->ascii_face; + font = (face && face->font) ? face->font : FRAME_FONT (it->f); normal_char_ascent_descent (font, -1, &it->ascent, &it->descent); it->ascent += font->baseline_offset; it->descent -= font->baseline_offset; ^ permalink raw reply related [flat|nested] 14+ messages in thread
* bug#65198: 29.1; Emacs29.1 crash in function face_for_font 2023-08-11 15:30 ` Eli Zaretskii @ 2023-08-11 16:14 ` 张云峰 2023-08-12 6:39 ` Eli Zaretskii 0 siblings, 1 reply; 14+ messages in thread From: 张云峰 @ 2023-08-11 16:14 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 65198 [-- Attachment #1: Type: text/plain, Size: 1561 bytes --] I made a little modification to this patch, and after verification, emacs does not crash anymore, thanks!😊 diff --git a/src/xdisp.c b/src/xdisp.c index 9cddcfe..830b622 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -8312,9 +8312,14 @@ get_next_display_element (struct it *it) && success_p && FRAME_WINDOW_P (it->f)) { - struct face *face = FACE_FROM_ID (it->f, it->face_id); + struct face *face = FACE_FROM_ID_OR_NULL (it->f, it->face_id); - if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0) + if (!face) + { + it->what = IT_GLYPHLESS; + it->glyphless_method = GLYPHLESS_DISPLAY_EMPTY_BOX; + } + else if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0) { /* Automatic composition with glyph-string. */ Lisp_Object gstring = composition_gstring_from_id (it->cmp_it.id); @@ -31782,8 +31787,8 @@ produce_glyphless_glyph (struct it *it, bool for_no_font, Lisp_Object acronym) /* Get the metrics of the base font. We always refer to the current ASCII face. */ - face = FACE_FROM_ID (it->f, it->face_id)->ascii_face; - font = face->font ? face->font : FRAME_FONT (it->f); + face = FACE_FROM_ID_OR_NULL (it->f, it->face_id); + if (face) + { + face = face->ascii_face; + } + font = (face && face->font) ? face->font : FRAME_FONT (it->f); normal_char_ascent_descent (font, -1, &it->ascent, &it->descent); it->ascent += font->baseline_offset; it->descent -= font->baseline_offset; [-- Attachment #2: Type: text/html, Size: 2165 bytes --] ^ permalink raw reply related [flat|nested] 14+ messages in thread
* bug#65198: 29.1; Emacs29.1 crash in function face_for_font 2023-08-11 16:14 ` 张云峰 @ 2023-08-12 6:39 ` Eli Zaretskii 0 siblings, 0 replies; 14+ messages in thread From: Eli Zaretskii @ 2023-08-12 6:39 UTC (permalink / raw) To: 张云峰; +Cc: 65198-done > From: 张云峰 <zhangyunfeng0101@gmail.com> > Date: Sat, 12 Aug 2023 00:14:01 +0800 > Cc: 65198@debbugs.gnu.org > > I made a little modification to this patch, and after verification, emacs does not crash anymore, > thanks!😊 Thanks, now installed on the emacs-29 branch, and closing the bug. ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#65198: 29.1; Emacs29.1 crash in function face_for_font 2023-08-11 14:21 ` 张云峰 2023-08-11 14:55 ` 张云峰 @ 2023-08-11 15:24 ` Eli Zaretskii 1 sibling, 0 replies; 14+ messages in thread From: Eli Zaretskii @ 2023-08-11 15:24 UTC (permalink / raw) To: 张云峰; +Cc: 65198 > From: 张云峰 <zhangyunfeng0101@gmail.com> > Date: Fri, 11 Aug 2023 22:21:11 +0800 > Cc: 65198@debbugs.gnu.org > > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. > 0x0000555555616206 in produce_glyphless_glyph (it=0x7fffffff6cc0, > for_no_font=for_no_font@entry=false, acronym=acronym@entry=0x0) at > xdisp.c:31791 > 31791 font = face->font ? face->font : FRAME_FONT (it->f); > (gdb) p it->face_id > $1 = 0 > (gdb) p it->c > $2 = 9888 > (gdb) p FRAME_FONT(it->f) > No symbol "FRAME_FONT" in current context. > (gdb) p (it->f)->output_data.x->font Since it turns out this is a PGTK build, please show this instead: (gdb) p (it->f)->output_data.pgtk->font ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2023-08-12 6:39 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-08-10 9:57 bug#65198: 29.1; Emacs29.1 crash in function face_for_font 张云峰 2023-08-10 10:06 ` Eli Zaretskii [not found] ` <CA+cG9GxATqwi7-aFEvma0zi3AZM5y6eshU510oPFohuKwhHF4w@mail.gmail.com> 2023-08-10 17:22 ` Eli Zaretskii 2023-08-10 17:58 ` 张云峰 2023-08-10 18:36 ` Eli Zaretskii 2023-08-11 0:15 ` 张云峰 2023-08-11 0:50 ` 张云峰 2023-08-11 6:12 ` Eli Zaretskii 2023-08-11 14:21 ` 张云峰 2023-08-11 14:55 ` 张云峰 2023-08-11 15:30 ` Eli Zaretskii 2023-08-11 16:14 ` 张云峰 2023-08-12 6:39 ` Eli Zaretskii 2023-08-11 15:24 ` Eli Zaretskii
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.