aboutsummaryrefslogtreecommitdiff
path: root/gdb/v850ice.c
diff options
context:
space:
mode:
authorKeith Seitz <keiths@cygnus>1998-08-20 00:14:03 +0000
committerKeith Seitz <keiths@cygnus>1998-08-20 00:14:03 +0000
commit67205639eb1260d5d65bf91ee9c1aa3ab5de8c22 (patch)
tree43b49a4efdf1b10cabf822594d25a961ecfd9341 /gdb/v850ice.c
parent9ca743cf2f4ff7aeaf99f9bd558433d2833ba35d (diff)
downloadgdb-67205639eb1260d5d65bf91ee9c1aa3ab5de8c22.zip
gdb-67205639eb1260d5d65bf91ee9c1aa3ab5de8c22.tar.gz
gdb-67205639eb1260d5d65bf91ee9c1aa3ab5de8c22.tar.bz2
* v850ice.c (v850ice_stop): New function to stop the ICE.
(v850ice_load) Pass filename to ICE DLL. (ice_stepi, ice_nexti, ice_cont): Do not directly call the gdb commands -- let the GUI do it so that it can retain control of the display.
Diffstat (limited to 'gdb/v850ice.c')
-rwxr-xr-xgdb/v850ice.c35
1 files changed, 20 insertions, 15 deletions
diff --git a/gdb/v850ice.c b/gdb/v850ice.c
index d94ccdd..b8d3201 100755
--- a/gdb/v850ice.c
+++ b/gdb/v850ice.c
@@ -78,6 +78,8 @@ static void v850ice_open PARAMS ((char *name, int from_tty));
static void v850ice_close PARAMS ((int quitting));
+static void v850ice_stop PARAMS ((void));
+
static void v850ice_store_registers PARAMS ((int regno));
static void v850ice_mourn PARAMS ((void));
@@ -382,6 +384,14 @@ v850ice_close (quitting)
}
}
+/* Stop the process on the ice. */
+static void
+v850ice_stop ()
+{
+ /* This is silly, but it works... */
+ v850ice_command ("stop", 0);
+}
+
static void
v850ice_detach (args, from_tty)
char *args;
@@ -767,7 +777,7 @@ v850ice_load (filename, from_tty)
iob.size = 0;
iob.buf = buf;
generic_load(filename, from_tty);
- ExeAppReq ("GDB", GDOWNLOAD, NULL, &iob);
+ ExeAppReq ("GDB", GDOWNLOAD, filename, &iob);
}
static int
@@ -811,9 +821,8 @@ static int
ice_cont (c)
char *c;
{
- printf_unfiltered ("continue (ice)\n");
- continue_command (NULL, 1);
- togdb_force_update ();
+ printf_filtered ("continue (ice)");
+ Tcl_Eval (gdbtk_interp, "gdb_immediate continue");
return 1;
}
@@ -821,15 +830,13 @@ static int
ice_stepi (c)
char *c;
{
- char count_string[10] = "\0";
+ char string[50] = "\0";
int count = (int) c;
- sprintf (count_string, "%d", count);
-
+ sprintf (string, "gdb_immediate stepi %d", count);
printf_unfiltered ("stepi (ice)\n");
- stepi_command (count_string, 1);
+ Tcl_Eval (gdbtk_interp, string);
ReplyMessage ((LRESULT) 1);
- togdb_force_update ();
return 1;
}
@@ -837,14 +844,12 @@ static int
ice_nexti (c)
char *c;
{
- char count_string[10] = "\0";
+ char string[50] = "\0";
int count = (int) c;
- sprintf (count_string, "%d", count);
-
+ sprintf (string, "gdb_immediate nexti %d", count);
printf_unfiltered ("nexti (ice)\n");
- nexti_command (count_string, 1);
- togdb_force_update ();
+ Tcl_Eval (gdbtk_interp, string);
return 1;
}
@@ -900,7 +905,7 @@ static void init_850ice_ops(void)
v850ice_ops.to_can_run = 0;
v850ice_ops.to_notice_signals = 0;
v850ice_ops.to_thread_alive = NULL;
- v850ice_ops.to_stop = 0;
+ v850ice_ops.to_stop = v850ice_stop;
v850ice_ops.to_stratum = process_stratum;
v850ice_ops.DONT_USE = NULL;
v850ice_ops.to_has_all_memory = 1;