GNU bug report logs - #65060
29.1.50; display_count_lines segv

Previous Next

Package: emacs;

Reported by: Kai Ma <justksqsf <at> gmail.com>

Date: Fri, 4 Aug 2023 21:43:01 UTC

Severity: normal

Found in version 29.1.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Kai Ma <justksqsf <at> gmail.com>
Subject: bug#65060: closed (Re: bug#65060: 29.1.50; display_count_lines segv)
Date: Sat, 12 Aug 2023 12:09:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#65060: 29.1.50; display_count_lines segv

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 65060 <at> debbugs.gnu.org.

-- 
65060: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65060
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Eli Zaretskii <eliz <at> gnu.org>
To: Kai Ma <justksqsf <at> gmail.com>
Cc: 65060-done <at> debbugs.gnu.org
Subject: Re: bug#65060: 29.1.50; display_count_lines segv
Date: Sat, 12 Aug 2023 15:08:47 +0300
> From: Kai Ma <justksqsf <at> gmail.com>
> Date: Sat, 12 Aug 2023 19:56:27 +0800
> Cc: 65060 <at> debbugs.gnu.org
> 
>  Thanks.  My guess was correct: the buffer in question was killed.
> 
>  Could you please try the patch below, and see if it avoids the
>  crashes?  The patch causes Emacs to signal an error when
>  format-mode-line is called for a dead buffer, so if I did this
>  correctly, you should see that Emacs no longer crashes, but there are
>  error messages about a dead buffer in *Messages*.  If this is what
>  happens, you should then take this up with the dirvish developers, and
>  ask them to avoid calling format-mode-line for a killed buffer.
> 
> Thanks!  The patch prevents the crash.  I will report this to dirvish developers.

Thanks, I've now installed the changes on the emacs-29 branch, and I'm
closing this bug.

[Message part 3 (message/rfc822, inline)]
From: Kai Ma <justksqsf <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.1.50; display_count_lines segv
Date: Sat, 05 Aug 2023 05:41:54 +0800
Emacs can crash due to memchr on null pointers inside
display_count_lines:

* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x00007ff813c6329d libsystem_platform.dylib`_platform_memchr$VARIANT$Haswell + 29
  * frame #1: 0x000000010005c1ef emacs`display_count_lines(start_byte=1, limit_byte=650, count=17166, byte_pos_ptr=0x00007ff7bfef2ef8) at xdisp.c:28475:14
    frame #2: 0x000000010005c019 emacs`count_lines(start_byte=1, end_byte=650) at xdisp.c:28421:10
    frame #3: 0x00000001002666fe emacs`Fline_number_at_pos(position=(EMACS_INT) $385 = 650, absolute=(struct Lisp_Symbol *) $388 = 0x0000000100908010) at fns.c:6157:20
    frame #4: 0x0000000100244708 emacs`eval_sub(form=(struct Lisp_Cons *) $390 = 0x000000011acc21d0) at eval.c:2501:15
    frame #5: 0x00000001002444da emacs`eval_sub(form=(struct Lisp_Cons *) $392 = 0x000000011acc21e0) at eval.c:2465:25
    frame #6: 0x0000000100246ea4 emacs`Flet(args=(struct Lisp_Cons *) $394 = 0x000000011acc1f80) at eval.c:996:18
    frame #7: 0x0000000100244121 emacs`eval_sub(form=(struct Lisp_Cons *) $396 = 0x000000011acc2200) at eval.c:2449:8
    frame #8: 0x0000000100244f0b emacs`Fprogn(body=(struct Lisp_Symbol *) $399 = 0x0000000100908010) at eval.c:436:13
    frame #9: 0x000000010024cd1b emacs`funcall_lambda(fun=(struct Lisp_Cons *) $401 = 0x000000011acc1560, nargs=1, arg_vector=(struct Lisp_Symbol *) $404 = 0x0000000100908010) at eval.c:3233:11
    frame #10: 0x000000010024adbf emacs`apply_lambda(fun=(struct Lisp_Cons *) $406 = 0x000000011acc1550, args=(struct Lisp_Cons *) $408 = 0x0000000116979d60, count=(bytes = 896)) at eval.c:3103:9
    frame #11: 0x0000000100244c81 emacs`eval_sub(form=(struct Lisp_Cons *) $410 = 0x0000000116cbb2f0) at eval.c:2588:9
    frame #12: 0x000000010024a6b6 emacs`Feval(form=(struct Lisp_Cons *) $412 = 0x0000000116cbb2f0, lexical=(struct Lisp_Symbol *) $415 = 0x0000000100908010) at eval.c:2361:28
    frame #13: 0x000000010024c527 emacs`funcall_subr(subr=0x0000000100406c58, numargs=1, args=(struct Lisp_Symbol *) $418 = 0x0000000100908010) at eval.c:3036:15
    frame #14: 0x000000010024c1e5 emacs`funcall_general(fun=(struct Lisp_Subr *) $423 = 0x0000000100406c58, numargs=1, args=(struct Lisp_Symbol *) $426 = 0x0000000100908010) at eval.c:2941:12
    frame #15: 0x0000000100247644 emacs`Ffuncall(nargs=2, args=(struct Lisp_Symbol *) $429 = 0x0000000100908010) at eval.c:2995:21
    frame #16: 0x00000001002487f4 emacs`internal_condition_case_n(bfun=(emacs`Ffuncall at eval.c:2975), nargs=2, args=(struct Lisp_Symbol *) $432 = 0x0000000100908010, handlers=(struct Lisp_Symbol *) $435 = 0x0000000100908040, hfun=(emacs`safe_eval_handler at xdisp.c:3025)) at eval.c:1558:25
    frame #17: 0x000000010003e5e4 emacs`safe__call(inhibit_quit=true, nargs=2, func=(struct Lisp_Symbol *) $438 = 0x000000010090e370, ap=0x00007ff7bfef3d10) at xdisp.c:3059:13
    frame #18: 0x000000010003e753 emacs`safe__call1(inhibit_quit=true, fn=(struct Lisp_Symbol *) $441 = 0x000000010090e370) at xdisp.c:3095:12
    frame #19: 0x00000001000a620a emacs`safe__eval(inhibit_quit=true, sexpr=(struct Lisp_Cons *) $443 = 0x0000000116cbb2f0) at xdisp.c:3109:10
    frame #20: 0x000000010004f6ad emacs`display_mode_element(it=0x00007ff7bfef45a0, depth=2, field_width=0, precision=0, elt=(struct Lisp_Cons *) $445 = 0x0000000116cbb2d0, props=(struct Lisp_Symbol *) $448 = 0x0000000100908010, risky=false) at xdisp.c:27387:10
    frame #21: 0x000000010004fb29 emacs`display_mode_element(it=0x00007ff7bfef45a0, depth=1, field_width=0, precision=0, elt=(struct Lisp_Cons *) $450 = 0x0000000116cbb2c0, props=(struct Lisp_Symbol *) $453 = 0x0000000100908010, risky=false) at xdisp.c:27473:13
    frame #22: 0x000000010005bf1a emacs`Fformat_mode_line(format=(struct Lisp_Cons *) $455 = 0x0000000116cbb2c0, face=(struct Lisp_Symbol *) $458 = 0x0000000100908010, window=(struct window *) $463 = 0x00000002fbf9d428, buffer=(struct buffer *) $468 = 0x00000001033b8410) at xdisp.c:27700:3
    frame #23: 0x0000000100244760 emacs`eval_sub(form=(struct Lisp_Cons *) $470 = 0x0000000116cbb280) at eval.c:2508:15
    frame #24: 0x000000010024684b emacs`FletX(args=(struct Lisp_Cons *) $472 = 0x0000000116cbb190) at eval.c:934:10
    frame #25: 0x0000000100244121 emacs`eval_sub(form=(struct Lisp_Cons *) $474 = 0x0000000116cbb180) at eval.c:2449:8
    frame #26: 0x000000010024a6b6 emacs`Feval(form=(struct Lisp_Cons *) $476 = 0x0000000116cbb180, lexical=(struct Lisp_Symbol *) $479 = 0x0000000100908010) at eval.c:2361:28
    frame #27: 0x000000010024c527 emacs`funcall_subr(subr=0x0000000100406c58, numargs=1, args=(struct Lisp_Symbol *) $482 = 0x0000000100908010) at eval.c:3036:15
    frame #28: 0x000000010024c1e5 emacs`funcall_general(fun=(struct Lisp_Subr *) $487 = 0x0000000100406c58, numargs=1, args=(struct Lisp_Symbol *) $490 = 0x0000000100908010) at eval.c:2941:12
    frame #29: 0x0000000100247644 emacs`Ffuncall(nargs=2, args=(struct Lisp_Symbol *) $493 = 0x0000000100908010) at eval.c:2995:21
    frame #30: 0x00000001002487f4 emacs`internal_condition_case_n(bfun=(emacs`Ffuncall at eval.c:2975), nargs=2, args=(struct Lisp_Symbol *) $496 = 0x0000000100908010, handlers=(struct Lisp_Symbol *) $499 = 0x0000000100908040, hfun=(emacs`safe_eval_handler at xdisp.c:3025)) at eval.c:1558:25
    frame #31: 0x000000010003e5e4 emacs`safe__call(inhibit_quit=true, nargs=2, func=(struct Lisp_Symbol *) $502 = 0x000000010090e370, ap=0x00007ff7bfef6140) at xdisp.c:3059:13
    frame #32: 0x000000010003e753 emacs`safe__call1(inhibit_quit=true, fn=(struct Lisp_Symbol *) $505 = 0x000000010090e370) at xdisp.c:3095:12
    frame #33: 0x00000001000a620a emacs`safe__eval(inhibit_quit=true, sexpr=(struct Lisp_Cons *) $507 = 0x0000000116cbb180) at xdisp.c:3109:10
    frame #34: 0x000000010004f6ad emacs`display_mode_element(it=0x00007ff7bfef6a20, depth=2, field_width=0, precision=0, elt=(struct Lisp_Cons *) $509 = 0x0000000116cbb160, props=(struct Lisp_Symbol *) $512 = 0x0000000100908010, risky=false) at xdisp.c:27387:10
    frame #35: 0x000000010004fb29 emacs`display_mode_element(it=0x00007ff7bfef6a20, depth=1, field_width=0, precision=0, elt=(struct Lisp_Cons *) $514 = 0x0000000116cbb150, props=(struct Lisp_Symbol *) $517 = 0x0000000100908010, risky=false) at xdisp.c:27473:13
    frame #36: 0x000000010003036a emacs`display_mode_line(w=0x00000002fbf9d428, face_id=MODE_LINE_INACTIVE_FACE_ID, format=(struct Lisp_Cons *) $519 = 0x0000000116cbb150) at xdisp.c:26899:7
    frame #37: 0x0000000100085135 emacs`display_mode_lines(w=0x00000002fbf9d428) at xdisp.c:26812:7
    frame #38: 0x0000000100091eec emacs`redisplay_window(window=(struct window *) $524 = 0x00000002fbf9d428, just_this_one_p=false) at xdisp.c:20535:7
    frame #39: 0x000000010008de7d emacs`redisplay_window_0(window=(struct window *) $529 = 0x00000002fbf9d428) at xdisp.c:17616:5
    frame #40: 0x0000000100248623 emacs`internal_condition_case_1(bfun=(emacs`redisplay_window_0 at xdisp.c:17614), arg=(struct window *) $534 = 0x00000002fbf9d428, handlers=(struct Lisp_Cons *) $536 = 0x0000000104de93c0, hfun=(emacs`redisplay_window_error at xdisp.c:17596)) at eval.c:1498:25
    frame #41: 0x000000010008ca6c emacs`redisplay_windows(window=(struct window *) $541 = 0x00000002fbf9d428) at xdisp.c:17585:4
    frame #42: 0x000000010008ca1b emacs`redisplay_windows(window=(struct window *) $546 = 0x00000002fbe51310) at xdisp.c:17579:2
    frame #43: 0x000000010008ca1b emacs`redisplay_windows(window=(struct window *) $551 = 0x00000002fbed1258) at xdisp.c:17579:2
    frame #44: 0x000000010004b0b4 emacs`redisplay_internal at xdisp.c:17035:5
    frame #45: 0x0000000100051659 emacs`redisplay at xdisp.c:16218:3
    frame #46: 0x0000000100163e49 emacs`read_char(commandflag=1, map=(struct Lisp_Cons *) $553 = 0x000000011cb67780, prev_event=(struct Lisp_Symbol *) $556 = 0x0000000100908010, used_mouse_menu=0x00007ff7bfefe10f, end_time=0x0000000000000000) at keyboard.c:2636:6
    frame #47: 0x0000000100160ad8 emacs`read_key_sequence(keybuf=(struct Lisp_Symbol *) $559 = 0x0000000100908010, prompt=(struct Lisp_Symbol *) $562 = 0x0000000100908010, dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at keyboard.c:10083:12
    frame #48: 0x000000010015ee80 emacs`command_loop_1 at keyboard.c:1384:15
    frame #49: 0x0000000100248558 emacs`internal_condition_case(bfun=(emacs`command_loop_1 at keyboard.c:1278), handlers=(struct Lisp_Symbol *) $565 = 0x00000001009080a0, hfun=(emacs`cmd_error at keyboard.c:936)) at eval.c:1474:25
    frame #50: 0x000000010015e923 emacs`command_loop_2(handlers=(struct Lisp_Symbol *) $568 = 0x00000001009080a0) at keyboard.c:1133:11
    frame #51: 0x0000000100247ce3 emacs`internal_catch(tag=(struct Lisp_Symbol *) $571 = 0x00000001009174c0, func=(emacs`command_loop_2 at keyboard.c:1129), arg=(struct Lisp_Symbol *) $574 = 0x00000001009080a0) at eval.c:1197:25
    frame #52: 0x000000010015dc9a emacs`command_loop at keyboard.c:1111:2
    frame #53: 0x000000010015da9f emacs`recursive_edit_1 at keyboard.c:720:9
    frame #54: 0x000000010015e012 emacs`Frecursive_edit at keyboard.c:803:3
    frame #55: 0x000000010015ae48 emacs`main(argc=1, argv=0x00007ff7bfefec90) at emacs.c:2529:3
    frame #56: 0x00007ff8138de41f dyld`start + 1903

xbacktrace:

(unsigned char *) data = 0x00000001003d4d0b "line-number-at-pos"
(unsigned char *) data = 0x00000001003c6842 "-"
(unsigned char *) data = 0x00000001003d45c5 "let"
(unsigned char *) data = 0x0000000120f94b50 "dirvish-index-ml"
(unsigned char *) data = 0x00000001003d4651 "eval"
(unsigned char *) data = 0x00000001003c694f "format-mode-line"
(unsigned char *) data = 0x00000001003d45c9 "let*"
(unsigned char *) data = 0x00000001003d4651 "eval"
(unsigned char *) data = 0x00000001003d8fe6 "redisplay_internal (C function)"


I took a quick look at the function, and it turns out the cursor can be
null even on the first iteration.  After applying the following change,
I can see "cursor is null" printed out just before the crash.

diff --git a/src/xdisp.c b/src/xdisp.c
index 9cddcfeda27..f994021bb3c 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -28457,6 +28457,8 @@ display_count_lines (ptrdiff_t start_byte,
 	  ceiling = min (limit_byte - 1, ceiling);
 	  ceiling_addr = BYTE_POS_ADDR (ceiling) + 1;
 	  base = (cursor = BYTE_POS_ADDR (start_byte));
+	  if (! cursor)
+	    fprintf (stderr, "cursor is null\n");
 
 	  do
 	    {


The crash occurred when I was trying out dirvish with
display-line-numbers-mode enabled.  Unfortunately, this crash is not
quite easy to reproduce.  The best recipe I got so far is:

1. Create init.el

    (require 'package)
    (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
    (use-package dirvish :ensure t :config (dirvish-override-dired-mode))
    (global-display-line-numbers-mode +1)
    (dirvish-override-dired-mode)

2. emacs -q -l init.el

3. M-x dirvish

4. randomly kill dirvish buffers, and/or randomly delete dirvish windows.

Chances are, at some point, Emacs crashes due to the above segv.  I have
reproduced the crash in emacs -q, but it was not easy.  I will try to
find a better recipe and post it here.


In GNU Emacs 29.1.50 (build 1, x86_64-apple-darwin22.6.0, NS
 appkit-2299.70 Version 13.5 (Build 22G74)) of 2023-08-03 built on
 Kais-MacBook.local
Repository revision: 7280e6aaa1978c6e26c4286db9c446fa74637fa4
Repository branch: emacs-29
Windowing system distributor 'Apple', version 10.3.2299
System Description:  macOS 13.5

Configured using:
 'configure --with-xwidgets --with-ns --with-tree-sitter -C
 'LDFLAGS=-L/usr/local/opt/llvm/lib -L/usr/local/opt/bison/lib
 -L/usr/local/opt/flex/lib' 'CPPFLAGS=-I/usr/local/opt/llvm/include
 -I/usr/local/opt/flex/include''

Configured features:
ACL DBUS GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY
KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XIM XWIDGETS ZLIB

Important settings:
  value of $LC_ALL: zh_CN.utf-8
  value of $LANG: zh_CN.utf-8
  locale-coding-system: utf-8-unix

Major mode: VTerm

Minor modes in effect:
  repeat-mode: t
  vterm-copy-mode: t
  goto-address-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  shell-dirtrack-mode: t
  diff-hl-margin-mode: t
  recentf-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  doom-modeline-mode: t
  winner-mode: t
  winum-mode: t
  which-key-mode: t
  global-hl-line-mode: t
  solaire-global-mode: t
  projectile-mode: t
  vertico-multiform-mode: t
  vertico-mouse-mode: t
  vertico-mode: t
  keyfreq-autosave-mode: t
  keyfreq-mode: t
  evil-leader-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  global-evil-collection-unimpaired-mode: t
  evil-collection-unimpaired-mode: t
  diredfl-global-mode: t
  evil-mode: t
  evil-local-mode: t
  corfu-popupinfo-mode: t
  global-corfu-mode: t
  marginalia-mode: t
  prescient-persist-mode: t
  global-ligature-mode: t
  ligature-mode: t
  pixel-scroll-precision-mode: t
  save-place-mode: t
  server-mode: t
  electric-pair-mode: t
  global-so-long-mode: t
  delete-selection-mode: t
  global-auto-revert-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
  menu-bar-mode: t
  file-name-shadow-mode: t
  context-menu-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

Load-path shadows:
/Users/kaima/.emacs.d/elpa/transient-20230723.1411/transient hides /Applications/Emacs.app/Contents/Resources/lisp/transient

Features:
(shadow ecomplete emacsbug tramp-archive tramp-gvfs tabify
evil-collection-man man semantic/ia semantic/analyze/refs
semantic/db-find semantic/db-ref semantic/senator semantic/decorate
semantic/analyze semantic/sort semantic/scope semantic/analyze/fcn
semantic/db eieio-base semantic/ctxt semantic/format semantic/tag-ls
semantic/find evil-collection-ripgrep ripgrep evil-collection-wgrep
wgrep repeat evil-collection-vterm vterm tramp tramp-loaddefs trampver
tramp-integration tramp-compat evil-collection-term term ehelp
vterm-module term/xterm xterm evil-collection-sh-script sh-script smie
executable citre citre-global citre-tags citre-ctags citre-readtags
citre-readtags-tables citre-backend-interface citre-ui-peek
citre-ui-jump citre-common-tag citre-common-util c-ts-mode c-ts-common
all-the-icons-ibuffer htmlfontify url-http url-gw url-auth
evil-collection-shortdoc shortdoc cus-start flow-fill mm-archive
gnus-html url-queue url-cache mm-url sort smiley gnus-cite mail-extr
textsec uni-scripts idna-mapping uni-confusable textsec-check gnus-async
gnus-bcklg gnus-dup qp gnus-ml disp-table align evil-collection-speedbar
speedbar ezimage dframe haskell-mode haskell-cabal haskell-utils
haskell-font-lock haskell-indentation haskell-string
haskell-sort-imports haskell-lexeme haskell-align-imports
haskell-complete-module haskell-ghc-support evil-collection-flymake
flymake-proc flymake etags fileloop haskell-customize nndraft nnmh utf-7
nnfolder nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual
gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig nntp
gnus-cache gnus-sum shr pixel-fill kinsoku url-file gnus-topic
gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail
mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win
evil-collection-gnus gnus nnheader range org-protocol goto-addr
org-capture magit-extras magit-bookmark evil-collection-magit
magit-submodule magit-blame magit-stash magit-reflog magit-bisect
magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit
magit-sequence magit-notes magit-worktree magit-tag magit-merge
magit-branch magit-reset magit-files magit-refs magit-status magit
magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode diff
git-commit evil-collection-log-edit log-edit message sendmail yank-media
rfc822 mml mml-sec evil-collection-epa epa gnus-util mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr mailabbrev mail-utils gmm-utils mailheader add-log magit-core
magit-autorevert magit-margin magit-transient magit-process with-editor
shell magit-mode transient magit-git magit-base which-func ido
evil-collection-magit-section magit-section benchmark cursor-sensor crm
org-clock evil-org-agenda evil-org evil-collection-org citeproc
citeproc-itemgetters citeproc-biblatex parse-time citeproc-bibtex
parsebib ol-bibtex bibtex iso8601 citeproc-cite citeproc-subbibs
citeproc-sort citeproc-name citeproc-formatters citeproc-number rst
citeproc-proc citeproc-disamb citeproc-itemdata
citeproc-generic-elements citeproc-macro citeproc-choose citeproc-date
citeproc-context citeproc-prange citeproc-style citeproc-locale
citeproc-term citeproc-rt citeproc-lib citeproc-s oc-bibtex ox-odt
rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse
nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar org-agenda
ox-html table ox-ascii ox-publish ox org-element org-persist org-id
org-refile avl-tree org-tempo tempo org time-date ob-d2 ob-dot ob-python
evil-collection-python python treesit ob-rust ob-C ccls
ccls-member-hierarchy ccls-inheritance-hierarchy ccls-call-hierarchy
ccls-tree ccls-code-lens ccls-semantic-highlight ccls-common lsp-mode
lsp-protocol spinner network-stream puny nsm
evil-collection-markdown-mode markdown-mode evil-collection-outline
noutline outline ht inline epg rfc6068 epg-config cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine ob-emacs-lisp
org-table org-loaddefs evil-collection-calendar cal-menu calendar
cal-loaddefs ob ob-tangle ol ob-ref ob-lob ob-table ob-exp org-macro
org-src org-keys oc ob-comint ob-core org-cycle org-fold ob-eval
semantic/symref/grep semantic/symref semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local cedet
consult-xref evil-collection-consult consult evil-collection-bookmark
bookmark org-pcomplete pcomplete evil-collection-xref xref org-list
org-footnote org-fold-core org-entities org-faces org-version
bug-reference misearch multi-isearch all-the-icons-dired dired-filter
dired-hacks-utils dired-aux dired-x org-compat autoinsert org-macs
format-spec info-colors jka-compr vertico-directory
evil-collection-helpful helpful cc-langs cc-vars cc-defs
evil-collection-imenu imenu trace evil-collection-edebug edebug
info-look help-fns radix-tree evil-collection-elisp-refs elisp-refs
pulse hideshow display-line-numbers hl-todo rainbow-delimiters copilot
copilot-balancer editorconfig editorconfig-core editorconfig-core-handle
editorconfig-fnmatch jsonrpc evil-collection-ert ert
evil-collection-debug debug backtrace find-func warnings symbol-overlay
evil-collection-diff-hl diff-hl-margin diff-hl-dired diff-hl vc-hg
evil-collection-vc-git vc-git evil-collection-log-view log-view
pcvs-util evil-collection-vc-dir vc-dir ewoc vc vc-dispatcher
evil-collection-diff-mode diff-mode recentf tree-widget
yasnippet-snippets yasnippet doom-modeline doom-modeline-segments
let-alist doom-modeline-env doom-modeline-core shrink-path f f-shortdoc
s 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 winner winum
evil-collection-which-key which-key hl-line solaire-mode face-remap
projectile project skeleton ibuf-macs find-dired lisp-mnt
evil-collection-grep grep evil-collection-compile compile
text-property-search evil-collection-comint comint ansi-osc ansi-color
ibuf-ext evil-collection-ibuffer ibuffer ibuffer-loaddefs
evil-collection-vertico vertico-multiform vertico-mouse vertico
hardhacker-theme keyfreq prelude-nix prelude-evil evil-leader
evil-surround evil-collection-unimpaired evil-collection-tabulated-list
evil-collection-tab-bar evil-collection-so-long evil-collection-simple
evil-collection-replace evil-collection-process-menu
evil-collection-popup evil-collection-package-menu evil-collection-info
evil-collection-indent evil-collection-image image-mode
evil-collection-dired diredfl dired dired-loaddefs exif
evil-collection-help evil-collection-eshell em-prompt esh-mode
evil-collection-elisp-mode evil-collection-eldoc evil-collection-custom
evil-collection-corfu evil-collection-buff-menu evil-collection annalist
evil evil-integration evil-maps evil-commands evil-digraphs reveal
evil-jumps evil-command-window evil-search evil-ex evil-types
evil-macros evil-repeat evil-states evil-core evil-common thingatpt rect
evil-vars prelude-irc prelude-apps prelude-mail prelude-os prelude-help
prelude-lang-zig prelude-lang-web prelude-lang-agda agda2
prelude-lang-haskell prelude-lang-js prelude-lang-ml prelude-lang-coq
prelude-lang-rust prelude-lang-python prelude-lang-cc prelude-lang-lisp
prelude-prog prelude-blog prelude-org prelude-tex prelude-git
prelude-dired prelude-chinese rime rime-predicates derived xdg posframe
popup dash prelude-ibuffer prelude-search prelude-completion kind-icon
svg-lib color svg dom xml corfu-popupinfo corfu cape marginalia
orderless prescient char-fold prelude-project prelude-ui cus-edit pp
cus-load icons wid-edit rx ligature all-the-icons all-the-icons-faces
data-material data-weathericons data-octicons data-fileicons
data-faicons data-alltheicons pixel-scroll cua-base prelude-core hydra
ring lv saveplace adaptive-wrap dabbrev server finder-inf elec-pair
diminish exec-path-from-shell eshell esh-cmd esh-ext esh-opt esh-proc
esh-io esh-arg esh-module esh-groups esh-util files-x undohist edmacro
kmacro so-long delsel autorevert filenotify prelude-benchmark
benchmark-init advice cl-extra help-mode prelude-common prelude-iload
queue generator cl prelude-package vc-use-package pcase use-package
use-package-delight use-package-diminish use-package-bind-key bind-key
easy-mmode prelude-loaddefs no-littering compat 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 eieio eieio-core password-cache json subr-x map byte-opt
url-vars cl-macs gv use-package-ensure cl-seq use-package-core
cl-loaddefs cl-lib bytecomp byte-compile info adaptive-wrap-autoloads
alert-autoloads all-the-icons-dired-autoloads
all-the-icons-ibuffer-autoloads auctex-autoloads tex-site
benchmark-init-autoloads cape-autoloads carbon-now-sh-autoloads
cargo-autoloads catppuccin-theme-autoloads ccls-autoloads
cdlatex-autoloads cider-autoloads citeproc-autoloads citre-autoloads
clojure-mode-autoloads company-coq-autoloads company-math-autoloads
company-autoloads copilot-autoloads corfu-autoloads d2-mode-autoloads
dap-mode-autoloads bui-autoloads dash-at-point-autoloads
dashboard-autoloads debbugs-autoloads deft-autoloads devdocs-autoloads
diff-hl-autoloads diminish-autoloads dired-filter-autoloads
dired-hacks-utils-autoloads diredfl-autoloads dirvish-autoloads
doom-modeline-autoloads doom-themes-autoloads dracula-theme-autoloads
dumb-jump-autoloads dune-autoloads ebib-autoloads editorconfig-autoloads
ef-themes-autoloads elfeed-autoloads embark-consult-autoloads
consult-autoloads embark-autoloads evil-collection-autoloads
annalist-autoloads evil-leader-autoloads evil-org-autoloads
evil-surround-autoloads evil-autoloads exec-path-from-shell-autoloads
expand-region-autoloads flycheck-haskell-autoloads flycheck-autoloads
forge-autoloads closql-autoloads emacsql-autoloads geiser-autoloads
ghub-autoloads gntp-autoloads go-translate-autoloads
google-translate-autoloads goto-chg-autoloads gptel-autoloads
haskell-mode-autoloads helpful-autoloads elisp-refs-autoloads
hl-todo-autoloads info-colors-autoloads js2-mode-autoloads
keyfreq-autoloads kind-icon-autoloads ligature-autoloads log4e-autoloads
lsp-docker-autoloads lsp-treemacs-autoloads lsp-ui-autoloads
lsp-mode-autoloads lua-mode-autoloads magit-autoloads
git-commit-autoloads marginalia-autoloads markdown-mode-autoloads
math-symbol-lists-autoloads merlin-autoloads minimap-autoloads
modern-cpp-font-lock-autoloads modus-themes-autoloads
multiple-cursors-autoloads nerd-icons-autoloads nix-mode-autoloads
magit-section-autoloads nix-sandbox-autoloads no-littering-autoloads
nov-autoloads esxml-autoloads kv-autoloads ob-d2-autoloads
ob-rust-autoloads one-themes-autoloads orderless-autoloads
org-appear-autoloads org-preview-html-autoloads org-xlatex-autoloads
ormolu-autoloads paredit-autoloads parsebib-autoloads parseedn-autoloads
parseclj-autoloads pdf-tools-autoloads pinyinlib-autoloads
pkg-info-autoloads epl-autoloads prescient-autoloads
proof-general-autoloads proof-site proof-autoloads queue-autoloads
quickrun-autoloads racket-mode-autoloads rainbow-delimiters-autoloads
rainbow-mode-autoloads rime-autoloads popup-autoloads ripgrep-autoloads
rotate-autoloads sesman-autoloads shrink-path-autoloads f-autoloads
sly-autoloads smartparens-autoloads solaire-mode-autoloads
speed-type-autoloads spinner-autoloads string-inflection-autoloads
svg-lib-autoloads symbol-overlay-autoloads tablist-autoloads
telega-autoloads rainbow-identifiers-autoloads theme-emacs-autoloads
transient-autoloads treemacs-all-the-icons-autoloads
all-the-icons-autoloads treemacs-persp-autoloads persp-mode-autoloads
treemacs-projectile-autoloads projectile-autoloads
treemacs-tab-bar-autoloads treemacs-autoloads cfrs-autoloads
posframe-autoloads ht-autoloads hydra-autoloads lv-autoloads
pfuture-autoloads ace-window-autoloads avy-autoloads s-autoloads
treepy-autoloads undohist-autoloads utop-autoloads tuareg-autoloads
caml-autoloads valign-autoloads vc-use-package-autoloads
vertico-autoloads visual-fill-column-autoloads vterm-toggle-autoloads
vterm-autoloads vundo-autoloads wakatime-mode-autoloads
web-mode-autoloads wgrep-autoloads which-key-autoloads winum-autoloads
dash-autoloads with-editor-autoloads compat-autoloads yaml-autoloads
yasnippet-snippets-autoloads yasnippet-autoloads zig-mode-autoloads
reformatter-autoloads rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/ns-win ns-win ucs-normalize mule-util term/common-win 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 xwidget-internal dbusbind
kqueue cocoa ns lcms2 multi-tty make-network-process emacs)

Memory information:
((conses 16 1809150 1742795)
 (symbols 48 93202 23)
 (strings 32 361902 89427)
 (string-bytes 1 11206118)
 (vectors 16 116188)
 (vector-slots 8 3198247 827822)
 (floats 8 2706 12115)
 (intervals 56 58501 31705)
 (buffers 984 62))



This bug report was last modified 1 year and 281 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.