diff options
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rwxr-xr-x | gdb/v850ice.c | 35 |
2 files changed, 28 insertions, 15 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c6348c9..2ecd4aa 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +1998-08-19 Keith Seitz <keiths@cygnus.com> + + * 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. + Wed Aug 19 15:53:52 1998 Anthony Green <green@hoser.cygnus.com> * i386v4-nat.c: Include sys/reg.h if present. 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; |