From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#71866: 30.0.50; [macOS] Cursor hiding char behind it with certain theme customization Date: Tue, 09 Jul 2024 14:31:45 +0300 Message-ID: <86sewiztr2.fsf@gnu.org> References: <86frstfiop.fsf@gnu.org> <03b9a1c2-986d-40ea-bdd6-d13b419c9aa0@gutov.dev> <86v81i526t.fsf@gnu.org> <1f5f741f-d599-4051-8a34-27d349360eb8@gutov.dev> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="2813"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 71866@debbugs.gnu.org To: Dmitry Gutov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jul 09 13:33:20 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1sR95z-0000TN-Jr for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 09 Jul 2024 13:33:19 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sR95e-0000yp-LE; Tue, 09 Jul 2024 07:32:58 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sR95c-0000yV-UP for bug-gnu-emacs@gnu.org; Tue, 09 Jul 2024 07:32:56 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sR95c-0002NM-M5 for bug-gnu-emacs@gnu.org; Tue, 09 Jul 2024 07:32:56 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sR95h-00052I-SR for bug-gnu-emacs@gnu.org; Tue, 09 Jul 2024 07:33:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 09 Jul 2024 11:33:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71866 X-GNU-PR-Package: emacs Original-Received: via spool by 71866-submit@debbugs.gnu.org id=B71866.172052472319287 (code B ref 71866); Tue, 09 Jul 2024 11:33:01 +0000 Original-Received: (at 71866) by debbugs.gnu.org; 9 Jul 2024 11:32:03 +0000 Original-Received: from localhost ([127.0.0.1]:52228 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sR94l-000511-9K for submit@debbugs.gnu.org; Tue, 09 Jul 2024 07:32:03 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:45302) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sR94i-00050V-Pp for 71866@debbugs.gnu.org; Tue, 09 Jul 2024 07:32:01 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sR94X-0002DW-Rz; Tue, 09 Jul 2024 07:31:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=Cu8w49onE+2r3eEGxqcGyL9tS25Iup0xwgx/Dr0rpoQ=; b=b6pLRi2O/6C+ ZuYh06PRH7XDpnxPNswqBSgw2b2fbKV9Lzb2qeJ//oRThSc/+h0rh2BxVdQ/IhCY+sOUJmgFNPrlc wld6UB98VAOXxNhN98IyENRvKBK+9f8P04bmRNT07mAbXZChykEzwb7MSDiJOGvN5k+vAmEb2iEO3 DaKtWB6ruFsdNAVmAgJTHtW0MYEITzwXY0DDd4AthqF4+hf2nOfg3gwHy+Fu0k27y843eWiJLG592 s1X7WIpuMSvsIFwq9LsEaRtS5SwMlhSjkFs+Zo5+x0m28nzW/8zvS9GLI9Cj7C3HKigB0Y7y9p6lO uYxLI5WxNd3hzoCwxfs7qQ==; In-Reply-To: <1f5f741f-d599-4051-8a34-27d349360eb8@gutov.dev> (message from Dmitry Gutov on Tue, 9 Jul 2024 05:37:10 +0300) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:288631 Archived-At: > Date: Tue, 9 Jul 2024 05:37:10 +0300 > Cc: 71866@debbugs.gnu.org > From: Dmitry Gutov > > > For starters, put a breakpoint in ns_draw_window_cursor and see if it > > gets called in the scenario where you see the problem. > > Thank you. > > It does get called. Unfortunately, as soon as I put a breakpoint there, > any attempt to switch to the Emacs window drops into the debugger again > - and I have switch back to the terminal emulator to enter 'c RET' 20 > times or so. I don't think I understand what you are trying to do. I thought you needed to "switch to the Emacs window" just once: to trigger the situation which you want to investigate. Once you trigger it, the debugger will indeed kick in, but all you need to do next is step through the code, so why do you care about switching to Emacs again? If you want to trigger this situation several times, and be able to activate and deactivate the breakpoint at will, I suggest the following technique: . put a breakpoint in some function that is easy to invoke interactively, but which otherwise is rarely called (my personal favorite is Frecenter, which you can then trigger with C-l) . put a breakpoint in ns_draw_window_cursor (or wherever you need), but make it disabled (the GDB command is "disable N" where N is the breakpoint number) . when you are ready to trigger the issue, type C-l, which will cause the debugger to kick in, and enable the breakpoint in ns_draw_window_cursor . continue Emacs, then trigger the ns_draw_window_cursor breakpoint and investigate . when you are done investigating and want to, say, set a breakpoint in some other place, do that, make the breakpoint disabled again and continue Emacs . when ready, type C-l again, enable the disabled breakpoint, and repeat the above procedure Another, or perhaps complementary, technique is to define conditions for breakpoints so that they trigger only when you want. For example, if you want a breakpoint to trigger only for a specific frame or window, find out the address of the corresponding struct window or struct frame (assuming there are variables of these types in the same scope as the breakpoint), then make the breakpoint conditioned on those variables having (or not having) those specific values. The usual method of finding out these addresses is the first time the breakpoint triggers. Then you can do: (gdb) print f $1 = (struct frame *) 0x1234567812345600 (gdb) condition 3 f == 0x1234567812345600 This makes breakpoint 3 trigger only when struct frame variable f has the value of this frame. HTH