PATCH: resume + threads + software stepping == boom

Daniel Jacobowitz
2001-06-08T12:34:00Z

resume () in infrun.c has this block:

if (SOFTWARE_SINGLE_STEP_P () && step)
{
/* Do it the hard way, w/temp breakpoints */
SOFTWARE_SINGLE_STEP (sig, 1 /*insert-breakpoints */ );
/* ...and don't ask hardware to do it. */
step = 0;

Then, further down, if (use_thread_step_needed && thread_step_needed)
and there's already a breakpoint at the PC, is this:

if (!step)
{
warning ("Internal error, changing continue to step.");

That blows up, because step will always be zero here if
SOFTWARE_SINGLE_STEP_P (). Is this patch OK? It seems to work in my tests
here.

--
Daniel Jacobowitz Debian GNU/Linux Developer
Monta Vista Software Debian Security Team
From ac131313@cygnus.com Fri Jun 08 12:48:00 2001
From: Andrew Cagney <ac131313@cygnus.com>
To: Nick Duffek <nsd@redhat.com>
Cc: brobecker@act-europe.fr, gdb-patches@sources.redhat.com
Subject: Re: patch to gdb on Tru64 5.1
Date: Fri, 08 Jun 2001 12:48:00 -0000
Message-id: <3B212C20.6090005@cygnus.com>
References: <3AFC67C4.9000102@cygnus.com> <200105130240.f4D2eiU07396@rtl.cygnus.com>
X-SW-Source: 2001-06/msg00172.html
Content-length: 592

> On 11-May-2001, Andrew Cagney wrote:
>
>
>> o is it possible to compile in both tables
>> so that the correct table can be selected
>> at run time. In theory allowing GDB to
>> handle both 4.x and 5.x core files.
>
>
> There's only one table. In the transition from 4.x to 5.x, EF_* #defines
> in system header files were renamed to CF_*, but their values didn't
> change. Therefore, a single table allows GDB to handle both 4.x and 5.x
> core files.
>
> Maybe a comment to that effect would be enough to prevent future
> confusion?

Yes, ok, that explains it. Thanks,

Andrew