public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
From: Simon Marchi <simark@sourceware.org>
To: gdb-cvs@sourceware.org
Subject: [binutils-gdb] gdb/linux-tdep: move "Perms" column right
Date: Thu, 24 Feb 2022 12:29:34 +0000 (GMT)	[thread overview]
Message-ID: <20220224122934.EEF743858029@sourceware.org> (raw)

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0b313e95a73ad567915c9c1135d3d49f39236325

commit 0b313e95a73ad567915c9c1135d3d49f39236325
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date:   Wed Feb 23 16:26:17 2022 -0500

    gdb/linux-tdep: move "Perms" column right
    
    Commit 29ef4c0699e1 ("gdb/linux-tdep.c: Add Perms to the 'info proc
    mappings' output") has broken test gdb.base/info-proc.exp on Linux,
    because it changes the output of "info proc mappings" in a way that the
    test does not expect (my bad for not testing before pushing).
    
    I looked at how FreeBSD handles this, since I remembered it did show
    permission flags.  It looks like this:
    
              Start Addr           End Addr       Size     Offset   Flags   File
                0x200000           0x243000    0x43000        0x0  r-- CN-- /usr/local/bin/tmux
    
    (I think that `Flags` and the flags not being aligned is not
    intentional)
    
    The test passes on FreeBSD, because the test looks for four hex numbers
    in a row and ignores the rest:
    
        ".*Mapped address spaces:.*${hex}${ws}${hex}${ws}${hex}${ws}${hex}.*"
    
    I suggest fixing it on Linux by moving the flags column to the same
    place as in the FreeBSD output.  It makes things a bit more consistent
    between OSes, and we don't have to touch the test.
    
    At the same time, make use of the actual length of the permission's
    string to specify the number of characters to print.
    
    Before this patch, the output looks like:
    
              Start Addr           End Addr   Perms       Size     Offset objfile
          0x55dd4b544000     0x55dd4b546000   r--p      0x2000        0x0 /usr/bin/sleep
    
    and after, it looks like:
    
              Start Addr           End Addr       Size     Offset  Perms  objfile
          0x5622ae662000     0x5622ae664000     0x2000        0x0  r--p   /usr/bin/sleep
    
    Change-Id: If0fc167b010b25f97a3c54e2f491df4973ccde8f

Diff:
---
 gdb/linux-tdep.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index 83bd4237286..d4868902ac3 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -892,15 +892,15 @@ linux_info_proc (struct gdbarch *gdbarch, const char *args,
 	  printf_filtered (_("Mapped address spaces:\n\n"));
 	  if (gdbarch_addr_bit (gdbarch) == 32)
 	    {
-	      printf_filtered ("\t%10s %10s %7s %10s %10s %s\n",
-			   "Start Addr", "  End Addr", "Perms",
-			   "      Size", "    Offset", "objfile");
+	      printf_filtered ("\t%10s %10s %10s %10s  %s %s\n",
+			       "Start Addr", "  End Addr", "      Size",
+			       "    Offset", "Perms  ", "objfile");
 	    }
 	  else
 	    {
-	      printf_filtered ("  %18s %18s %7s %10s %10s %s\n",
-			   "Start Addr", "  End Addr", "Perms",
-			   "      Size", "    Offset", "objfile");
+	      printf_filtered ("  %18s %18s %10s %10s  %s %s\n",
+			       "Start Addr", "  End Addr", "      Size",
+			       "    Offset", "Perms ", "objfile");
 	    }
 
 	  char *saveptr;
@@ -912,22 +912,24 @@ linux_info_proc (struct gdbarch *gdbarch, const char *args,
 
 	      if (gdbarch_addr_bit (gdbarch) == 32)
 		{
-		  printf_filtered ("\t%10s %10s %7.5s %10s %10s %s\n",
+		  printf_filtered ("\t%10s %10s %10s %10s  %-5.*s  %s\n",
 				   paddress (gdbarch, m.addr),
 				   paddress (gdbarch, m.endaddr),
-				   m.permissions.data (),
 				   hex_string (m.endaddr - m.addr),
 				   hex_string (m.offset),
+				   (int) m.permissions.size (),
+				   m.permissions.data (),
 				   m.filename);
 		}
 	      else
 		{
-		  printf_filtered ("  %18s %18s %7.5s %10s %10s %s\n",
+		  printf_filtered ("  %18s %18s %10s %10s  %-5.*s  %s\n",
 				   paddress (gdbarch, m.addr),
 				   paddress (gdbarch, m.endaddr),
-				   m.permissions.data (),
 				   hex_string (m.endaddr - m.addr),
 				   hex_string (m.offset),
+				   (int) m.permissions.size (),
+				   m.permissions.data (),
 				   m.filename);
 		}
 	    }


                 reply	other threads:[~2022-02-24 12:29 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=20220224122934.EEF743858029@sourceware.org \
    --to=simark@sourceware.org \
    --cc=gdb-cvs@sourceware.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).