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
next 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