GNU bug report logs - #78367
31.0.50; Eglot: incoming call trees, wrong positions

Previous Next

Package: emacs;

Reported by: Gerd Möllmann <gerd.moellmann <at> gmail.com>

Date: Sun, 11 May 2025 05:30:02 UTC

Severity: normal

Found in version 31.0.50

Done: João Távora <joaotavora <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 31.0.50; Eglot: incoming call trees, wrong positions
Date: Sun, 11 May 2025 07:29:30 +0200
I am using Eglot/clangd on emcas.git again.

Navigate to insdel.c, function insert_and_inherit, C-u M-x
eglot-show-call-hierarchy RET and choose incoming call trees. The
resulting buffer looks like

[-]  ∘ insert_and_inherit
 ├─[+]  ◀ Finsert_and_inherit
 ├─[+]  ◀ Finsert_char
 └─[+]  ◀ internal_self_insert

Clicking on Finsert_and_inherit takes me here:

insdel.c:
 1389   if (run_mod_hooks)
 1390     {
 1391       ptrdiff_t range_length = to - from;
 1392       prepare_to_modify_buffer (from, to, &from);
 1393       to = from + range_length;
 1394     }

Clicking on internal_self_insert

insdel.c:
  469      * amount at least proportional to the size of the buffer.
  470      * On my test (a 223.9MB zip file on a Thinkpad T61):
  471      * With /5    =>  24s
  472      * With /32   =>  25s
  473      * With /64   =>  26s
  474      * With /128  =>  28s
  475      * With /1024 =>  51s

and so on.

(BTW, eglot-supplements' call trees list all call sites, both in
incoming and outgoing call trees. I find that pretty useful.

- insert_and_inherit insdel.c:582
  + internal_self_insert internal_self_insert:471
  + internal_self_insert internal_self_insert:475
  + Finsert_and_inherit Finsert_and_inherit:1392
  + Finsert_char Finsert_char:1503
  + Finsert_char Finsert_char:1509
)

In GNU Emacs 31.0.50 (build 1, aarch64-apple-darwin24.4.0) of 2025-05-10
 built on pro2




This bug report was last modified 11 days ago.

Previous Next


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