From patchwork Mon Aug 27 13:45:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Vrany X-Patchwork-Id: 29063 Received: (qmail 79948 invoked by alias); 27 Aug 2018 13:46:02 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 79921 invoked by uid 89); 27 Aug 2018 13:46:02 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.2 spammy=population, Hx-languages-length:5023 X-HELO: relay.fit.cvut.cz Received: from relay.fit.cvut.cz (HELO relay.fit.cvut.cz) (147.32.232.237) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 27 Aug 2018 13:45:53 +0000 Received: from imap.fit.cvut.cz (imap.fit.cvut.cz [147.32.232.238]) by relay.fit.cvut.cz (8.15.2/8.15.2) with ESMTPS id w7RDjmY1026706 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK); Mon, 27 Aug 2018 15:45:50 +0200 (CEST) (envelope-from jan.vrany@fit.cvut.cz) Received: from localhost (5ac693bc.bb.sky.com [90.198.147.188] (may be forged)) (authenticated bits=0 as user vranyj1) by imap.fit.cvut.cz (8.15.2/8.15.2) with ESMTPSA id w7RDjm71089031 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Mon, 27 Aug 2018 15:45:48 +0200 (CEST) (envelope-from jan.vrany@fit.cvut.cz) From: Jan Vrany To: gdb-patches@sourceware.org Cc: Jan Vrany Subject: [PATCH] MI: Fix printing of frame architecture with Python frame filters enabled Date: Mon, 27 Aug 2018 14:45:44 +0100 Message-Id: <20180827134544.7162-1-jan.vrany@fit.cvut.cz> Commit 6d52907e226a (MI: Print frame architecture when printing frames on an MI channel) added frame's architecture to MI frame output. However the frame architecture was not correctly printed in the output of "-stack-list-frames" with frame filters enabled (via "-enable-frame-filters"). This was bacause with frame filters enabled, the actual frame printing is done in "py_print_frame" rather than "print_frame". This issue is now fixed. gdb/Changelog: 2018-08-27 Jan Vrany * python/py-framefilter.c (py_print_frame): Print frame architecture when printing on an MI output. gdb/testsuite/Changelog: 2018-08-27 Jan Vrany * gdb.python/py-framefilter-mi.exp: Update regexp to check for "arch" field in frame output. --- gdb/ChangeLog | 5 +++++ gdb/python/py-framefilter.c | 3 +++ gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.python/py-framefilter-mi.exp | 8 +++++--- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 99eb36a64d..b43cbcdde7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-08-27 Jan Vrany + + * python/py-framefilter.c (py_print_frame): Print frame architecture + when printing on an MI output. + 2018-08-26 Simon Marchi * solist.h (struct solist, struct target_so_ops): Fix diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c index 4edefd48f9..fe17b70f53 100644 --- a/gdb/python/py-framefilter.c +++ b/gdb/python/py-framefilter.c @@ -958,6 +958,9 @@ py_print_frame (PyObject *filter, frame_filter_flags flags, out->field_int ("line", line); } } + if (out->is_mi_like_p ()) + out->field_string ("arch", + (gdbarch_bfd_arch_info (gdbarch))->printable_name); } /* For MI we need to deal with the "children" list population of diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 6b5275a4cb..03b36afbe0 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-08-27 Jan Vrany + + * gdb.python/py-framefilter-mi.exp: Update regexp to + check for "arch" field in frame output. + 2018-08-23 Kevin Buettner * gdb.dwarf2/dw2-ranges-func.c: New file. diff --git a/gdb/testsuite/gdb.python/py-framefilter-mi.exp b/gdb/testsuite/gdb.python/py-framefilter-mi.exp index 2ee8216bf0..6765f5c67d 100644 --- a/gdb/testsuite/gdb.python/py-framefilter-mi.exp +++ b/gdb/testsuite/gdb.python/py-framefilter-mi.exp @@ -64,14 +64,16 @@ mi_gdb_test "-stack-list-locals --all-values" \ mi_continue_to_line [gdb_get_line_number {Backtrace end breakpoint} ${srcfile}] \ "step to breakpoint" +set any "\[^\"\]+" + mi_gdb_test "-stack-list-frames" \ - "\\^done,stack=\\\[frame={level=\"0\",addr=\"$hex\",func=\"cnuf_dne.*\".*},frame={level=\"1\",addr=\"$hex\",func=\"acnuf\".*},frame={level=\"2\",addr=\"$hex\",func=\"bcnuf\".*},frame={level=\"3\",addr=\"$hex\",func=\"acnuf\".*},frame={level=\"22\",addr=\"$hex\",func=\"1cnuf\".*,children=\\\[frame={level=\"23\",addr=\"$hex\",func=\"func2\".*}\\\]},frame={level=\"24\",addr=\"$hex\",func=\"3cnuf\".*},frame={level=\"27\",addr=\"$hex\",func=\"niam\".*}\\\].*" \ + "\\^done,stack=\\\[frame={level=\"0\",addr=\"$hex\",func=\"cnuf_dne.*\".*,arch=\"$any\"},frame={level=\"1\",addr=\"$hex\",func=\"acnuf\".*,arch=\"$any\"},frame={level=\"2\",addr=\"$hex\",func=\"bcnuf\".*,arch=\"$any\"},frame={level=\"3\",addr=\"$hex\",func=\"acnuf\".*,arch=\"$any\"},frame={level=\"22\",addr=\"$hex\",func=\"1cnuf\".*,arch=\"$any\",children=\\\[frame={level=\"23\",addr=\"$hex\",func=\"func2\".*,arch=\"$any\"}\\\]},frame={level=\"24\",addr=\"$hex\",func=\"3cnuf\".*,arch=\"$any\"},frame={level=\"27\",addr=\"$hex\",func=\"niam\".*,arch=\"$any\"}\\\].*" \ "filtered stack listing" mi_gdb_test "-stack-list-frames 0 3" \ - "\\^done,stack=\\\[frame={level=\"0\",addr=\"$hex\",func=\"cnuf_dne.*\".*},frame={level=\"1\",addr=\"$hex\",func=\"acnuf\".*},frame={level=\"2\",addr=\"$hex\",func=\"bcnuf\".*},frame={level=\"3\",addr=\"$hex\",func=\"acnuf\".*}\\\]" \ + "\\^done,stack=\\\[frame={level=\"0\",addr=\"$hex\",func=\"cnuf_dne.*\".*,arch=\"$any\"},frame={level=\"1\",addr=\"$hex\",func=\"acnuf\".*,arch=\"$any\"},frame={level=\"2\",addr=\"$hex\",func=\"bcnuf\".*,arch=\"$any\"},frame={level=\"3\",addr=\"$hex\",func=\"acnuf\".*,arch=\"$any\"}\\\]" \ "filtered stack list 0 3" mi_gdb_test "-stack-list-frames 22 24" \ - "\\^done,stack=\\\[frame={level=\"22\",addr=\"$hex\",func=\"1cnuf\".*,children=\\\[frame={level=\"23\",addr=\"$hex\",func=\"func2\".*}\\\]},frame={level=\"24\",addr=\"$hex\",func=\"3cnuf\".*}\\\]" \ + "\\^done,stack=\\\[frame={level=\"22\",addr=\"$hex\",func=\"1cnuf\".*,arch=\"$any\",children=\\\[frame={level=\"23\",addr=\"$hex\",func=\"func2\".*,arch=\"$any\"}\\\]},frame={level=\"24\",addr=\"$hex\",func=\"3cnuf\".*,arch=\"$any\"}\\\]" \ "filtered stack list 22 24" #stack list arguments