From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28437 invoked by alias); 3 Apr 2014 20:39:14 -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 28425 invoked by uid 89); 3 Apr 2014 20:39:13 -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; Thu, 03 Apr 2014 20:39:10 +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 s33Kd6OW032110 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 3 Apr 2014 16:39:06 -0400 Received: from mailhub.lss.emc.com (mailhubhoprd01.lss.emc.com [10.254.221.251]) by hop04-l1d11-si02.isus.emc.com (RSA Interceptor) for ; Thu, 3 Apr 2014 16:38:52 -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 s33Kcpvo024195 for ; Thu, 3 Apr 2014 16:38:51 -0400 Received: by usendtaylorx2l.lss.emc.com (Postfix, from userid 26043) id CC6E55C85A9; Thu, 3 Apr 2014 16:38:49 -0400 (EDT) Received: from usendtaylorx2l (localhost [127.0.0.1]) by usendtaylorx2l.lss.emc.com (Postfix) with ESMTP id 3ED705C7DF2 for ; Thu, 3 Apr 2014 16:38:49 -0400 (EDT) To: "gdb-patches@sourceware.org" Subject: Re: RFA/remote: compare-sections In-reply-to: <24262.1395849610@usendtaylorx2l> References: <24262.1395849610@usendtaylorx2l> Comments: In-reply-to David Taylor message dated "Wed, 26 Mar 2014 12:00:10 -0400." Date: Thu, 03 Apr 2014 20:39:00 -0000 Message-ID: <29572.1396557529@usendtaylorx2l> From: David Taylor X-EMM-MHVC: 1 X-IsSubscribed: yes X-SW-Source: 2014-04/txt/msg00052.txt.bz2 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 >