* mi/mi-cmds.c (mi_cmds): Route -exec-run, -exec-until,
authorVladimir Prus <vladimir@codesourcery.com>
Sun, 29 Jun 2008 17:36:36 +0000 (17:36 +0000)
committerVladimir Prus <vladimir@codesourcery.com>
Sun, 29 Jun 2008 17:36:36 +0000 (17:36 +0000)
-target-download and -target-select via CLI, so that
the quoting rules are the same as they were (unfortunately)
in all prior gdb releases.
* mi/mi-cmds.h (mi_cmd_exec_run, mi_cmd_exec_until)
(mi_cmd_target_download, mi_cmd_target_select): Remove.
* mi/mi-main.c (mi_cmd_exec_run, mi_cmd_exec_until)
(mi_cmd_target_download, mi_cmd_target_select): Remove.
(mi_cmd_execute): Set current_token even for commands
routed via CLI.

gdb/ChangeLog
gdb/mi/mi-cmds.c
gdb/mi/mi-cmds.h
gdb/mi/mi-main.c

index 6fa849738db96b231ed82b1303ea01f60a171447..2a0c90cdfe7182dc84505c4b6106d46c1e74e39e 100644 (file)
@@ -1,3 +1,16 @@
+2008-06-28  Vladimir Prus  <vladimir@codesourcery.com>
+
+       * mi/mi-cmds.c (mi_cmds): Route -exec-run, -exec-until,
+       -target-download and -target-select via CLI, so that
+       the quoting rules are the same as they were (unfortunately)
+       in all prior gdb releases.
+       * mi/mi-cmds.h (mi_cmd_exec_run, mi_cmd_exec_until)
+       (mi_cmd_target_download, mi_cmd_target_select): Remove.
+       * mi/mi-main.c (mi_cmd_exec_run, mi_cmd_exec_until)
+       (mi_cmd_target_download, mi_cmd_target_select): Remove.
+       (mi_cmd_execute): Set current_token even for commands
+       routed via CLI.
+
 2008-06-28  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * alphafbsd-tdep.c: Update for unwinder changes.
index e94648b72d024d01ba1dcc9b6bbb077139333c08..bf7388ac1a102bc77a7a532bdfa4b4f03abdbd23 100644 (file)
@@ -64,12 +64,12 @@ struct mi_cmd mi_cmds[] =
   { "exec-next", { NULL, 0 }, mi_cmd_exec_next},
   { "exec-next-instruction", { NULL, 0 }, mi_cmd_exec_next_instruction},
   { "exec-return", { NULL, 0 }, mi_cmd_exec_return},
-  { "exec-run", { NULL, 0 }, mi_cmd_exec_run},
+  { "exec-run", { "run", 1 }, NULL},
   { "exec-show-arguments", { NULL, 0 }, NULL },
   { "exec-signal", { NULL, 0 }, NULL },
   { "exec-step", { NULL, 0 }, mi_cmd_exec_step},
   { "exec-step-instruction", { NULL, 0 }, mi_cmd_exec_step_instruction},
-  { "exec-until", { NULL, 0 }, mi_cmd_exec_until},
+  { "exec-until", { "until", 1 }, NULL},
   { "file-clear", { NULL, 0 }, NULL },
   { "file-exec-and-symbols", { "file", 1 }, NULL },
   { "file-exec-file", { "exec-file", 1 }, NULL },
@@ -121,7 +121,7 @@ struct mi_cmd mi_cmds[] =
   { "target-compare-sections", { NULL, 0 }, NULL },
   { "target-detach", { "detach", 0 }, 0 },
   { "target-disconnect", { "disconnect", 0 }, 0 },
-  { "target-download", { NULL, 0 }, mi_cmd_target_download},
+  { "target-download", { "load", 1 }, NULL},
   { "target-exec-status", { NULL, 0 }, NULL },
   { "target-file-delete", { NULL, 0 }, mi_cmd_target_file_delete },
   { "target-file-get", { NULL, 0 }, mi_cmd_target_file_get },
@@ -129,7 +129,7 @@ struct mi_cmd mi_cmds[] =
   { "target-list-available-targets", { NULL, 0 }, NULL },
   { "target-list-current-targets", { NULL, 0 }, NULL },
   { "target-list-parameters", { NULL, 0 }, NULL },
-  { "target-select", { NULL, 0 }, mi_cmd_target_select},
+  { "target-select", { "target", 1 }, NULL},
   { "thread-info", { NULL, 0 }, mi_cmd_thread_info },
   { "thread-list-ids", { NULL, 0 }, mi_cmd_thread_list_ids},
   { "thread-select", { NULL, 0 }, mi_cmd_thread_select},
index e4450dad16069589343828b4e4c2c5c225cfe751..72e18c7d515563c6575846677cbf69cc1efaa348 100644 (file)
@@ -56,10 +56,8 @@ extern mi_cmd_argv_ftype mi_cmd_exec_finish;
 extern mi_cmd_argv_ftype mi_cmd_exec_next;
 extern mi_cmd_argv_ftype mi_cmd_exec_next_instruction;
 extern mi_cmd_argv_ftype mi_cmd_exec_return;
-extern mi_cmd_argv_ftype mi_cmd_exec_run;
 extern mi_cmd_argv_ftype mi_cmd_exec_step;
 extern mi_cmd_argv_ftype mi_cmd_exec_step_instruction;
-extern mi_cmd_argv_ftype mi_cmd_exec_until;
 extern mi_cmd_argv_ftype mi_cmd_exec_interrupt;
 extern mi_cmd_argv_ftype mi_cmd_file_list_exec_source_file;
 extern mi_cmd_argv_ftype mi_cmd_file_list_exec_source_files;
@@ -75,11 +73,9 @@ extern mi_cmd_argv_ftype mi_cmd_stack_list_frames;
 extern mi_cmd_argv_ftype mi_cmd_stack_list_locals;
 extern mi_cmd_argv_ftype mi_cmd_stack_select_frame;
 extern mi_cmd_argv_ftype mi_cmd_symbol_list_lines;
-extern mi_cmd_argv_ftype mi_cmd_target_download;
 extern mi_cmd_argv_ftype mi_cmd_target_file_get;
 extern mi_cmd_argv_ftype mi_cmd_target_file_put;
 extern mi_cmd_argv_ftype mi_cmd_target_file_delete;
-extern mi_cmd_argv_ftype mi_cmd_target_select;
 extern mi_cmd_argv_ftype mi_cmd_thread_info;
 extern mi_cmd_argv_ftype mi_cmd_thread_list_ids;
 extern mi_cmd_argv_ftype mi_cmd_thread_select;
index 2417e74c90e002f4c50d5a7611d00fbf93d9bb02..14144348d43ab495ce9aabb4e9be5e1e2d27c2ec 100644 (file)
@@ -106,13 +106,6 @@ mi_cmd_gdb_exit (char *command, char **argv, int argc)
   quit_force (NULL, FROM_TTY);
 }
 
-void
-mi_cmd_exec_run (char *command, char **argv, int argc)
-{
-  /* FIXME: Should call a libgdb function, not a cli wrapper.  */
-  return mi_execute_async_cli_command ("run", argv, argc);
-}
-
 void
 mi_cmd_exec_next (char *command, char **argv, int argc)
 {
@@ -148,13 +141,6 @@ mi_cmd_exec_finish (char *command, char **argv, int argc)
   return mi_execute_async_cli_command ("finish", argv, argc);
 }
 
-void
-mi_cmd_exec_until (char *command, char **argv, int argc)
-{
-  /* FIXME: Should call a libgdb function, not a cli wrapper.  */
-  return mi_execute_async_cli_command ("until", argv, argc);
-}
-
 void
 mi_cmd_exec_return (char *command, char **argv, int argc)
 {
@@ -594,56 +580,6 @@ mi_cmd_data_evaluate_expression (char *command, char **argv, int argc)
   do_cleanups (old_chain);
 }
 
-void
-mi_cmd_target_download (char *command, char **argv, int argc)
-{
-  char *run;
-  struct cleanup *old_cleanups = NULL;
-
-  /* There may be at most one parameter -- the name of the
-     file to download.  */
-  run = xstrprintf ("load %s", argc ? *argv : "");
-  old_cleanups = make_cleanup (xfree, run);
-  execute_command (run, 0);
-
-  do_cleanups (old_cleanups);
-}
-
-/* Connect to the remote target.  */
-void
-mi_cmd_target_select (char *command, char **argv, int argc)
-{
-  char *run = NULL;
-  struct cleanup *old_cleanups = NULL;
-  int i;
-
-  if (argc == 0)
-    error ("no target type specified");
-    
-  for (i = 0; i < argc; ++i)
-    {
-      if (i == 0)
-       run = concat ("target ", argv[0], NULL);
-      else
-       {
-         char *prev = run;
-         run = concat (run, " ", argv[i], NULL);
-         xfree (prev);
-       }
-    }
-  
-  old_cleanups = make_cleanup (xfree, run);
-
-  /* target-select is always synchronous.  Once the call has returned
-     we know that we are connected.  */
-  /* NOTE: At present all targets that are connected are also
-     (implicitly) talking to a halted target.  In the future this may
-     change.  */
-  execute_command (run, 0);
-
-  do_cleanups (old_cleanups);
-}
-
 /* DATA-MEMORY-READ:
 
    ADDR: start address of data to be dumped.
@@ -1118,6 +1054,9 @@ mi_cmd_execute (struct mi_parse *parse)
   struct cleanup *cleanup;
   free_all_values ();
 
+  current_token = xstrdup (parse->token);
+  cleanup = make_cleanup (free_current_contents, &current_token);
+
   if (parse->cmd->argv_func != NULL)
     {
       if (target_executing)
@@ -1135,10 +1074,7 @@ mi_cmd_execute (struct mi_parse *parse)
              error_stream (stb);
            }
        }
-      current_token = xstrdup (parse->token);
-      cleanup = make_cleanup (free_current_contents, &current_token);
       parse->cmd->argv_func (parse->command, parse->argv, parse->argc);
-      do_cleanups (cleanup);
     }
   else if (parse->cmd->cli.cmd != 0)
     {
@@ -1162,6 +1098,7 @@ mi_cmd_execute (struct mi_parse *parse)
       make_cleanup_ui_file_delete (stb);
       error_stream (stb);
     }
+  do_cleanups (cleanup);
 }
 
 /* FIXME: This is just a hack so we can get some extra commands going.