This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Avoid producing broken non-native core files
- From: Steve Ellcey <sellcey at mips dot com>
- To: "Maciej W. Rozycki" <macro at codesourcery dot com>
- Cc: Pedro Alves <palves at redhat dot com>, <gdb-patches at sourceware dot org>
- Date: Tue, 29 Oct 2013 10:01:50 -0700
- Subject: Re: [PATCH] Avoid producing broken non-native core files
- Authentication-results: sourceware.org; auth=none
- References: <alpine dot DEB dot 1 dot 10 dot 1310190205580 dot 12843 at tp dot orcam dot me dot uk>
On Wed, 2013-10-23 at 23:03 +0100, Maciej W. Rozycki wrote:
> Index: gdb-fsf-trunk-quilt/gdb/linux-tdep.c
> ===================================================================
> --- gdb-fsf-trunk-quilt.orig/gdb/linux-tdep.c 2013-10-21 12:15:29.727655132 +0100
> +++ gdb-fsf-trunk-quilt/gdb/linux-tdep.c 2013-10-21 12:15:53.727656870 +0100
> @@ -1209,14 +1209,15 @@ linux_corefile_thread_callback (struct t
> args->note_data, args->note_size,
> args->stop_signal);
>
> - if (siginfo_data != NULL)
> - {
> + /* Don't return anything if we got no register information above,
> + such a core file is useless. */
> + if (args->note_data != NULL)
> + if (siginfo_data != NULL)
> args->note_data = elfcore_write_note (args->obfd,
> args->note_data,
> args->note_size,
> "CORE", NT_SIGINFO,
> siginfo_data, siginfo_size);
> - }
>
> do_cleanups (old_chain);
> }
Maciej, I believe this change is the cause of a build failure for me
when using an old GCC (4.1.2) to build gdb. I get:
cc1: warnings being treated as errors
/scratch/gcc/nightly/src/binutils-gdb/gdb/linux-tdep.c: In function
'linux_corefile_thread_callback':
/scratch/gcc/nightly/src/binutils-gdb/gdb/linux-tdep.c:1196: warning:
'siginfo_size' may be used uninitialized in this function
I do not get this error when using a newer GCC (like 4.4.3 or above). I
can work around it by setting siginfo_size to 0 when it is declared. I
don't know if there is a minimum GCC version required for building gdb
but my build with GCC 4.1.2 used to work. Do you think initializing
siginfo_size is reasonable to allow us to use older GCC's to build gdb?
Steve Ellcey
sellcey@mips.com