]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[gdb] Don't init history in batch mode
authorTom de Vries <tdevries@suse.de>
Tue, 20 Feb 2024 14:49:33 +0000 (15:49 +0100)
committerTom de Vries <tdevries@suse.de>
Tue, 20 Feb 2024 14:49:33 +0000 (15:49 +0100)
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.

Approved-By: Andrew Burgess <aburgess@redhat.com>
gdb/main.c

index 2dc76756e9868a6655e7c76529c165ecaa09b7e7..17826fae95e3c0eeb917e2745c24830ec4861221 100644 (file)
@@ -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