mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-12 20:03:45 +08:00
* 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.
This commit is contained in:
parent
f57718b4c3
commit
1b98914a55
@ -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.
|
||||
|
@ -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},
|
||||
|
@ -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;
|
||||
|
@ -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, ¤t_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, ¤t_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.
|
||||
|
Loading…
Reference in New Issue
Block a user