grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v3 01/15] gdb: Fix redirection issue in dump_module_sections


From: Glenn Washburn
Subject: [PATCH v3 01/15] gdb: Fix redirection issue in dump_module_sections
Date: Thu, 15 Dec 2022 01:07:36 -0600

An error in any GDB command causes it to immediately abort with an error,
this includes any command that calls that command. This leads to an issue
in dump_module_sections where an error causes the command to exit without
turning off file redirection. The user then ends up with a GDB command
line where commands output nothing to the console.

Instead do the work of dump_module_sections in the command
dump_module_sections_helper and run the command using GDB's pipe command
which does the redirection and undoes the redirection when it finishes
regardless of any errors in the command.

Signed-off-by: Glenn Washburn <development@efficientek.com>
---
 grub-core/gdb_grub.in | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/grub-core/gdb_grub.in b/grub-core/gdb_grub.in
index e322d3dc10..bdf743f0d4 100644
--- a/grub-core/gdb_grub.in
+++ b/grub-core/gdb_grub.in
@@ -10,15 +10,8 @@
 ###
 
 # Add section numbers and addresses to .segments.tmp
-define dump_module_sections
+define dump_module_sections_helper
        set $mod = $arg0
-
-       # FIXME: save logging status
-       set logging file .segments.tmp
-       set logging redirect on
-       set logging overwrite off
-       set logging on
-
        printf "%s", $mod->name
        set $segment = $mod->segment
        while ($segment)
@@ -26,9 +19,10 @@ define dump_module_sections
                set $segment = $segment->next
        end
        printf "\n"
+end
 
-       set logging off
-       # FIXME: restore logging status
+define dump_module_sections
+       pipe dump_module_sections_helper $arg0 | sh -c 'cat >.segments.tmp'
 end
 document dump_module_sections
        Gather information about module whose mod structure was
-- 
2.34.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]