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 | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/grub-core/gdb_grub.in b/grub-core/gdb_grub.in index 4c2b8bf52..a1031e58d 100644 --- a/grub-core/gdb_grub.in +++ b/grub-core/gdb_grub.in @@ -134,7 +134,16 @@ 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 + fr 1 + load_module mod + cont + end cont end end -- 2.27.0 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel