From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4472 invoked by alias); 16 Apr 2014 16:44:12 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 4452 invoked by uid 89); 16 Apr 2014 16:44:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.8 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mexforward.lss.emc.com Received: from mailuogwhop.emc.com (HELO mexforward.lss.emc.com) (168.159.213.141) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Wed, 16 Apr 2014 16:44:09 +0000 Received: from hop04-l1d11-si02.isus.emc.com (hop04-l1d11-si02.isus.emc.com [10.254.111.55]) by mexforward.lss.emc.com (Switch-3.4.3/Switch-3.4.3) with ESMTP id s3GGi7Xv030330 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Wed, 16 Apr 2014 12:44:07 -0400 Received: from mailhub.lss.emc.com (mailhubhoprd06.lss.emc.com [10.254.222.130]) by hop04-l1d11-si02.isus.emc.com (RSA Interceptor) for ; Wed, 16 Apr 2014 12:43:58 -0400 Received: from usendtaylorx2l.lss.emc.com (usendtaylorx2l.lss.emc.com [10.243.10.188]) by mailhub.lss.emc.com (Switch-3.4.3/Switch-3.4.3) with ESMTP id s3GGhwsl012708 for ; Wed, 16 Apr 2014 12:43:58 -0400 Received: by usendtaylorx2l.lss.emc.com (Postfix, from userid 26043) id 54AE35C8EED; Wed, 16 Apr 2014 12:43:56 -0400 (EDT) Received: from usendtaylorx2l (localhost [127.0.0.1]) by usendtaylorx2l.lss.emc.com (Postfix) with ESMTP id BAC0A5C85FB for ; Wed, 16 Apr 2014 12:43:56 -0400 (EDT) To: "gdb-patches@sourceware.org" Subject: Re: RFA/remote: compare-sections In-reply-to: <29572.1396557529@usendtaylorx2l> References: <24262.1395849610@usendtaylorx2l> <29572.1396557529@usendtaylorx2l> Comments: In-reply-to David Taylor message dated "Thu, 03 Apr 2014 16:38:49 -0400." Date: Wed, 16 Apr 2014 16:44:00 -0000 Message-ID: <18733.1397666636@usendtaylorx2l> From: David Taylor X-EMM-MHVC: 1 X-IsSubscribed: yes X-SW-Source: 2014-04/txt/msg00318.txt.bz2 Final ping. I initially posted this three weeks ago. Eli Zaretskii immediately approved the doc part. The remainder has been ignored. I pinged two weeks ago. The remainder continues to be unreviewed. We (at EMC) find it useful. I will not ping further on it. I hope it goes in eventually, but have resigned myself to having to maintain it as a local change. Sigh. EMC has a copyright assignment on file with the FSF (plus this is small enought that I'm not sure it is copyrightable), so anyone who wishes to do so should feel free to incorporate it into their local versions of GDB. David Taylor wrote: > ping. > > David Taylor wrote: > > > Motivation: > > > > When connecting to a remote system, we use the compare-sections command > > to verify that the box is running the code that we think it is running. > > Since the system is up and running and *NOT* 'freshly downloaded without > > yet executing anything', read-write sections, of course, differ from > > what they were in the executable file. > > > > Comparing read-write sections takes time and more importantly the > > MIS-MATCHED output is confusing to some users. > > > > The compare-sections command compares all loadable sections including > > read-write sections. This patch gives the user the option to compare > > just the loadable read-only sections. > > > > For gdb/ChangeLog: > > > > 2014-03-26 David Taylor > > > > * remote.c (compare_sections_command): Add -r option to compare > > all loadable read-only sections. > > > > For gdb/doc/ChangeLog: > > > > 2014-03-26 David Taylor > > > > * gdb.texinfo (compare-sections): Document the new -r (read-only) > > option. > > > > I'm not sure that this patch is big enough to require a copyright > > assignment, but regardless, EMC has a copyright assignment on file for > > GDB (and GCC and BINUTILS as well). > > > > If it is approved, I will need someone else to commit it as I don't have > > write access. > > > > Patch: > > > > Index: gdb/remote.c > > =================================================================== > > RCS file: /home/cvsroot/GDB/gdb/remote.c,v > > retrieving revision 1.8 > > diff -u -r1.8 remote.c > > --- gdb/remote.c 26 Mar 2014 14:12:34 -0000 1.8 > > +++ gdb/remote.c 26 Mar 2014 15:49:40 -0000 > > @@ -8664,6 +8664,7 @@ > > int matched = 0; > > int mismatched = 0; > > int res; > > + int read_only = 0; > > > > if (!exec_bfd) > > error (_("command cannot be used without an exec file")); > > @@ -8671,11 +8672,20 @@ > > /* Make sure the remote is pointing at the right process. */ > > set_general_process (); > > > > + if (args && (strcmp (args, "-r") == 0)) > > + { > > + read_only = 1; > > + args = NULL; > > + } > > + > > for (s = exec_bfd->sections; s; s = s->next) > > { > > if (!(s->flags & SEC_LOAD)) > > continue; /* Skip non-loadable section. */ > > > > + if (read_only && ((s->flags & SEC_READONLY) == 0)) > > + continue; /* Skip writeable sections */ > > + > > size = bfd_get_section_size (s); > > if (size == 0) > > continue; /* Skip zero-length section. */ > > @@ -12046,7 +12056,8 @@ > > > > add_cmd ("compare-sections", class_obscure, compare_sections_command, _("\ > > Compare section data on target to the exec file.\n\ > > -Argument is a single section name (default: all loaded sections)."), > > +Argument is a single section name (default: all loaded sections).\n\ > > +To compare only read-only loaded sections, specify the -r option."), > > &cmdlist); > > > > add_cmd ("packet", class_maintenance, packet_command, _("\ > > Index: gdb/doc/gdb.texinfo > > =================================================================== > > RCS file: /home/cvsroot/GDB/gdb/doc/gdb.texinfo,v > > retrieving revision 1.1.1.2 > > diff -u -r1.1.1.2 gdb.texinfo > > --- gdb/doc/gdb.texinfo 18 Feb 2014 15:36:03 -0000 1.1.1.2 > > +++ gdb/doc/gdb.texinfo 26 Mar 2014 15:49:40 -0000 > > @@ -8760,11 +8760,12 @@ > > > > @table @code > > @kindex compare-sections > > -@item compare-sections @r{[}@var{section-name}@r{]} > > +@item compare-sections @r{[}@var{section-name}@r{|}@code{-r}@r{]} > > Compare the data of a loadable section @var{section-name} in the > > executable file of the program being debugged with the same section in > > the remote machine's memory, and report any mismatches. With no > > -arguments, compares all loadable sections. This command's > > +arguments, compares all loadable sections. With an argument of > > +@code{-r}, compares all loadable read-only sections. This command's > > availability depends on the target's support for the @code{"qCRC"} > > remote request. > > @end table > > >