aboutsummaryrefslogtreecommitdiff
path: root/gdb/remote-sds.c
diff options
context:
space:
mode:
authorStan Shebs <shebs@codesourcery.com>1997-09-16 23:01:29 +0000
committerStan Shebs <shebs@codesourcery.com>1997-09-16 23:01:29 +0000
commit665ff287fb1184dd0af5a31aaf3b7e713e7592f1 (patch)
tree9e62bcc761a83c7f593e87a63ec96033fb0c7acd /gdb/remote-sds.c
parent714229c39ae3e3658e5d288f665d335eb3d9fa1f (diff)
downloadgdb-665ff287fb1184dd0af5a31aaf3b7e713e7592f1.zip
gdb-665ff287fb1184dd0af5a31aaf3b7e713e7592f1.tar.gz
gdb-665ff287fb1184dd0af5a31aaf3b7e713e7592f1.tar.bz2
* remote-sds.c (sds_load): New function.
(sds_ops): Use it. (sds_open): Don't set inferior_pid yet. (sds_kill): Remove contents. (sds_create_inferior): Rewrite to work more like monitor interfaces. (sds_restart): Remove, no longer used.
Diffstat (limited to 'gdb/remote-sds.c')
-rw-r--r--gdb/remote-sds.c65
1 files changed, 16 insertions, 49 deletions
diff --git a/gdb/remote-sds.c b/gdb/remote-sds.c
index d39af60..ffcc29d 100644
--- a/gdb/remote-sds.c
+++ b/gdb/remote-sds.c
@@ -35,7 +35,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "objfiles.h"
#include "gdb-stabs.h"
#include "gdbthread.h"
-
+#include "gdbcore.h"
#include "dcache.h"
#ifdef USG
@@ -72,10 +72,10 @@ static void sds_store_registers PARAMS ((int));
static void sds_mourn PARAMS ((void));
-static void sds_restart PARAMS ((void));
-
static void sds_create_inferior PARAMS ((char *, char *, char **));
+extern void sds_load PARAMS ((char *, int));
+
static int getmessage PARAMS ((unsigned char *, int));
static int putmessage PARAMS ((unsigned char *, int));
@@ -139,13 +139,6 @@ static int just_started;
static int message_pending;
-/* Restart the remote side; this is an extended protocol operation. */
-
-static void
-sds_restart ()
-{
-}
-
/* Clean up connection to a remote debugger. */
/* ARGSUSED */
@@ -239,15 +232,6 @@ device is attached to the remote system (e.g. /dev/ttya).");
}
push_target (&sds_ops); /* Switch to using remote target now */
- /* Without this, some commands which require an active target (such
- as kill) won't work. This variable serves (at least) double duty
- as both the pid of the target process (if it has such), and as a
- flag indicating that a target is active. These functions should
- be split out into seperate variables, especially since GDB will
- someday have a notion of debugging several processes. */
-
- inferior_pid = 42000;
-
just_started = 1;
/* Start the remote connection; if error (0), discard this target.
@@ -1049,24 +1033,7 @@ getmessage (buf, forever)
static void
sds_kill ()
{
- /* For some mysterious reason, wait_for_inferior calls kill instead of
- mourn after it gets TARGET_WAITKIND_SIGNALLED. Work around it. */
- if (kill_kludge)
- {
- kill_kludge = 0;
- target_mourn_inferior ();
- return;
- }
-
-#if 0 /* fix to use 1-arg fn */
- /* Use catch_errors so the user can quit from gdb even when we aren't on
- speaking terms with the remote system. */
- catch_errors (putmessage, "k", "", RETURN_MASK_ERROR);
-#endif
-
- /* Don't wait for it to die. I'm not really sure it matters whether
- we do or not. For the existing stubs, kill is a noop. */
- target_mourn_inferior ();
+ /* Don't try to do anything to the target. */
}
static void
@@ -1082,24 +1049,24 @@ sds_create_inferior (exec_file, args, env)
char *args;
char **env;
{
- /* Rip out the breakpoints; we'll reinsert them after restarting
- the remote server. */
- remove_breakpoints ();
-
- /* Now restart the remote server. */
- sds_restart ();
-
- /* Now put the breakpoints back in. This way we're safe if the
- restart function works via a unix fork on the remote side. */
- insert_breakpoints ();
+ inferior_pid = 42000;
/* Clean up from the last time we were running. */
clear_proceed_status ();
/* Let the remote process run. */
- proceed (-1, TARGET_SIGNAL_0, 0);
+ proceed (bfd_get_start_address (exec_bfd), TARGET_SIGNAL_0, 0);
}
+static void
+sds_load (filename, from_tty)
+ char *filename;
+ int from_tty;
+{
+ generic_load (filename, from_tty);
+
+ inferior_pid = 0;
+}
/* The SDS monitor has commands for breakpoint insertion, although it
it doesn't actually manage the breakpoints, it just returns the
@@ -1179,7 +1146,7 @@ Specify the serial device it is connected to (e.g. /dev/ttya).", /* to_doc */
NULL, /* to_terminal_ours */
NULL, /* to_terminal_info */
sds_kill, /* to_kill */
- generic_load, /* to_load */
+ sds_load, /* to_load */
NULL, /* to_lookup_symbol */
sds_create_inferior, /* to_create_inferior */
sds_mourn, /* to_mourn_inferior */