Subject: Re: bug#28108: 25.2; Infinite loop due to circular marker list?

From: Eli Zaretskii <[email-masked]>
Date: Fri, 18 Aug 2017 09:12:35 +0300

> From: Adam Porter <[email-masked]>
> Date: Thu, 17 Aug 2017 23:06:56 -0500
> Cc: [email-masked]
> 
> (gdb) define count-markers
> Type commands for definition of "count-markers".
> End with a line saying just "end".
> >set $count = 0
> >set $markers = BUF_MARKERS(b)
> >while $markers != 0
>  >set $count = $count + 1
>  >print $count
>  >set $markers = $markers->next
>  >end
> >end
> (gdb) count-markers
> No symbol "BUF_MARKERS" in current context.

Replace this:

  >set $markers = BUF_MARKERS(b)

with this:

  >set $markers = b->text->markers

You will have to redefine the whole command again with that change.

> I tried to run count-markers after "bt full", "my-step", and "step",
> but it still didn't work:
> 
> (gdb) step
> 605           for (tail = BUF_MARKERS (b); tail; prev = &tail->next,
> tail = *prev)
> (gdb) count-markers
> No symbol "BUF_MARKERS" in current context.

It should be run from the same stack frame where you have this loop.
Whether you run "bt full" before that doesn't matter.

> Unfortunately I may have to shut down this machine soon.  I searched
> for "gdb save state" and found some information about
> checkpoint/restart, but I'm not sure if that would work or be
> appropriate here.  I'll try to keep the system up until we can finish
> debugging this, but if I can't, I guess we'll be stuck, since I have
> no idea how to reproduce it.

OK, just keep these instructions for when it reproduces itself again.

Thanks.