From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.help Subject: Re: Executing Emacs commands when a gdb breakpoint is hit Date: Thu, 23 Jan 2020 16:45:41 +0200 Message-ID: <83d0batene.fsf@gnu.org> References: <83o8uwvekv.fsf@gnu.org> <831rrrv2vq.fsf@gnu.org> Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="40193"; mail-complaints-to="usenet@ciao.gmane.io" To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Thu Jan 23 19:00:02 2020 Return-path: Envelope-to: geh-help-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 1iuglt-000ANe-KL for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 23 Jan 2020 19:00:01 +0100 Original-Received: from localhost ([::1]:34130 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuglr-0000EV-Ui for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 23 Jan 2020 12:59:59 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36806) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iudjZ-0004OV-K8 for help-gnu-emacs@gnu.org; Thu, 23 Jan 2020 09:45:26 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:59197) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1iudjZ-0002UC-D0 for help-gnu-emacs@gnu.org; Thu, 23 Jan 2020 09:45:25 -0500 Original-Received: from [176.228.60.248] (port=2844 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1iudjY-0000kC-Mz for help-gnu-emacs@gnu.org; Thu, 23 Jan 2020 09:45:25 -0500 In-reply-to: (message from Skip Montanaro on Wed, 22 Jan 2020 15:07:57 -0600) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:122266 Archived-At: > From: Skip Montanaro > Date: Wed, 22 Jan 2020 15:07:57 -0600 > Cc: Help GNU Emacs > > The problem I encounter is that the underlying gdb process doesn't > seem to be ready to receive input when my stop function is executed. > It appears to have been stopped, but the (gdb) prompt isn't visible in > the *gud-python* buffer. I want to print the desired expression with > (comint-send-input), then read the result. Perhaps I should just set a > gdb-level command to print the desired expressions instead. My ELisp > code would only then need to read the values from *gud-python*. The > advantage of doing everything from within my ELisp stop function is > that everything relevant to this display lives in one place. I don't > have to synchronize my ELisp with user-level gdb commands. > > Perhaps there is a comint function which will update the *gud-python* > buffer so the (gdb) prompt is visible and the underlying gdb process > is truly ready for (comint-send-input)? You could define a timer that runs your function after some small delay, maybe it could work. But in general, I must admit I find this design somewhat strange. GDB offers you 3 extension languages: the CLI scripting, Python, and Guile Scheme. Why not use one of these to do what you want? this is how the GDB developers intended for you to extend the debugger for doing these kinds of jobs. If you use Guile, you could even write code that is almost Emacs Lisp ;-)