mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
compare-sections: New -r option.
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. gdb/ 2014-05-01 David Taylor <dtaylor@emc.com> * remote.c (compare_sections_command): Add -r option to compare all loadable read-only sections. gdb/doc/ 2014-05-01 David Taylor <dtaylor@emc.com> * gdb.texinfo (compare-sections): Document the new -r (read-only) option.
This commit is contained in:
parent
86a80a50f2
commit
95cf3b38cd
@ -1,3 +1,8 @@
|
||||
2014-05-01 David Taylor <dtaylor@emc.com>
|
||||
|
||||
* remote.c (compare_sections_command): Add -r option to compare
|
||||
all loadable read-only sections.
|
||||
|
||||
2014-04-30 Siva Chandra Reddy <sivachandra@google.com>
|
||||
|
||||
* dwarf2loc.c (dwarf2_locexpr_baton_eval,
|
||||
|
@ -1,3 +1,8 @@
|
||||
2014-05-01 David Taylor <dtaylor@emc.com>
|
||||
|
||||
* gdb.texinfo (compare-sections): Document the new -r (read-only)
|
||||
option.
|
||||
|
||||
2014-04-24 Michael Sturm <michael.sturm@mintel.com>
|
||||
Walfred Tedeschi <walfred.tedeschi@intel.com>
|
||||
|
||||
|
@ -8772,11 +8772,12 @@ situations.
|
||||
|
||||
@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
|
||||
|
13
gdb/remote.c
13
gdb/remote.c
@ -8484,6 +8484,7 @@ compare_sections_command (char *args, int from_tty)
|
||||
int matched = 0;
|
||||
int mismatched = 0;
|
||||
int res;
|
||||
int read_only = 0;
|
||||
|
||||
if (!exec_bfd)
|
||||
error (_("command cannot be used without an exec file"));
|
||||
@ -8491,11 +8492,20 @@ compare_sections_command (char *args, int from_tty)
|
||||
/* Make sure the remote is pointing at the right process. */
|
||||
set_general_process ();
|
||||
|
||||
if (args != NULL && 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. */
|
||||
@ -11771,7 +11781,8 @@ the packets being used"),
|
||||
|
||||
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, _("\
|
||||
|
Loading…
Reference in New Issue
Block a user