From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.devel Subject: Re: Extend gdb to filter registers Date: Sun, 19 Jan 2020 19:05:33 +0100 Message-ID: References: <878spmuerf.fsf@mail.linkov.net> <83wod3bx8i.fsf@gnu.org> <9f5ddaa5-0234-a17b-bdd7-81d70a0a50d6@gmx.at> <83FFF194-64CD-409E-8B7A-5A9DF91E79DE@gmail.com> <83v9pb314t.fsf@gnu.org> <838sm510d6.fsf@gnu.org> <83muakzoy5.fsf@gnu.org> <71042c9f-478b-47c8-f27e-1348e9f4536d@gmx.at> <83iml8zkbm.fsf@gnu.org> <6ad85759-7408-f177-38f6-45a72c2f5a9e@gmx.at> <83eevwzi79.fsf@gnu.org> <68ef651e-9319-b392-af1c-4564d5db9112@gmx.at> <831rrvzc81.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="73818"; mail-complaints-to="usenet@ciao.gmane.io" Cc: juri@linkov.net, casouri@gmail.com, john@yates-sheets.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Jan 19 19:09:24 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1itF0m-000JAT-4T for ged-emacs-devel@m.gmane-mx.org; Sun, 19 Jan 2020 19:09:24 +0100 Original-Received: from localhost ([::1]:52328 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1itF0k-0007Mi-NY for ged-emacs-devel@m.gmane-mx.org; Sun, 19 Jan 2020 13:09:22 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:57827) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1itExJ-0006Hm-Eg for emacs-devel@gnu.org; Sun, 19 Jan 2020 13:05:50 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1itExI-0006cv-CA for emacs-devel@gnu.org; Sun, 19 Jan 2020 13:05:49 -0500 Original-Received: from mout.gmx.net ([212.227.15.18]:57053) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1itExE-0006b7-I4; Sun, 19 Jan 2020 13:05:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1579457135; bh=N3F3zIxQrTXSpc1fE4I2Ydb+M6oplgCUVmgSDMd5fig=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=FOW1e4XH8UfgdoKbcUWmfgQ4F0UpaiWh1Kgr98Is1FYvBOL7qll37v99KpB5eGCJw 1xJ3Qhb53n1XuqaYLcu4tKiQTQUhe3j6miU4PM87egR1nDrj5yi8C/gh1r9oktjTml 57W3gG8thje7D87cMnXt7pnw89v+IFYe3uBwp9po= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from [192.168.1.101] ([212.95.5.250]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MvbBk-1jjQ890gL8-00sfUT; Sun, 19 Jan 2020 19:05:35 +0100 In-Reply-To: <831rrvzc81.fsf@gnu.org> Content-Language: en-US X-Provags-ID: V03:K1:m04EOgixkVufGjKuf0EhQTXg9/P3E4q1rGUmbGjsee7o2fsiZEQ UoW4yRzpdKfa7NNYNloiXpyEg0eXL2Ibv5P/6c42QJBLYzZu5wDP1yAm8a+RRyXfGPC3NRj pHckXIvDjBQTz3IWe8fJRPZ5fbxtHKGHnmp89sj+SbqJr6U2eoDYZM1my00/0BLtyMEzYEu WWNQWuimUrFBl4y6+lJsQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:Kpe+eS5oTjg=:iwemMrCFzdpDUZGq/pUtK5 cFadkJAlz27PX9MoefhuYFBMB1i7ymaY5ITeYDOBbQklt3oBehizY3WpRqjDzzuEy/ag0Q216 E3ZD32zvKP1n36ANY3jog10G737z4bmjemmGO3WFi1jojZcznUlF4xOE9INwLJF5+uxMDpb4w 8oIeWc6JmzcurfKjVTJ2JOHQuqK/1hviL8eTlRoBD1EQLr9RCksQPgC9r0uU1vgDsmSG8ao70 6SPnINkP9Xq+vwqfvHYWuKHqHvbM2VKPzJ4tQFNntRCnfEQ+LDLh4+0hljhS/0+8wsLHA4fD6 nPU6BVC77GdF0NHocAc3qOrPb0ah6HrLTS6RoAZJ8EpYbS+SuAYZsi2QjfnglLR4cS0czmfuK xfaGgFnR1YZr2rstvyEuQGpFkeb4GE0Jd4GH309U7aXTQLfdIaLOcAx4EK6u854Dj79SdOwPl 0AhMWg9abOuitrsxLhYEy7QZlxmAqAYc3Tnyd3JNUqcuC8MJeBH6bIkNlfe81TH8DwbvoIhm1 PycYik2iWArZ+DEparLG5JBJHRpMi6ErCKnWKcFFcvqmp2IWBoqvUB84007dwarJOIw1vPxau M7yoWibDAPoCZ+PAgbF4fjRyAQP/fanFp4ZMk4mCnlOF9d40yomDuXySqB+HNCTj0BeR1XI6m kZ5U3e687UgE4hviR32q9/+iozdLGStYjmUTgrtdrlfvYMHn02WhnV7horanBIjhmsZx/a9O1 V5IEHEUqG9WbwLfIh6RKKbZQqkMj02XiH0IJ6TVXu0eU93jk2CORHWSbKim4qRuLlq52SZM0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.15.18 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:244387 Archived-At: > So you are saying that calling gdb-display-source-buffer instead of > display-buffer will not by itself help here, because display-buffer is > called under the hood anyway, and might decide to create a new window > instead of reusing an existing one? So far I've been talking only about the display functions in gdb-mi.el and that in principle all of them can call 'display-buffer'. But I don't know what really happens on your system and that of Yuan Fu. The interactions betwen gdb-mi.el and gud.el are too complicated for me to tell from here. One way to find out is to remember the name of the file (or buffer) gdb will try to trace, and instrument 'display-buffer' such that when it is asked to display that file it will print a backtrace like the following: display-buffer(# (nil (inhibit-same-window . t))) gud-display-line("/home/martin/emacs-git/trunk/src/window.c" 5158) gud-display-frame() gdb-frame-handler() gdb-handle-reply(96) gdb-done-or-error("96" done "frame={level=\"0\",addr=\"0x00000000005b581d\",func=\"F..." t) gdb-done("96" "frame={level=\"0\",addr=\"0x00000000005b581d\",func=\"F..." t) gdbmi-bnf-incomplete-record-result("96" (gdb-done . progressive)) #f(compiled-function () #)() gdbmi-bnf-result-and-async-record-impl() gdbmi-bnf-async-record() gdbmi-bnf-out-of-band-record() gdbmi-bnf-output() gud-gdbmi-marker-filter("96^done,frame={level=\"0\",addr=\"0x00000000005b581d\"...") apply(gud-gdbmi-marker-filter "96^done,frame={level=\"0\",addr=\"0x00000000005b581d\"...") gud-marker-filter("96^done,frame={level=\"0\",addr=\"0x00000000005b581d\"...") gud-filter(# "96^done,frame={level=\"0\",addr=\"0x00000000005b581d\"...") As you can see, 'gdb-frame-handler' calls 'gud-display-frame' which will eventually display window.c according to the rules for 'display-buffer'. > If so, what would be the correct solution of this issue? The 'display-buffer' call indicated above could be modified using the 'debug' approach I sketched in my first posting here. Whether this suffices to handle all of Yuan's cases is beyond my knowledge. martin