aboutsummaryrefslogtreecommitdiff
path: root/gdb/monitor.h
diff options
context:
space:
mode:
authorStu Grossman <grossman@cygnus>1995-03-15 23:31:14 +0000
committerStu Grossman <grossman@cygnus>1995-03-15 23:31:14 +0000
commit2081365ffad350959629339d1633b41ecc6fc95f (patch)
treeb8beaf0bf93947d9699a3a994a930a6d50bb4205 /gdb/monitor.h
parenta7f6f40b3c489018d8038e2e1da58cd1e8540436 (diff)
downloadfsf-binutils-gdb-2081365ffad350959629339d1633b41ecc6fc95f.zip
fsf-binutils-gdb-2081365ffad350959629339d1633b41ecc6fc95f.tar.gz
fsf-binutils-gdb-2081365ffad350959629339d1633b41ecc6fc95f.tar.bz2
* findvar.c (read_register_bytes write_register_bytes): Make
these routines much smarter about updating registers from the target, only doing so when absolutely necessary. This really speeds up register modification on some remote targets. * monitor.c: More cleanups. Get rid of monitor_load_ascii_srec. BFD makes this unnecessary. Lots of debugging speedups. * (expect): NULL terminate return string. * (monitor_open monitor_supply_register parse_register_dump monitor_wait monitor_fetch_register): Switch to using GNU regexp library to parse multi-register displays. * (monitor_read_memory): Read multiple bytes (up to 16) at once. * (monitor_create_inferior): Call clear_proceed_status to make run command notice first breakpoint. * (monitor_load): Clean up. Reset inferior_pid, set pc to start address and reset symbol table stuff to make loads put things into a fresh state. * (monitor_load_srec): Lower sleep time to 1 second. * monitor.h (struct monitor_ops): Add register_pattern and supply_register to monitor_ops. * rom68k-rom.c: Add new support for handling register dumps.
Diffstat (limited to 'gdb/monitor.h')
-rw-r--r--gdb/monitor.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/gdb/monitor.h b/gdb/monitor.h
index ad21b02..59b6691 100644
--- a/gdb/monitor.h
+++ b/gdb/monitor.h
@@ -76,6 +76,13 @@ struct monitor_ops {
struct cmd_resp getmem; /* display memory */
struct cmd_resp setreg; /* set a register */
struct cmd_resp getreg; /* get a register */
+ /* Some commands can dump a bunch of registers
+ at once. This comes as a set of REG=VAL
+ pairs. This should be called for each pair
+ of registers that we can parse to supply
+ GDB with the value of a register. */
+ char *register_pattern; /* Pattern that picks out register from reg dump */
+ void (*supply_register) PARAMS ((char *name, int namelen, char *val, int vallen));
char *load; /* load command */
char *prompt; /* monitor command prompt */
char *cmd_delim; /* end-of-command delimitor */
@@ -133,3 +140,4 @@ extern struct monitor_ops *current_monitor;
#define REG_DELIM (current_monitor->regset.delim)
extern void monitor_open PARAMS ((char *args, struct monitor_ops *ops, int from_tty));
+extern char *monitor_supply_register PARAMS ((int regno, char *valstr));