From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sonic312-26.consmr.mail.ir2.yahoo.com (sonic312-26.consmr.mail.ir2.yahoo.com [77.238.178.97]) by sourceware.org (Postfix) with ESMTPS id BC8FF3893667 for ; Sat, 6 Mar 2021 17:41:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org BC8FF3893667 X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1615052497; bh=SS1Zze+knLFz4lgqQ+Uf2g5e2hFvI8zHUVk4HMdFErj=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=K2zRLU5WuvChmFvd/iEBwY51uWx22CTKa3VuhjZIsVtq6JOHO4D3zpcynMktMeMVbmKeBqSF746EplaNzoOLUlyRijK4LxvejX6KQtSt0SKtO8SH8cMuB2OXoGxGodTMwEBZ9MMdZU13Dc2j/cUc0rn+vs28zQ/eEvz+jcDL3tqqjBGziLZQD8Bv1v4SeUD0KgKrHQxgeiNlu98iSsLr3Ce0SYJlnqA4GwUlia0WlUgtOjT2vrLoWemDyNGovK2rw+yLR/KXVxy3ptftJOB32w3QnYsDppt0dwNAwTSq3rXtRCcTxcW8IABczQp4kb3VoODiN8wxB74LPW/CfTfBfw== X-YMail-OSG: FgaRxOcVM1leRwu2ikQEVtVWko1bidGroV4WtXlpJAxak6kJoBhASrJXwpO_6WX 9ErmLwj7Wz1y9hIwnoFN_rdCLN.fmNpWgcy3ZzE9sGg0a5MmR46.U3UatCkdcsNpCF9BsW.7PuAo e6vZYIOXSwcKsatFNj8Q8PpyhlhcBLWOpsKIw8BRTmLQc1C8N3Zxrk1ztKSx7Np8H850z3ZzKmOF _EdOOBsEBIMHet75gjhGx9yj2BgBPePIfxoWBna0_Rp.w_9rSCDcNjkFEuyj5YJa5e9HTfjVBZ5X 4C5IW7.16Sh5OLj29RirL3trmgmxPqALnODJwb_Fkvo9rWGfv6zCe8_VFLp0feQKAw_cUaPXlJxZ fSLUfdHnJFNQAU.ESUXCgnX4R2pkZ_nuF7qDRdKvCjq2i0k5sdBJtSr0ScXioOm3_8yRqkU7Hvh9 WPFGjN5YjEpG7z1HGmC_4cvrj6.fNSSm4mfg2JYEjL_TfFeaEHNE6K773HCvGR8Ihk6rwvD6a93E jmhK0b3k0JRI9KbAqtqa03gm1a6fnhjxLtEKU7KMlc0SDTlbQznXv1Ong5VjJsebxl4Thx4ju1WG O.BHe8S2NvX.GaYKRtFb3TcTGrHDw_YDdK0uiwITIUazt1yBKTk6sqdw58XL46c7B1kRunll1eor Q9FqTXv8Rxxn.gppTDZ6LviTO5WKvjP_nNsrOrEWqeECPGTRADpJCXpjOsTEqcBE24szUuuQ7_ta Rj6rNCt_reRx8IpC.MMJxwqTq.ztedkjuSOI1YmJ6KBouRevU2tlqnFKU27TC.8vPvB7roKepEy4 GNkw9acurBX_FVCU99KO4.XpuoG069RsMRqvL5KBaYkgBvRJ3Pf5E_9jZs8v_dV0WLGULWiMxCJH 1Ne4MWYGQ2Z0RyLui_fF9zQoUuZr_66CVSyESp9SQGPah8Si_VQ6UmY.VdbKYFEPW7yXkEqzQexw R378Us0oP6_1aQXmO0USlhNdDuWbVjRvYtrtXH0oWmdDn7xG16D..nB0ioLFCMPCoAl88L5tJa.U 2QW2dJP3I5W6qfUyQj29CHcwbltHChCxeyJQNTvb4bAqkkO8DBqIliSjW9gNQghxtpACIsCIay7q gGRvPetepPFLwAA4qOHJkPPbXeoSUT2cirySJu4v2uC.0jodv9dLKMZa1ZE0dxvl9R03.qVfQUA9 XPoEtBgOIqoH50Q_Wmth7p9rm5tLnrn6bER4xfV9sLjunpUlaYIknNgQ8HC_kVYkrfNUOX4PotMq 0aXv68picuW8jEyML6m8vmXXOsye6O_DjuHEPFp0fBb7hiiP2hIz2YO9erD14EuxAnmiY_4l1xSD p2scmRjhQ5mohb9xZAdZda9qVy0bXZJuQopEV8ZjJUFKM61stgZTu23Ux3M7Dsi6ZE2.lOUs9uM4 TKt041abw8nJtBZEGIqM3D0Q5CdMPvTJDUocBaEcilI5OcYEfCMw3JmNeAC7ZflK.werMLX3BqG3 BmPfQ_EnSkchhNwxiFIpghxKsjbTunj9y_wT89100TlPME_ElYlM1Qi41wyClR8ghP5q7oV5ph.r fJ.dxqC39PiWWOP7u2a2QghwOCHrddhbAu4md5jEz0mDf4ygsDLnsmcANWaURas1erETj5izM_o4 WRrK5cl90DTFLcSdMVY6eBzGE7gSdDSVZ00_N0B6qtba8E95aglgDmGwVyPejS_xDnmB42g5VUTZ en_UZjWBGpMINyacVwGwU8kZogcvFnChECOcEKlaPfJRUZHzn44LBJWX5VjrOoSiYOO2P2ivCgbt BWzzG99c1KD1.fhfSUGyfUcC4lmVKuNNd1oIcFegUWXHST5BSYu_cPNOD2s2JTiVF4n5m9Gwr2tE UVQbk0uvdXl96S3xxLAa92QBYZiaEAjhZ_Qy1LhJU6kciKnV_feESXLJA7RcZDK0WEsHCAu5.HCn MDc4xIMhTcOe96fVjjJli51Ca7WO7Fm66CF6t14.XHhs1NJvdrzK_lylAOouJzUna_4kn0Ydzt71 4r9PZD5NJQVcg7KUw7078DEVAajdypzpguQ4LeLFMnMDkqZWMiVJGq3SuRJ0J3b1t_Vqp0wjQZhH QQqOyVCCHgLm6o9Lgv3DS5p2mwhQ4a0TsFtbYLKpoxZl9pSUoR33IujHeNdMZ9_0y1_7DVitgnMw LCeoXf3C0qMsEeJcmJOiXurFuFs_NWKGCwiRdNPgNCf7N0nJy3KD0H2XncSUxCqaNjJNaS1r7sUJ _n7S2yzMye3S9SfvS4CWjwCD8JhhfIzfKWDbtkiuGcCR4MCd8O4VkvbrqQaPL7DyoaD4qpwFBIhr nlEMOlVb2Sc_5_jOyC3H02B7RDjkrb1JKY72RfUVPjDwoe9.Fv7pDaS.xohwaXhtILd2_zbI77Uk q.7QPW9BMpGK4AGvjd2DRhAX7abgr8dcXMmWv3M1vjJqqbZ3KEU1ydJOQCuszn3DnlcVZG7TrUCE Mslwp3BTbGLXMWzBYzHwufq3fTzbZPjr85aVC62YI3VD9IAZ9CL0Y X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic312.consmr.mail.ir2.yahoo.com with HTTP; Sat, 6 Mar 2021 17:41:37 +0000 Received: by smtp405.mail.ir2.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID a5c7f4eda18399a55bb44d180f23ad87; Sat, 06 Mar 2021 17:41:37 +0000 (UTC) From: Hannes Domani To: gdb-patches@sourceware.org Subject: [PATCH 18/22] Update the source location with Frame.select Date: Sat, 6 Mar 2021 18:40:58 +0100 Message-Id: <20210306174102.21597-9-ssbssa@yahoo.de> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210306174102.21597-1-ssbssa@yahoo.de> References: <20210306174102.21597-1-ssbssa@yahoo.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Antivirus: Avast (VPS 210306-0, 03/06/2021), Outbound message X-Antivirus-Status: Clean X-Spam-Status: No, score=-10.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Mar 2021 17:41:40 -0000 If the optional argument is True, then the current source location is also updated, the same as if 'frame #' were used. With this, a following 'list' call will show the source location of the current frame instead of the previous one, and the TUI source window is also updated. PR python/24534 --- gdb/python/py-frame.c | 29 ++++++++++++++++++++++++++++- gdb/tui/tui-hooks.c | 8 ++++++++ gdb/tui/tui-hooks.h | 2 ++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/gdb/python/py-frame.c b/gdb/python/py-frame.c index 8e32ba55de4..ef4eae1d745 100644 --- a/gdb/python/py-frame.c +++ b/gdb/python/py-frame.c @@ -28,6 +28,11 @@ #include "symfile.h" #include "objfiles.h" +#ifdef TUI +#include "tui/tui.h" +#include "tui/tui-hooks.h" +#endif + struct frame_object { PyObject_HEAD struct frame_id frame_id; @@ -564,12 +569,34 @@ static PyObject * frapy_select (PyObject *self, PyObject *args) { struct frame_info *fi; + PyObject *update_sal_obj = NULL; + + if (!PyArg_ParseTuple (args, "|O!", &PyBool_Type, &update_sal_obj)) + return NULL; + + int update_sal = 0; + if (update_sal_obj) + { + update_sal = PyObject_IsTrue (update_sal_obj); + if (update_sal < 0) + return NULL; + } try { FRAPY_REQUIRE_VALID (self, fi); select_frame (fi); + + if (update_sal) + { + set_current_sal_from_frame (fi); + +#ifdef TUI + if (tui_active) + tui_frame_changed (); +#endif + } } catch (const gdb_exception &except) { @@ -748,7 +775,7 @@ Return the frame's symtab and line." }, { "read_var", frapy_read_var, METH_VARARGS, "read_var (variable) -> gdb.Value.\n\ Return the value of the variable in this frame." }, - { "select", frapy_select, METH_NOARGS, + { "select", frapy_select, METH_VARARGS, "Select this frame as the user's current frame." }, {NULL} /* Sentinel */ }; diff --git a/gdb/tui/tui-hooks.c b/gdb/tui/tui-hooks.c index 2d7660acade..fa8f63e1146 100644 --- a/gdb/tui/tui-hooks.c +++ b/gdb/tui/tui-hooks.c @@ -187,6 +187,14 @@ tui_before_prompt (const char *current_gdb_prompt) from_source_symtab = false; } +void +tui_frame_changed (void) +{ + from_stack = true; + tui_refresh_frame_and_register_information (); + from_stack = false; +} + /* Observer for the normal_stop notification. */ static void diff --git a/gdb/tui/tui-hooks.h b/gdb/tui/tui-hooks.h index 11f8ef3d0d1..2ed2021cea6 100644 --- a/gdb/tui/tui-hooks.h +++ b/gdb/tui/tui-hooks.h @@ -20,6 +20,8 @@ #ifndef TUI_TUI_HOOKS_H #define TUI_TUI_HOOKS_H +extern void tui_frame_changed (void); + extern void tui_install_hooks (void); extern void tui_remove_hooks (void); -- 2.30.1