Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Andrew Cagney <ac131313@redhat.com>
To: gdb-patches@sources.redhat.com
Subject: [commit] Recover from struct-return internal errors
Date: Thu, 20 Nov 2003 18:07:00 -0000	[thread overview]
Message-ID: <3FBD02D6.7060702@redhat.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 780 bytes --]

I've committed the attached.  It tries to get the structs.exp test out 
of a hole that that the amd64 GDB appears to be digging for it:

> (gdb) PASS: gdb.base/structs.exp: ptype foo1; structs-tc
> p/c fun1()
> /home/cygnus/cagney/GDB/src/gdb/x86-64-tdep.c:438: internal-error: classify_argument: unknown argument type
> A problem internal to GDB has been detected,
> further debugging may prove unreliable.
> Quit this debugging session? (y or n) FAIL: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tc (GDB internal error)
> n
> /home/cygnus/cagney/GDB/src/gdb/x86-64-tdep.c:438: internal-error: classify_argument: unknown argument type
> A problem internal to GDB has been detected,
> further debugging may prove unreliable.
> Create a core file of GDB? (y or n) n

Andrew

[-- Attachment #2: diffs --]
[-- Type: text/plain, Size: 2615 bytes --]

2003-11-20  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/structs.exp: Handle and recover from internal errors.
	Replace "foo${n}" with "foo<n>" in test messages.
	
Index: gdb.base/structs.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/structs.exp,v
retrieving revision 1.8
diff -u -r1.8 structs.exp
--- gdb.base/structs.exp	20 Nov 2003 17:11:55 -0000	1.8
+++ gdb.base/structs.exp	20 Nov 2003 18:01:41 -0000
@@ -321,11 +321,22 @@
 		-re "L[expr ${n} + 1] *= fun[expr ${n} + 1].*${gdb_prompt} $" {
 		    pass "${test}"
 		}
+		-re "A problem internal to GDB has been detected" {
+		    fail "${test} (GDB internal error 2)"
+		    gdb_internal_error_resync
+		}
+		-re "${gdb_prompt} $" {
+		    fail "${test} (wrong line info)"
+		}
 		timeout {
 		    fail "${test} (timeout 2)"
 		}
 	    }
 	}
+	-re "A problem internal to GDB has been detected" {
+	    fail "${test} (GDB internal error 1)"
+	    gdb_internal_error_resync
+	}
 	-re "${gdb_prompt} $" {
 	    fail "${test} (no query)"
 	}
@@ -364,6 +375,10 @@
 		fail "${test}"
 	    }
 	}
+	-re "A problem internal to GDB has been detected" {
+	    fail "${test} (GDB internal error)"
+	    gdb_internal_error_resync
+	}
 	-re "${gdb_prompt} $" {
 	    # Garbage returned, garbage printed
 	    fail "${test}"
@@ -395,7 +410,7 @@
     # Finish the function, set 'finish_value_unknown" to non-empty if the
     # return-value was not found.
     send_gdb "finish\n"
-    set test "finish foo${n}; ${tests}"
+    set test "finish foo<n>; ${tests}"
     set finish_value_unknown 0
     gdb_expect {
 	-re "Value returned is .*${gdb_prompt} $" {
@@ -406,6 +421,10 @@
 	    set finish_value_unknown 1
 	    pass "${test}"
 	}
+	-re "A problem internal to GDB has been detected" {
+	    fail "${test} (GDB internal error)"
+	    gdb_internal_error_resync
+	}
 	-re ".*${gdb_prompt} $" {
 	    # Garbage returned
 	    fail "${test}"
@@ -419,7 +438,7 @@
     # "p/c".  If no return value was found, the 'Z' from the previous
     # check that the variable was cleared, is printed.
     send_gdb "p/c\n"
-    set test "value foo${n} finished; ${tests}"
+    set test "value foo<n> finished; ${tests}"
     setup_kfails structs-*tld* i686-*-* gdb/1447
     gdb_expect {
 	-re "[foo ${n}]\[\r\n\]+${gdb_prompt} $" {
@@ -440,6 +459,10 @@
 		# know the location of the return-value.
 		fail "${test}"
 	    }
+	}
+	-re "A problem internal to GDB has been detected" {
+	    fail "${test} (GDB internal error)"
+	    gdb_internal_error_resync
 	}
 	-re ".*${gdb_prompt} $" {
 	    # Garbage returned

             reply	other threads:[~2003-11-20 18:07 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-20 18:07 Andrew Cagney [this message]
2003-11-20 18:32 ` David Carlton
2003-11-20 18:44   ` Andrew Cagney
2003-11-20 18:50     ` Daniel Jacobowitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3FBD02D6.7060702@redhat.com \
    --to=ac131313@redhat.com \
    --cc=gdb-patches@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox