Don't init history in batch mode

Message ID 20240218133153.2032-1-tdevries@suse.de
State Committed
Headers
Series Don't init history in batch mode |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_gdb_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 warning Patch is already merged

Commit Message

Tom de Vries Feb. 18, 2024, 1:31 p.m. UTC
  I noticed in captured_main_1 that init_history is called just before bailing
out if batch_flag is true.

The history is used only in an interactive session, so there's no need to
initialize it in batch mode.

Fix this by moving init_history to after the batch mode check.

Tested on x86_64-linux.
---
 gdb/main.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)


base-commit: 989aa9b8e8e340ba65f386cbfd239009a3aba68f
  

Comments

Andrew Burgess Feb. 20, 2024, 12:09 p.m. UTC | #1
Tom de Vries <tdevries@suse.de> writes:

> I noticed in captured_main_1 that init_history is called just before bailing
> out if batch_flag is true.
>
> The history is used only in an interactive session, so there's no need to
> initialize it in batch mode.
>
> Fix this by moving init_history to after the batch mode check.

LGTM.

Approved-By: Andrew Burgess <aburgess@redhat.com>

Thanks,
Andrew


>
> Tested on x86_64-linux.
> ---
>  gdb/main.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/gdb/main.c b/gdb/main.c
> index 2dc76756e98..17826fae95e 100644
> --- a/gdb/main.c
> +++ b/gdb/main.c
> @@ -1303,10 +1303,6 @@ captured_main_1 (struct captured_main_args *context)
>    /* Process '-x' and '-ex' options.  */
>    execute_cmdargs (&cmdarg_vec, CMDARG_FILE, CMDARG_COMMAND, &ret);
>  
> -  /* Read in the old history after all the command files have been
> -     read.  */
> -  init_history ();
> -
>    if (batch_flag)
>      {
>        int error_status = EXIT_FAILURE;
> @@ -1315,6 +1311,14 @@ captured_main_1 (struct captured_main_args *context)
>        /* We have hit the end of the batch file.  */
>        quit_force (exit_arg, 0);
>      }
> +
> +  /* We are starting an interactive session.  */
> +
> +  /* Read in the history.  This is after all the command files have been read,
> +     so that the user can change the history file via a .gdbinit file.  This
> +     is also after the batch_flag check, because we don't need the history in
> +     batch mode.  */
> +  init_history ();
>  }
>  
>  static void
>
> base-commit: 989aa9b8e8e340ba65f386cbfd239009a3aba68f
> -- 
> 2.35.3
  

Patch

diff --git a/gdb/main.c b/gdb/main.c
index 2dc76756e98..17826fae95e 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -1303,10 +1303,6 @@  captured_main_1 (struct captured_main_args *context)
   /* Process '-x' and '-ex' options.  */
   execute_cmdargs (&cmdarg_vec, CMDARG_FILE, CMDARG_COMMAND, &ret);
 
-  /* Read in the old history after all the command files have been
-     read.  */
-  init_history ();
-
   if (batch_flag)
     {
       int error_status = EXIT_FAILURE;
@@ -1315,6 +1311,14 @@  captured_main_1 (struct captured_main_args *context)
       /* We have hit the end of the batch file.  */
       quit_force (exit_arg, 0);
     }
+
+  /* We are starting an interactive session.  */
+
+  /* Read in the history.  This is after all the command files have been read,
+     so that the user can change the history file via a .gdbinit file.  This
+     is also after the batch_flag check, because we don't need the history in
+     batch mode.  */
+  init_history ();
 }
 
 static void