[PATCH v2 1/6] Handle recursive internal problem in gdb_internal_error_resync

Kevin Buettner kevinb@redhat.com
Sat Feb 26 20:40:12 GMT 2022


I've pushed this commit.

On Mon, 27 Sep 2021 18:38:40 +0100
Pedro Alves <pedro@palves.net> wrote:

> On 2021-08-23 12:19 a.m., Kevin Buettner wrote:
> > I came across this problem when testing gdb.base/gdb-sigterm.exp
> > on a machine with a pre-release version of glib-2.34 installed:
> > 
> > A problem internal to GDB has been detected,
> > further debugging may prove unreliable.
> > Quit this debugging session? (y or n) Recursive internal problem.
> > FAIL: gdb.base/gdb-sigterm.exp: expect eof #0 (GDB internal error)
> > Resyncing due to internal error.
> > ERROR: : spawn id exp11 not open
> >     while executing
> > "expect {
> > -i exp11 -timeout 10
> > 	    -re "Quit this debugging session\\? \\(y or n\\) $" {
> > 		send_gdb "n\n" answer
> > 		incr count
> > 	    }
> > 	    -re "Create..."
> >     ("uplevel" body line 1)
> >     invoked from within
> > "uplevel $body" NONE : spawn id exp11 not open
> > ERROR: Could not resync from internal error (timeout)
> > gdb.base/gdb-sigterm.exp: expect eof #0: stepped 9 times
> > UNRESOLVED: gdb.base/gdb-sigterm.exp: 50 SIGTERM passes
> > 
> > I don't have a problem with the latter ERROR nor the UNRESOLVED
> > messages.  However the first ERROR regarding the exp11 spawn id
> > not being open is not especially useful.
> > 
> > This commit handles the "Recursive internal problem" case, avoiding
> > the problematic ERROR shown above.
> > 
> > With this commit in place, the log messages look like this instead:
> > 
> > A problem internal to GDB has been detected,
> > further debugging may prove unreliable.
> > Quit this debugging session? (y or n) Recursive internal problem.
> > FAIL: gdb.base/gdb-sigterm.exp: expect eof #15 (GDB internal error)
> > Resyncing due to internal error.
> > ERROR: Could not resync from internal error (recursive internal problem)
> > gdb.base/gdb-sigterm.exp: expect eof #15: stepped 12 times
> > UNRESOLVED: gdb.base/gdb-sigterm.exp: 50 SIGTERM passes
> > 
> > gdb/testsuite/ChangeLog:
> > 
> > 	* lib/gdb.exp (gdb_internal_error_resync): Handle "Recursive
> > 	internal problem".  
> 
> LGTM.
> 



More information about the Gdb-patches mailing list