2002-01-15 Michael Snyder <msnyder@redhat.com>
* target.c: New command, "set trust-readonly-sections on". (do_xfer_memory): Honor the suggestion to trust readonly sections by reading them from the object file instead of from the target. (initialize_targets): Register command "set trust-readonly-sections".
This commit is contained in:
parent
2c955b8b61
commit
3a11626da1
2 changed files with 42 additions and 5 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2002-01-15 Michael Snyder <msnyder@redhat.com>
|
||||||
|
|
||||||
|
* target.c: New command, "set trust-readonly-sections on".
|
||||||
|
(do_xfer_memory): Honor the suggestion to trust readonly sections
|
||||||
|
by reading them from the object file instead of from the target.
|
||||||
|
(initialize_targets): Register command "set trust-readonly-sections".
|
||||||
|
|
||||||
2002-01-29 Andrew Cagney <ac131313@redhat.com>
|
2002-01-29 Andrew Cagney <ac131313@redhat.com>
|
||||||
|
|
||||||
* parse.c (target_map_name_to_register): Simplify, search regs and
|
* parse.c (target_map_name_to_register): Simplify, search regs and
|
||||||
|
|
40
gdb/target.c
40
gdb/target.c
|
@ -835,6 +835,8 @@ target_write_memory (CORE_ADDR memaddr, char *myaddr, int len)
|
||||||
return target_xfer_memory (memaddr, myaddr, len, 1);
|
return target_xfer_memory (memaddr, myaddr, len, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int trust_readonly = 0;
|
||||||
|
|
||||||
/* Move memory to or from the targets. The top target gets priority;
|
/* Move memory to or from the targets. The top target gets priority;
|
||||||
if it cannot handle it, it is offered to the next one down, etc.
|
if it cannot handle it, it is offered to the next one down, etc.
|
||||||
|
|
||||||
|
@ -857,6 +859,24 @@ do_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
|
||||||
0. */
|
0. */
|
||||||
errno = 0;
|
errno = 0;
|
||||||
|
|
||||||
|
if (!write && trust_readonly)
|
||||||
|
{
|
||||||
|
/* User-settable option, "trust-readonly". If true, then
|
||||||
|
memory from any SEC_READONLY bfd section may be read
|
||||||
|
directly from the bfd file. */
|
||||||
|
|
||||||
|
struct section_table *secp;
|
||||||
|
|
||||||
|
for (secp = current_target.to_sections;
|
||||||
|
secp < current_target.to_sections_end;
|
||||||
|
secp++)
|
||||||
|
{
|
||||||
|
if (memaddr >= secp->addr && memaddr < secp->endaddr)
|
||||||
|
return xfer_memory (memaddr, myaddr, len, 0,
|
||||||
|
attrib, ¤t_target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* The quick case is that the top target can handle the transfer. */
|
/* The quick case is that the top target can handle the transfer. */
|
||||||
res = current_target.to_xfer_memory
|
res = current_target.to_xfer_memory
|
||||||
(memaddr, myaddr, len, write, attrib, ¤t_target);
|
(memaddr, myaddr, len, write, attrib, ¤t_target);
|
||||||
|
@ -2254,13 +2274,23 @@ initialize_targets (void)
|
||||||
add_info ("target", target_info, targ_desc);
|
add_info ("target", target_info, targ_desc);
|
||||||
add_info ("files", target_info, targ_desc);
|
add_info ("files", target_info, targ_desc);
|
||||||
|
|
||||||
add_show_from_set (
|
add_show_from_set
|
||||||
add_set_cmd ("target", class_maintenance, var_zinteger,
|
(add_set_cmd ("target", class_maintenance, var_zinteger,
|
||||||
(char *) &targetdebug,
|
(char *) &targetdebug,
|
||||||
"Set target debugging.\n\
|
"Set target debugging.\n\
|
||||||
When non-zero, target debugging is enabled.", &setdebuglist),
|
When non-zero, target debugging is enabled.", &setdebuglist),
|
||||||
&showdebuglist);
|
&showdebuglist);
|
||||||
|
|
||||||
|
add_show_from_set
|
||||||
|
(add_set_boolean_cmd
|
||||||
|
("trust-readonly-sections", class_support,
|
||||||
|
&trust_readonly,
|
||||||
|
"Set mode for reading from readonly sections.\n\
|
||||||
|
When this mode is on, memory reads from readonly sections (such as .text)\n\
|
||||||
|
will be read from the object file instead of from the target. This will\n\
|
||||||
|
result in significant performance improvement for remote targets.",
|
||||||
|
&setlist),
|
||||||
|
&showlist);
|
||||||
|
|
||||||
add_com ("monitor", class_obscure, do_monitor_command,
|
add_com ("monitor", class_obscure, do_monitor_command,
|
||||||
"Send a command to the remote monitor (remote targets only).");
|
"Send a command to the remote monitor (remote targets only).");
|
||||||
|
|
Loading…
Add table
Reference in a new issue