Subject: bug#70914: 29.3; Crashes often on Windows

From: Eli Zaretskii <[email-masked]>
Date: Wed, 22 May 2024 14:40:19 +0300

> Date: Wed, 22 May 2024 08:50:48 +0000 (UTC)
> From: Hannes Domani <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>, Corwin Brust <[email-masked]>, 
> 	"[email-masked]" <[email-masked]>
> 
> > I do a C-c in gdb to add a breakpoint, and when continuing, the process exists
> > with code 0202. If I add the conditional breakpoint at start, this doesn't
> > happen though, but it seems like it gets stuck without progressing further.
> > `print name != NULL` and `print (int)strcmp(name, "//") == 0` doesn't trigger an
> > error.
> 
> I tend to avoid inferior function calls as much as possible, even more
> so in optimized code, exactly for this kind of problem.

Right.

> Instead I use something like:
> 
> (gdb) condition 1 name && $_streq(name,"//")

As I explained, conditional breakpoints are not the best idea for such
a frequently-called code.

> >From what I saw while I had the dprintf command from earlier active, emacs
> calls this function even if you maybe don't expect it, so I wouldn't rule
> it out.

Basically, we call map_w32_filename, and through it parse_root, for
every file we need to access.  So yes, very frequently indeed.

Thanks for your great help, Hannes.  I surely hope to see your
recording patch in GDB 15 or thereabouts.  It's a very useful feature
that is sometimes sorely missed on Windows.