[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 12/15] gdb: Allow running user-defined commands at GRUB st
From: |
Daniel Kiper |
Subject: |
Re: [PATCH v4 12/15] gdb: Allow running user-defined commands at GRUB start |
Date: |
Wed, 21 Dec 2022 16:27:40 +0100 |
User-agent: |
NeoMutt/20170113 (1.7.2) |
On Thu, Dec 15, 2022 at 11:29:35PM -0600, Glenn Washburn wrote:
> A new command, run_on_start, is created which handles some complexities
> of the EFI platform when breaking on GRUB start. If GRUB start is hooked,
> run "onstart" command if it is defned.
>
> Signed-off-by: Glenn Washburn <development@efficientek.com>
> ---
> grub-core/gdb_grub.in | 38 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 38 insertions(+)
>
> diff --git a/grub-core/gdb_grub.in b/grub-core/gdb_grub.in
> index 8ae6344edf..3b3cea1a4d 100644
> --- a/grub-core/gdb_grub.in
> +++ b/grub-core/gdb_grub.in
> @@ -36,6 +36,8 @@ end
> define dynamic_load_symbols
> dynamic_load_kernel_exec_symbols $arg0
>
> + run_on_start
> +
> # We may have been very late to loading the kernel.exec symbols and
> # and modules may already be loaded. So load symbols for any already
> # loaded.
> @@ -134,6 +136,41 @@ document runtime_load_module
> Load module symbols at runtime as they are loaded.
> end
>
> +define run_on_start
> + # TODO: Add check to see if _start symbol is defined, if not, then
> + # the symbols have not yet been loaded and this command will not work.
> + watch *_start
> + set $break_efi_start_bpnum = $bpnum
> + commands
> + silent
> + delete $break_efi_start_bpnum
> + break _start
s/break/hbreak/?
> + commands
> + silent
> + delete $break_efi_start_bpnum
> + set $onstart_name = "onstart"
> + is_user_command $onstart_name
> + if $ret
> + onstart
> + end
> + continue
> + end
> + set $break_efi_start_bpnum = $bpnum
> + continue
> + end
> +end
> +document run_on_start
> + On some targets, such as x86_64-efi, even if you know where the
> + firmware will load the grub image, you can not simply set a break
Nit, s/grub/GRUB/...
> + point before the image is loaded because loading the image
> + overwrites the break point in memory. So setup a hardware watch
> + point, which does not have that problem, and if that gets triggered,
> + then reset the break point. If a user-defined command named
> + "onstart" exists it will be run after the start is hit.
> + NOTE: This assumes symbols have already been correctly loaded for
> + the EFI application.
> +end
> +
> ###
>
> set confirm off
> @@ -151,6 +188,7 @@ if ! $runonce
> exec-file kernel.exec
> else
> file kernel.exec
> + run_on_start
> runtime_load_module
> end
Daniel
[PATCH v4 13/15] gdb: Add extra early initialization symbols for i386-pc, Glenn Washburn, 2022/12/16
[PATCH v4 14/15] gdb: Add ability to turn on shell tracing for gdb helper script, Glenn Washburn, 2022/12/16
[PATCH v4 11/15] gdb: Allow user defined "onload_<modname>" command to be run when module is loaded, Glenn Washburn, 2022/12/16
[PATCH v4 15/15] docs: Add debugging chapter to development documentation, Glenn Washburn, 2022/12/16