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 #8 received at 78367 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>,
 João Távora <joaotavora <at> gmail.com>
Cc: 78367 <at> debbugs.gnu.org
Subject: Re: bug#78367: 31.0.50; Eglot: incoming call trees, wrong positions
Date: Sun, 11 May 2025 09:02:04 +0300
> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
> 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

Adding João to the discussion.




This bug report was last modified 12 days ago.

Previous Next


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