From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id 038343858D38 for ; Wed, 22 Mar 2023 01:35:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 038343858D38 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=simark.ca Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=simark.ca Received: from [10.0.0.11] (unknown [217.28.27.60]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 6C8251E0D2; Tue, 21 Mar 2023 21:35:09 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=simark.ca; s=mail; t=1679448909; bh=oPebnTGbxFH7NAY/mMZXP1rIchxUbThCS0PMBrJP31s=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=uIQ4UDWZAeXuZEtk5U5KazFiJTjvG7RWko7bKUP6uuOCF5XeM6LdB5R23yMc9S90h 3nGjJtsawVL5DbJ4cemcrawFyzs9qDS86XzX8U4wwdqzZnNArBNzoA5R3Cefd2ojsJ 7sBeNmqPGFPd70bOiVEVJbTVRR9C+lxjISNplqZU= Message-ID: <7c2ba695-c6ec-5854-c81a-e84db28cc66b@simark.ca> Date: Tue, 21 Mar 2023 21:35:08 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: [PATCH] gdb: make "maintenance info line-table" show relocated addresses again Content-Language: en-US To: Andrew Burgess , Simon Marchi via Gdb-patches Cc: Simon Marchi References: <20230320163003.32960-1-simon.marchi@efficios.com> <87y1nrcdim.fsf@redhat.com> <87o7omcvb8.fsf@redhat.com> From: Simon Marchi In-Reply-To: <87o7omcvb8.fsf@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,NICE_REPLY_A,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: > 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 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