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 <developm...@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 61dc4644f..78219ea36 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 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel