gdb: new function to wrap up executing command line scripts/commands
Small refactor to wrap up executing the scripts and commands passed using the -x, -ex, -ix, -iex command line flags. There should be no user visible changes after this commit. gdb/ChangeLog: * main.c (execute_cmdargs): New function. (captured_main_1): Make use of execute_cmdargs.
This commit is contained in:
parent
64aaad6349
commit
74d877e522
2 changed files with 27 additions and 32 deletions
54
gdb/main.c
54
gdb/main.c
|
@ -515,6 +515,26 @@ struct cmdarg
|
|||
char *string;
|
||||
};
|
||||
|
||||
/* From CMDARG_VEC execute command files (matching FILE_TYPE) or commands
|
||||
(matching CMD_TYPE). Update the value in *RET if and scripts or
|
||||
commands are executed. */
|
||||
|
||||
static void
|
||||
execute_cmdargs (const std::vector<struct cmdarg> *cmdarg_vec,
|
||||
cmdarg_kind file_type, cmdarg_kind cmd_type,
|
||||
int *ret)
|
||||
{
|
||||
for (const auto &cmdarg_p : *cmdarg_vec)
|
||||
{
|
||||
if (cmdarg_p.type == file_type)
|
||||
*ret = catch_command_errors (source_script, cmdarg_p.string,
|
||||
!batch_flag);
|
||||
else if (cmdarg_p.type == cmd_type)
|
||||
*ret = catch_command_errors (execute_command, cmdarg_p.string,
|
||||
!batch_flag);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
captured_main_1 (struct captured_main_args *context)
|
||||
{
|
||||
|
@ -1069,22 +1089,7 @@ captured_main_1 (struct captured_main_args *context)
|
|||
ret = catch_command_errors (source_script, home_gdbinit.c_str (), 0);
|
||||
|
||||
/* Process '-ix' and '-iex' options early. */
|
||||
for (i = 0; i < cmdarg_vec.size (); i++)
|
||||
{
|
||||
const struct cmdarg &cmdarg_p = cmdarg_vec[i];
|
||||
|
||||
switch (cmdarg_p.type)
|
||||
{
|
||||
case CMDARG_INIT_FILE:
|
||||
ret = catch_command_errors (source_script, cmdarg_p.string,
|
||||
!batch_flag);
|
||||
break;
|
||||
case CMDARG_INIT_COMMAND:
|
||||
ret = catch_command_errors (execute_command, cmdarg_p.string,
|
||||
!batch_flag);
|
||||
break;
|
||||
}
|
||||
}
|
||||
execute_cmdargs (&cmdarg_vec, CMDARG_INIT_FILE, CMDARG_INIT_COMMAND, &ret);
|
||||
|
||||
/* Now perform all the actions indicated by the arguments. */
|
||||
if (cdarg != NULL)
|
||||
|
@ -1195,22 +1200,7 @@ captured_main_1 (struct captured_main_args *context)
|
|||
load_auto_scripts_for_objfile (objfile);
|
||||
|
||||
/* Process '-x' and '-ex' options. */
|
||||
for (i = 0; i < cmdarg_vec.size (); i++)
|
||||
{
|
||||
const struct cmdarg &cmdarg_p = cmdarg_vec[i];
|
||||
|
||||
switch (cmdarg_p.type)
|
||||
{
|
||||
case CMDARG_FILE:
|
||||
ret = catch_command_errors (source_script, cmdarg_p.string,
|
||||
!batch_flag);
|
||||
break;
|
||||
case CMDARG_COMMAND:
|
||||
ret = catch_command_errors (execute_command, cmdarg_p.string,
|
||||
!batch_flag);
|
||||
break;
|
||||
}
|
||||
}
|
||||
execute_cmdargs (&cmdarg_vec, CMDARG_FILE, CMDARG_COMMAND, &ret);
|
||||
|
||||
/* Read in the old history after all the command files have been
|
||||
read. */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue