Subject: Re: bug#78221: 31.0.50; Improving *-change-functions notifications

From: João Távora <[email-masked]>
Date: Sun, 4 May 2025 19:40:31 +0100

On Sun, May 4, 2025, 19:12 Gerd Möllmann <[email-masked]> wrote:

> Stefan Monnier <[email-masked]> writes:
>
> >> The right tool to find these is cflow, combined with grep and awk (or
> >> python or perl or whatever) to search and filter cflow's output.  I've
> >> used these before.
> >
> > Do you happen to remember the magic incantation to let `cflow` process
> > our sources correctly?  I tried the rule below and the errors file
> > suggests that the preprocessing is done correctly (it's full of
> > complaints but only about redefinitions), yet the result doesn't include
> > any info about the functions called by `insert_1_both` or
> > `Fput_text_property` (to take two randomly sampled cases of interest).
>
> I use Clangd + Eglot + eglot-supplements if I have questions about who
> call whom.
>
> With clangd 20 one can display incoming and outgoing call trees. Only
> inconvenience is that one has to expand nodes in the tree manually
> because nodes are created on demand via LSP. And this of course only
> sees what's compiled in.
>

I was going to suggest mostly the and, except you don't need "eglot
supplements" since call hierarchies (and type, too) are blue in Eglot for
some months. See the manual of you're interested.

I clangd sees anything that compile_commands.json mentions, it doesn't
actually need to be or have been compiled.

Expanding node by node makes sense to me, as huge swaths of the graph
(which is sometimes cyclic) are uninteresting.

João