aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/remote-es.c9
-rw-r--r--gdb/remote-mon.c10
-rw-r--r--gdb/remote-nindy.c10
-rw-r--r--gdb/remote-utils.c26
-rw-r--r--gdb/remote-utils.h4
-rw-r--r--gdb/target.h33
7 files changed, 72 insertions, 26 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 09f0736..50503bf 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
Fri Feb 25 09:41:11 1994 Jim Kingdon (kingdon@deneb.cygnus.com)
+ * remote.c, remote-mon.c, remote-utils.c, remote-utils.h,
+ target.h, remote-es.c, remote-nindy.c: Don't set baud rate if
+ baud_rate is -1. Remove sr_get_baud_rate and sr_set_baud_rate;
+ just use the global variable itself. When printing baud rate,
+ don't print a baud rate if baud_rate is -1.
+
* coffread.c (read_coff_symtab): Pass mst_file_* to
record_minimal_symbol for C_STAT symbols. Put C_EXT and C_STAT
symbols in the minimal symbols regardless of SDB_TYPE.
diff --git a/gdb/remote-es.c b/gdb/remote-es.c
index d8f3da1..0da26ac 100644
--- a/gdb/remote-es.c
+++ b/gdb/remote-es.c
@@ -371,10 +371,13 @@ es1800_open (name, from_tty)
perror_with_name ("fcntl serial");
}
- if (SERIAL_SETBAUDRATE (es1800_desc, baud_rate))
+ if (baud_rate != -1)
{
- SERIAL_CLOSE (es1800_desc);
- perror_with_name (name);
+ if (SERIAL_SETBAUDRATE (es1800_desc, baud_rate))
+ {
+ SERIAL_CLOSE (es1800_desc);
+ perror_with_name (name);
+ }
}
SERIAL_RAW (es1800_desc);
diff --git a/gdb/remote-mon.c b/gdb/remote-mon.c
index 115822b..4552cca 100644
--- a/gdb/remote-mon.c
+++ b/gdb/remote-mon.c
@@ -341,11 +341,13 @@ general_open(args, name, from_tty)
if (monitor_desc == NULL)
perror_with_name(dev_name);
- /* The baud rate was specified when GDB was started. */
- if (SERIAL_SETBAUDRATE (monitor_desc, sr_get_baud_rate()))
+ if (baud_rate != -1)
{
- SERIAL_CLOSE (monitor_desc);
- perror_with_name (name);
+ if (SERIAL_SETBAUDRATE (monitor_desc, baud_rate))
+ {
+ SERIAL_CLOSE (monitor_desc);
+ perror_with_name (name);
+ }
}
SERIAL_RAW(monitor_desc);
diff --git a/gdb/remote-nindy.c b/gdb/remote-nindy.c
index aef95d5..f9cac2b 100644
--- a/gdb/remote-nindy.c
+++ b/gdb/remote-nindy.c
@@ -197,7 +197,10 @@ nindy_open (name, from_tty)
/* Allow user to interrupt the following -- we could hang if there's
no NINDY at the other end of the remote tty. */
immediate_quit++;
- sprintf(baudrate, "%d", sr_get_baud_rate());
+ /* If baud_rate is -1, then ninConnect will not recognize the baud rate
+ and will deal with the situation in a (more or less) reasonable
+ fashion. */
+ sprintf(baudrate, "%d", baud_rate);
ninConnect(name, baudrate,
nindy_initial_brk, !from_tty, nindy_old_protocol);
immediate_quit--;
@@ -227,8 +230,9 @@ nindy_detach (name, from_tty)
static void
nindy_files_info ()
{
- printf_unfiltered("\tAttached to %s at %d bps%s%s.\n", savename,
- sr_get_baud_rate(),
+ /* FIXME: this lies about the baud rate if we autobauded. */
+ printf_unfiltered("\tAttached to %s at %d bits per second%s%s.\n", savename,
+ baud_rate,
nindy_old_protocol? " in old protocol": "",
nindy_initial_brk? " with initial break": "");
}
diff --git a/gdb/remote-utils.c b/gdb/remote-utils.c
index f193419..482e247 100644
--- a/gdb/remote-utils.c
+++ b/gdb/remote-utils.c
@@ -123,7 +123,7 @@ sr_scan_args(proto, args)
/* check for missing or empty baud rate. */
CHECKDONE(p, q);
- sr_set_baud_rate(n);
+ baud_rate = n;
/* look for debug value. */
n = strtol(p, &q, 10);
@@ -177,10 +177,13 @@ gr_open(args, from_tty, gr)
if (!sr_get_desc())
perror_with_name((char *) sr_get_device());
- if (SERIAL_SETBAUDRATE(sr_get_desc(), sr_get_baud_rate()) != 0)
+ if (baud_rate != -1)
{
- SERIAL_CLOSE(sr_get_desc());
- perror_with_name(sr_get_device());
+ if (SERIAL_SETBAUDRATE(sr_get_desc(), baud_rate) != 0)
+ {
+ SERIAL_CLOSE(sr_get_desc());
+ perror_with_name(sr_get_device());
+ }
}
SERIAL_RAW (sr_get_desc());
@@ -198,8 +201,13 @@ gr_open(args, from_tty, gr)
gr_settings->clear_all_breakpoints = remove_breakpoints;
if (from_tty)
- printf_filtered ("Remote debugging using `%s' at baud rate of %d\n",
- sr_get_device(), sr_get_baud_rate());
+ {
+ printf_filtered ("Remote debugging using `%s'", sr_get_device ());
+ if (baud_rate != -1)
+ printf_filtered (" at baud rate of %d",
+ baud_rate);
+ print_filtered ("\n");
+ }
push_target(gr->ops);
gr_checkin();
@@ -439,8 +447,10 @@ gr_files_info (ops)
#ifdef __GO32__
printf_filtered ("\tAttached to DOS asynctsr\n");
#else
- printf_filtered ("\tAttached to %s at %d baud\n",
- sr_get_device(), sr_get_baud_rate());
+ printf_filtered ("\tAttached to %s", sr_get_device());
+ if (baud_rate != -1)
+ printf_filtered ("at %d baud", baud_rate);
+ printf_filtered ("\n");
#endif
if (exec_bfd)
diff --git a/gdb/remote-utils.h b/gdb/remote-utils.h
index c8042d7..9c344d8 100644
--- a/gdb/remote-utils.h
+++ b/gdb/remote-utils.h
@@ -44,10 +44,6 @@ extern struct _sr_settings sr_settings;
#define sr_get_debug() (remote_debug)
#define sr_set_debug(newval) (remote_debug = (newval))
-/* get and set baud rate. */
-#define sr_get_baud_rate() (baud_rate)
-#define sr_set_baud_rate(newval) (baud_rate = (newval))
-
/* get and set timeout. */
#define sr_get_timeout() (sr_settings.timeout)
#define sr_set_timeout(newval) (sr_settings.timeout = (newval))
diff --git a/gdb/target.h b/gdb/target.h
index 92a59ab..31e6e89 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -213,6 +213,27 @@ struct target_ops
int len, int write,
struct target_ops * target));
+#if 0
+ /* Enable this after 4.12. */
+
+ /* Search target memory. Start at STARTADDR and take LEN bytes of
+ target memory, and them with MASK, and compare to DATA. If they
+ match, set *ADDR_FOUND to the address we found it at, store the data
+ we found at LEN bytes starting at DATA_FOUND, and return. If
+ not, add INCREMENT to the search address and keep trying until
+ the search address is outside of the range [LORANGE,HIRANGE).
+
+ If we don't find anything, set *ADDR_FOUND to (CORE_ADDR)0 and return. */
+ void (*to_search) PARAMS ((int len, char *data, char *mask,
+ CORE_ADDR startaddr, int increment,
+ CORE_ADDR lorange, CORE_ADDR hirange,
+ CORE_ADDR *addr_found, char *data_found));
+
+#define target_search(len, data, mask, startaddr, increment, lorange, hirange, addr_found, data_found) \
+ (*current_target->to_search) (len, data, mask, startaddr, increment, \
+ lorange, hirange, addr_found, data_found)
+#endif /* 0 */
+
void (*to_files_info) PARAMS ((struct target_ops *));
int (*to_insert_breakpoint) PARAMS ((CORE_ADDR, char *));
int (*to_remove_breakpoint) PARAMS ((CORE_ADDR, char *));
@@ -306,9 +327,13 @@ target_detach PARAMS ((char *, int));
#define target_resume(pid, step, siggnal) \
(*current_target->to_resume) (pid, step, siggnal)
-/* Wait for process pid to do something. Pid = -1 to wait for any pid to do
- something. Return pid of child, or -1 in case of error; store status
- through argument pointer STATUS. */
+/* Wait for process pid to do something. Pid = -1 to wait for any pid
+ to do something. Return pid of child, or -1 in case of error;
+ store status through argument pointer STATUS. Note that it is
+ *not* OK to return_to_top_level out of target_wait without popping
+ the debugging target from the stack; GDB isn't prepared to get back
+ to the prompt with a debugging target but without the frame cache,
+ stop_pc, etc., set up. */
#define target_wait(pid, status) \
(*current_target->to_wait) (pid, status)
@@ -594,7 +619,7 @@ find_core_target PARAMS ((void));
information (higher values, more information). */
extern int remote_debug;
-/* Speed in bits per second. */
+/* Speed in bits per second, or -1 which means don't mess with the speed. */
extern int baud_rate;
/* Functions for helping to write a native target. */