[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 05/15] gdb: Get correct mod variable value
From: |
Glenn Washburn |
Subject: |
[PATCH v3 05/15] gdb: Get correct mod variable value |
Date: |
Thu, 15 Dec 2022 01:07:40 -0600 |
For some reason, GDB is breaking on grub_dl_add() before the function
has setup its stack frame, but GDB thinks it has. So the value of mod
is bogus. To get the correct value, create a one-time break on
grub_dl_get(), which is the first line of grub_dl_add(). When this break
point hits, grub_dl_add() will have finished setting up it stack frame.
But at this point we will be in grub_dl_get()'s stack frame. So go one
frame up, which will be grub_dl_add(), to get mod's value.
Signed-off-by: Glenn Washburn <development@efficientek.com>
---
grub-core/gdb_grub.in | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/grub-core/gdb_grub.in b/grub-core/gdb_grub.in
index 61dc4644fb..78219ea36e 100644
--- a/grub-core/gdb_grub.in
+++ b/grub-core/gdb_grub.in
@@ -74,7 +74,17 @@ define runtime_load_module
break grub_dl_add
commands
silent
- load_module mod
+ # GDB has stopped before the call frame is setup, so mod does
+ # not have the correct value. Create a one-time break on the
+ # next function call and then go one frame up, back to the
+ # grub_dl_add frame, to get the correct value for mod.
+ tbreak grub_dl_get
+ commands
+ silent
+ fr 1
+ load_module mod
+ cont
+ end
cont
end
end
--
2.34.1
- [PATCH v3 00/15] GDB script fixes and improvements, Glenn Washburn, 2022/12/15
- [PATCH v3 01/15] gdb: Fix redirection issue in dump_module_sections, Glenn Washburn, 2022/12/15
- [PATCH v3 02/15] gdb: Prevent wrapping when writing to .segments.tmp, Glenn Washburn, 2022/12/15
- [PATCH v3 03/15] gdb: If no modules have been loaded, do not try to load module symbols, Glenn Washburn, 2022/12/15
- [PATCH v3 04/15] gdb: Move runtime module loading into runtime_load_module, Glenn Washburn, 2022/12/15
- [PATCH v3 05/15] gdb: Get correct mod variable value,
Glenn Washburn <=
- [PATCH v3 06/15] gdb: Do not run load_module if module has already been loaded, Glenn Washburn, 2022/12/15
- [PATCH v3 07/15] gdb: Add functions to make loading from dynamically positioned targets easier, Glenn Washburn, 2022/12/15
- [PATCH v3 08/15] gdb: Remove Perl dependency for GRUB GDB script, Glenn Washburn, 2022/12/15
- [PATCH v3 09/15] gdb: If enabled, print line used to load EFI kernel symbols when using gdb_grub script, Glenn Washburn, 2022/12/15
- [PATCH v3 10/15] gdb: Conditionally run GDB script logic for dynamically or statically positioned GRUB, Glenn Washburn, 2022/12/15
- [PATCH v3 11/15] gdb: Only connect to remote target once when first sourced, Glenn Washburn, 2022/12/15
- [PATCH v3 12/15] gdb: Allow user defined "onload_<modname>" command to be run when module is loaded, Glenn Washburn, 2022/12/15
- [PATCH v3 13/15] gdb: Allow running user-defined commands at GRUB start, Glenn Washburn, 2022/12/15
- [PATCH v3 14/15] gdb: Add ability to turn on shell tracing for gdb helper script, Glenn Washburn, 2022/12/15
- [PATCH v3 15/15] docs: Add debugging chapter to development documentation, Glenn Washburn, 2022/12/15