This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: RFC: refactor gcore checking in test suite
- From: Pedro Alves <palves at redhat dot com>
- To: Tom Tromey <tromey at redhat dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Tue, 30 Oct 2012 17:32:52 +0000
- Subject: Re: RFC: refactor gcore checking in test suite
- References: <87d2zzyjfw.fsf@fleche.redhat.com>
Looks fine to me, apart from:
On 10/30/2012 05:10 PM, Tom Tromey wrote:
> +# Invoke "gcore". CORE is the name of the core file to write. TEST
> +# is the name of the test case. This will return 1 if the core file
> +# was created, 0 otherwise.
> If this fails to make a core file due to
> +# some error, it will call "unsupported", not "fail".
This comment made me a bit confused though. It is not some random error that
results in unsupported. It's the specific case of ending up in
static char *
exec_make_note_section (bfd *obfd, int *note_size)
{
error (_("Can't create a corefile"));
}
which means, the current target has no support for generating core files
(as otherwise, target_make_note_section would be implemented by a target
higher up on the target stack, and this wouldn't be reached).
gdb_test_multiple has the catch-all that issues a fail:
-re "\r\n$gdb_prompt $" {
and that is what I'd consider "due to some error", hence my confusion.
> +proc gdb_gcore_cmd {core test} {
> + global gdb_prompt
> +
> + set result 0
> + gdb_test_multiple "gcore $core" $test {
> +
...
> + eof {
> + # Catastrophe.
> + fail $test
> + }
I understand this is preexisting, but I question its existence.
Maybe it got left behind in some send_gdb/gdb_expect -> gdb_test_multiple
conversion? gdb_test_multiple already catches eof:
eof {
perror "Process no longer exists"
if { $message != "" } {
fail "$message"
}
return -1
}
I think a follow-up could remove that.
--
Pedro Alves