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: Glenn Washburn <development@efficientek.com>
Subject: [PATCH v3 01/15] gdb: Fix redirection issue in dump_module_sections
Date: Thu, 15 Dec 2022 01:07:36 -0600	[thread overview]
Message-ID: <20221215070750.102591-2-development@efficientek.com> (raw)
In-Reply-To: <20221215070750.102591-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.

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	other threads:[~2022-12-15  7:09 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-15  7:07 [PATCH v3 00/15] GDB script fixes and improvements Glenn Washburn
2022-12-15  7:07 ` Glenn Washburn [this message]
2022-12-15  7:07 ` [PATCH v3 02/15] gdb: Prevent wrapping when writing to .segments.tmp Glenn Washburn
2022-12-15  7:07 ` [PATCH v3 03/15] gdb: If no modules have been loaded, do not try to load module symbols Glenn Washburn
2022-12-15  7:07 ` [PATCH v3 04/15] gdb: Move runtime module loading into runtime_load_module Glenn Washburn
2022-12-15  7:07 ` [PATCH v3 05/15] gdb: Get correct mod variable value Glenn Washburn
2022-12-15  7:07 ` [PATCH v3 06/15] gdb: Do not run load_module if module has already been loaded Glenn Washburn
2022-12-15  7:07 ` [PATCH v3 07/15] gdb: Add functions to make loading from dynamically positioned targets easier Glenn Washburn
2022-12-15  7:07 ` [PATCH v3 08/15] gdb: Remove Perl dependency for GRUB GDB script Glenn Washburn
2022-12-15  7:07 ` [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  7:07 ` [PATCH v3 10/15] gdb: Conditionally run GDB script logic for dynamically or statically positioned GRUB Glenn Washburn
2022-12-15  7:07 ` [PATCH v3 11/15] gdb: Only connect to remote target once when first sourced Glenn Washburn
2022-12-15  7:07 ` [PATCH v3 12/15] gdb: Allow user defined "onload_<modname>" command to be run when module is loaded Glenn Washburn
2022-12-15  7:07 ` [PATCH v3 13/15] gdb: Allow running user-defined commands at GRUB start Glenn Washburn
2022-12-15  7:07 ` [PATCH v3 14/15] gdb: Add ability to turn on shell tracing for gdb helper script Glenn Washburn
2022-12-15  7:07 ` [PATCH v3 15/15] 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=20221215070750.102591-2-development@efficientek.com \
    --to=development@efficientek.com \
    --cc=dkiper@net-space.pl \
    --cc=grub-devel@gnu.org \
    /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.