From 74d877e5221f3459aa9f4f9354194b714d306e18 Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Wed, 9 Sep 2020 11:26:22 +0100 Subject: [PATCH] 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. --- gdb/ChangeLog | 5 +++++ gdb/main.c | 54 +++++++++++++++++++++------------------------------ 2 files changed, 27 insertions(+), 32 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 18b7fb0a53a..4356fa75df3 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-11-02 Andrew Burgess + + * main.c (execute_cmdargs): New function. + (captured_main_1): Make use of execute_cmdargs. + 2020-11-02 Andrew Burgess * NEWS: Mention changes to config file search path. diff --git a/gdb/main.c b/gdb/main.c index 6232ea3f633..d3a6637e8d4 100644 --- a/gdb/main.c +++ b/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 *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. */ -- 2.30.2