]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
gdb: Only connect to remote target once when first sourced
authorGlenn Washburn <development@efficientek.com>
Mon, 27 Feb 2023 21:15:33 +0000 (15:15 -0600)
committerDaniel Kiper <daniel.kiper@oracle.com>
Tue, 14 Mar 2023 14:40:09 +0000 (15:40 +0100)
The gdb_grub script was originally meant to be run once when GDB first
starts up via the -x argument. So it runs commands unconditionally
assuming that the script has not been run before. Its nice to be able
to source the script again when developing the script to modify/add
commands. So only run the commands not defined in user-defined commands,
if a variable $runonce has already been set and when those commands have
been run to set $runonce.

Signed-off-by: Glenn Washburn <development@efficientek.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/gdb_grub.in

index 620d1def72d04f2b31e5437202058203a5e5708e..4ca939f69a8995ac073865f6354a2017289f0ac9 100644 (file)
@@ -94,12 +94,15 @@ set confirm off
 
 set $platform_efi = $_streq("@platform@", "efi")
 
-if $platform_efi
-       # Only load the executable file, not the symbols
-       exec-file kernel.exec
-else
-       file kernel.exec
-       runtime_load_module
-end
+if ! $runonce
+       if $platform_efi
+               # Only load the executable file, not the symbols
+               exec-file kernel.exec
+       else
+               file kernel.exec
+               runtime_load_module
+       end
 
-target remote :1234
+       target remote :1234
+       set $runonce = 1
+end