public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Simon Marchi <simark@simark.ca>
To: Andrew Burgess <aburgess@redhat.com>,
	Simon Marchi via Gdb-patches <gdb-patches@sourceware.org>
Cc: Simon Marchi <simon.marchi@efficios.com>
Subject: Re: [PATCH] gdb: make "maintenance info line-table" show relocated addresses again
Date: Tue, 21 Mar 2023 21:35:08 -0400	[thread overview]
Message-ID: <7c2ba695-c6ec-5854-c81a-e84db28cc66b@simark.ca> (raw)
In-Reply-To: <87o7omcvb8.fsf@redhat.com>


> I'm never going to complain about more information.  Especially not in
> maintainer commands.
> 
> Just wanted to make sure my use case was noted.

Thanks, here's what I pushed.

Simon


From 904d9b02a185c9048cf17bf7295b89d7380cea3d Mon Sep 17 00:00:00 2001
From: Simon Marchi <simon.marchi@efficios.com>
Date: Thu, 16 Mar 2023 16:30:34 -0400
Subject: [PATCH] gdb: make "maintenance info line-table" show relocated
 addresses again

Commit 1acc9dca423f ("Change linetables to be objfile-independent")
changed "maintenance info line-table" to print unrelocated addresses
instead of relocated.  This breaks a few tests on systems where that
matters.  The ones I see are:

    Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.base/consecutive.exp ...
    FAIL: gdb.base/consecutive.exp: stopped at bp, 2nd instr (missing hex prefix)
    Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.base/async.exp ...
    FAIL: gdb.base/async.exp: stepi&
    FAIL: gdb.base/async.exp: nexti&
    FAIL: gdb.base/async.exp: finish&

These tests run "maintenance info line-table" to record the address of
some lines, and then use these addresses in expected patterns.  It
therefore expects these addresses to match the runtime addresses,
therefore the relocated addresses.

Add back the relocated addresses, next to the unrelocated addresses,
like so:

    INDEX  LINE   REL-ADDRESS        UNREL-ADDRESS      IS-STMT PROLOGUE-END
    0      6      0x0000555555555119 0x0000000000001119 Y
    1      7      0x000055555555511d 0x000000000000111d Y
    2      8      0x0000555555555123 0x0000000000001123 Y
    3      END    0x0000555555555125 0x0000000000001125 Y

The unrelocated addresses can always be useful trying to map this
information with a DWARF info dump.

Adjust the is_stmt_addresses proc in the testsuite to match the new
output.

Change-Id: I59558f167e13e63421c9e0f2cad192e7c95c10cf
---
 gdb/symmisc.c             | 9 ++++++---
 gdb/testsuite/lib/gdb.exp | 2 +-
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/gdb/symmisc.c b/gdb/symmisc.c
index 54dc570d282f..a09b541f1b39 100644
--- a/gdb/symmisc.c
+++ b/gdb/symmisc.c
@@ -976,10 +976,11 @@ maintenance_print_one_line_table (struct symtab *symtab, void *data)
       /* Leave space for 6 digits of index and line number.  After that the
 	 tables will just not format as well.  */
       struct ui_out *uiout = current_uiout;
-      ui_out_emit_table table_emitter (uiout, 5, -1, "line-table");
+      ui_out_emit_table table_emitter (uiout, 6, -1, "line-table");
       uiout->table_header (6, ui_left, "index", _("INDEX"));
       uiout->table_header (6, ui_left, "line", _("LINE"));
-      uiout->table_header (18, ui_left, "address", _("ADDRESS"));
+      uiout->table_header (18, ui_left, "rel-address", _("REL-ADDRESS"));
+      uiout->table_header (18, ui_left, "unrel-address", _("UNREL-ADDRESS"));
       uiout->table_header (7, ui_left, "is-stmt", _("IS-STMT"));
       uiout->table_header (12, ui_left, "prologue-end", _("PROLOGUE-END"));
       uiout->table_body ();
@@ -995,7 +996,9 @@ maintenance_print_one_line_table (struct symtab *symtab, void *data)
 	    uiout->field_signed ("line", item->line);
 	  else
 	    uiout->field_string ("line", _("END"));
-	  uiout->field_core_addr ("address", objfile->arch (),
+	  uiout->field_core_addr ("rel-address", objfile->arch (),
+				  item->pc (objfile));
+	  uiout->field_core_addr ("unrel-address", objfile->arch (),
 				  CORE_ADDR (item->raw_pc ()));
 	  uiout->field_string ("is-stmt", item->is_stmt ? "Y" : "");
 	  uiout->field_string ("prologue-end", item->prologue_end ? "Y" : "");
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 0a0ae697d1ee..6c2d7e1c74e5 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -8872,7 +8872,7 @@ proc is_stmt_addresses { file } {
     set is_stmt [list]
 
     gdb_test_multiple "maint info line-table $file" "" {
-	-re "\r\n$decimal\[ \t\]+$decimal\[ \t\]+($hex)\[ \t\]+Y\[^\r\n\]*" {
+	-re "\r\n$decimal\[ \t\]+$decimal\[ \t\]+($hex)\[ \t\]+$hex\[ \t\]+Y\[^\r\n\]*" {
 	    lappend is_stmt $expect_out(1,string)
 	    exp_continue
 	}

base-commit: bcefc6be9754d45fb9391993e6daaf01a68d9bd5
-- 
2.40.0


  reply	other threads:[~2023-03-22  1:35 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-20 16:30 Simon Marchi
2023-03-20 21:35 ` Andrew Burgess
2023-03-21  1:18   ` Simon Marchi
2023-03-21  9:23     ` Andrew Burgess
2023-03-22  1:35       ` Simon Marchi [this message]
2023-03-22 10:26         ` [PATCH 0/1] gdb: Update doc of the "maintenance info line-table" Lancelot SIX
2023-03-22 10:26           ` [PATCH 1/1] " Lancelot SIX
2023-03-22 13:59             ` Simon Marchi
2023-03-22 16:48               ` Lancelot SIX
2023-03-22 17:20               ` [PATCH v2] " Lancelot SIX
2023-03-22 14:58             ` [PATCH 1/1] " Eli Zaretskii
2023-03-22 13:46         ` [PATCH] gdb: make "maintenance info line-table" show relocated addresses again Tom de Vries
2023-03-22 13:47           ` Simon Marchi
2023-03-22 15:17             ` [PATCH] gdb/testsuite: adjust test cases to previous "maintenance info line-table" change Simon Marchi
2023-03-22 18:01               ` Tom de Vries
2023-03-22 19:14                 ` Simon Marchi

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=7c2ba695-c6ec-5854-c81a-e84db28cc66b@simark.ca \
    --to=simark@simark.ca \
    --cc=aburgess@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=simon.marchi@efficios.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 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).