All of lore.kernel.org
 help / color / mirror / Atom feed
From: Glenn Washburn <development@efficientek.com>
To: grub-devel@gnu.org, Daniel Kiper <dkiper@net-space.pl>
Cc: Robbie Harwood <rharwood@redhat.com>,
	Peter Jones <pjones@redhat.com>,
	Glenn Washburn <development@efficientek.com>
Subject: [PATCH v5 01/14] gdb: Fix redirection issue in dump_module_sections
Date: Fri, 23 Dec 2022 22:19:22 -0600	[thread overview]
Message-ID: <20221224041935.787292-2-development@efficientek.com> (raw)
In-Reply-To: <20221224041935.787292-1-development@efficientek.com>

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.

Also, remove .segments.tmp file prior to loading modules in case one was
left from a previous run.

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

diff --git a/grub-core/gdb_grub.in b/grub-core/gdb_grub.in
index e322d3dc10..4e45ad5622 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
@@ -59,6 +53,7 @@ document load_module
 end
 
 define load_all_modules
+	shell rm -f .segments.tmp
 	set $this = grub_dl_head
 	while ($this != 0)
 		dump_module_sections $this
-- 
2.34.1



  reply	other threads:[~2022-12-24  4:20 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-24  4:19 [PATCH v5 00/14] GDB script fixes and improvements Glenn Washburn
2022-12-24  4:19 ` Glenn Washburn [this message]
2022-12-24  4:19 ` [PATCH v5 02/14] gdb: Prevent wrapping when writing to .segments.tmp Glenn Washburn
2022-12-24  4:19 ` [PATCH v5 03/14] gdb: If no modules have been loaded, do not try to load module symbols Glenn Washburn
2022-12-24  4:19 ` [PATCH v5 04/14] gdb: Move runtime module loading into runtime_load_module Glenn Washburn
2022-12-24  4:19 ` [PATCH v5 05/14] gdb: Conditionally run GDB script logic for dynamically or statically positioned GRUB Glenn Washburn
2022-12-24  4:19 ` [PATCH v5 06/14] gdb: Only connect to remote target once when first sourced Glenn Washburn
2022-12-24  4:19 ` [PATCH v5 07/14] gdb: Replace module symbol loading implementation with Python one Glenn Washburn
2022-12-24  4:19 ` [PATCH v5 08/14] gdb: Add functions to make loading from dynamically positioned targets easier Glenn Washburn
2022-12-24  4:19 ` [PATCH v5 09/14] gdb: Add more support for debugging on EFI platforms Glenn Washburn
2022-12-24  4:19 ` [PATCH v5 10/14] gdb: Allow running user-defined commands at GRUB start Glenn Washburn
2022-12-24  4:19 ` [PATCH v5 11/14] gdb: Fix issue with breakpoints defined before the GRUB image is loaded Glenn Washburn
2022-12-24  4:19 ` [PATCH v5 12/14] gdb: Add extra early initialization symbols for i386-pc Glenn Washburn
2022-12-24  4:19 ` [PATCH v5 13/14] gdb: Modify gdb prompt when running gdb_grub script Glenn Washburn
2022-12-24  4:19 ` [PATCH v5 14/14] docs: Add debugging chapter to development documentation Glenn Washburn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221224041935.787292-2-development@efficientek.com \
    --to=development@efficientek.com \
    --cc=dkiper@net-space.pl \
    --cc=grub-devel@gnu.org \
    --cc=pjones@redhat.com \
    --cc=rharwood@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.