From unknown Fri Aug 15 17:56:56 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#23720 <23720@debbugs.gnu.org> To: bug#23720 <23720@debbugs.gnu.org> Subject: Status: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25 Reply-To: bug#23720 <23720@debbugs.gnu.org> Date: Sat, 16 Aug 2025 00:56:56 +0000 retitle 23720 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23= to 24/25 reassign 23720 emacs submitter 23720 Guilhem Bichot severity 23720 minor thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 07 11:33:12 2016 Received: (at submit) by debbugs.gnu.org; 7 Jun 2016 15:33:12 +0000 Received: from localhost ([127.0.0.1]:58886 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bAJ0A-0001aL-Jy for submit@debbugs.gnu.org; Tue, 07 Jun 2016 11:33:12 -0400 Received: from eggs.gnu.org ([208.118.235.92]:34894) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bADLE-0007Ph-Uk for submit@debbugs.gnu.org; Tue, 07 Jun 2016 05:30:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bADL8-00044c-2o for submit@debbugs.gnu.org; Tue, 07 Jun 2016 05:30:27 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:44921) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bADL8-000444-01 for submit@debbugs.gnu.org; Tue, 07 Jun 2016 05:30:26 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54075) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bADL5-00083t-54 for bug-gnu-emacs@gnu.org; Tue, 07 Jun 2016 05:30:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bADL0-00042m-2q for bug-gnu-emacs@gnu.org; Tue, 07 Jun 2016 05:30:23 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:44535) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bADKz-00042F-Pt for bug-gnu-emacs@gnu.org; Tue, 07 Jun 2016 05:30:18 -0400 Received: from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u579UFt5030728 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 7 Jun 2016 09:30:15 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserv0022.oracle.com (8.13.8/8.13.8) with ESMTP id u579UFM1015876 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 7 Jun 2016 09:30:15 GMT Received: from abhmp0004.oracle.com (abhmp0004.oracle.com [141.146.116.10]) by aserv0121.oracle.com (8.13.8/8.13.8) with ESMTP id u579UEqq026745 for ; Tue, 7 Jun 2016 09:30:14 GMT Received: from [192.168.1.12] (/83.200.206.130) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 07 Jun 2016 02:30:13 -0700 To: bug-gnu-emacs@gnu.org From: Guilhem Bichot Subject: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25 Message-ID: <5756941E.3000700@oracle.com> Date: Tue, 7 Jun 2016 11:30:06 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Source-IP: aserv0022.oracle.com [141.146.126.234] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Tue, 07 Jun 2016 11:33:08 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) Hello. [ Thank you for all the work on Emacs, it so much helps my daily work ] I'm debugging the MySQL Server with "M-x gdb". Works great in Emacs23, for years. But it seems to break with upgrade to 24 (package of Ubuntu 15.10), and similarly in 25 pretest built-from-source. Here is my experience today with emacs 25; it's been consistently my experience for the last months, and a colleague has seen this too. Using "emacs -Q". M-x gdb, then I chdir to the directory where MySQL is, then "file ./mysqld". Using all-stop mode (that is the default choice). After issuing the "run" command, MySQL is waiting for client connections. Ok so far. ISSUE 1: STOPPING ================= STOP button doesn't stop (prints "command: -exec-interrupt") Menu Signals->STOP doesn't stop. C-c C-z doesn't stop. (In Emacs23 the STOP button did stop and it was sending SIGINT) Menu Signals->Break, or C-c C-c, stop properly. Suggestion: make the STOP button do as Signals->Break does (=send SIGINT), and like it did in emacs23. Perhaps another factor is MySQL ignoring STOP, but I don't think so, as doing 'kill -STOP' to the PID of mysql, in a shell, does stop it (but then it's hell to resume it, have to press "continue" for tens of times, perhaps because it has tens of threads). ISSUE 2: FRAMES MOVING AROUND ============================= After a "c"(continue) above, now MySQL is resumed, waiting for client connections. I wish to set a breakpoint. I do C-c C-c to interrupt, then in the menu Gud->gdb-mi->"display other windows": screen gets split in 6 frames (ok). All frames show the same gdb output. In the middle left frame, I open a source file (C-x C-f). I click in the left fringe near a code line: no breakpoint gets set alas. I put cursor on that line, press C-x SPC: prints "mark set (rectangle mode)"; doesn't set breakpoint either. (Both techniques worked in emacs23.) When putting the cursor in the source file, GUD-specific menu is replaced by ordinary menu; like if GUD wasn't considering this file. However, C-x C-a C-b sets breakpoint. After the breakpoint is set, I type "c". Run a MySQL query, gdb stops at breakpoint. Then, clicking on left fringe near a code line in the same source file, few lines below the breakpoint, sets a breakpoint: unlike at the first try above, it works. Like if GUD was now considering the file, now that it has broken into it? MySQL is stopped at the breakpoint. I click the "step line" button: as this stepping leads to another function in another source file, that other source file is opened (fine) but in the "breakpoints" frame (bottom right frame); this has the effect that: - breakpoints list is invisible - I'm always scanning through frames with my eyes to find where the execution pointer is now. (In Emacs23, the new file just replaces the old file. And when stepping out later, the old file would replace the new file). I do "restore window layout" which properly restores the "breakpoints" list in its frame, and puts the stepped-in file in the middle left. It's a workaround, but it's tedious as I have to do it frequently. ISSUE 3: STEPPING OUT DOESN'T PRINT RETURN VALUE ================================================ The program is in the stepped-in function, clicking "Step out" steps out of it, but this doesn't print the returned value. Emacs23 prints it ("Value returned is $1 = false"). After "c" the query finishes. I send the same query again, but this time the issue 2 doesn't happen anymore (i.e. the stepped-in source file is displayed where it should, replacing the old file, and not in the "breakpoints" frame). Using "GNU gdb (Ubuntu 7.10-1ubuntu2) 7.10" Sames issues with "GNU Emacs 24.5.1 (x86_64-pc-linux-gnu, GTK+ Version 3.16.6) of 2015-09-17 on lgw01-52, modified by Debian" As workaround, I'm currently using a built-from-source 23.4.1 which works fine. In GNU Emacs 25.0.94.1 (x86_64-unknown-linux-gnu, X toolkit, Xaw scroll bars) of 2016-06-07 built on t3500 Windowing system distributor 'The X.Org Foundation', version 11.0.11702000 System Description: Ubuntu 15.10 Configured features: XPM JPEG TIFF GIF PNG SOUND NOTIFY ZLIB TOOLKIT_SCROLL_BARS LUCID X11 Important settings: value of $LANG: fr_FR.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: Debugger Minor modes in effect: gdb-many-windows: t diff-auto-refine-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent messages: Command: -exec-next 1 [2 times] Command: -exec-step 1 Command: -exec-finish Command: -exec-step 1 Command: -exec-next 1 [4 times] Command: -exec-finish Command: -exec-step 1 [3 times] Auto-saving... Making completion list... After 0 kbd macro iterations: mouse-posn-property: Args out of range: 7601 Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message dired format-spec rfc822 mml mml-sec password-cache epg epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util help-fns mail-prsvr mail-utils rect misearch multi-isearch cus-start cus-load kmacro cl-seq gdb-mi bindat json map seq byte-opt gv bytecomp byte-compile cconv gud comint ansi-color ring vc-git diff-mode easy-mmode cl-extra help-mode cc-mode cc-fonts easymenu cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs cl-loaddefs pcase cl-lib time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote inotify dynamic-setting x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 162903 9524) (symbols 48 25219 0) (miscs 40 193 205) (strings 32 31416 5195) (string-bytes 1 976520) (vectors 16 18314) (vector-slots 8 503194 5768) (floats 8 233 199) (intervals 56 3629 313) (buffers 976 26) (heap 1024 38968 11749)) -- Mr. Guilhem Bichot Oracle / MySQL / Optimizer team, Lead Software Engineer Bordeaux, France www.oracle.com / www.mysql.com http://guilhembichot.blogspot.com/ From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 07 13:15:12 2016 Received: (at 23720) by debbugs.gnu.org; 7 Jun 2016 17:15:12 +0000 Received: from localhost ([127.0.0.1]:58937 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bAKau-00048u-3n for submit@debbugs.gnu.org; Tue, 07 Jun 2016 13:15:12 -0400 Received: from eggs.gnu.org ([208.118.235.92]:51871) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bAKar-00048g-P6 for 23720@debbugs.gnu.org; Tue, 07 Jun 2016 13:15:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bAKai-00006h-JA for 23720@debbugs.gnu.org; Tue, 07 Jun 2016 13:15:04 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:53189) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bAKai-00006a-FK; Tue, 07 Jun 2016 13:15:00 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4712 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bAKag-00082E-MY; Tue, 07 Jun 2016 13:14:59 -0400 Date: Tue, 07 Jun 2016 20:15:34 +0300 Message-Id: <837fe0syx5.fsf@gnu.org> From: Eli Zaretskii To: Guilhem Bichot In-reply-to: <5756941E.3000700@oracle.com> (message from Guilhem Bichot on Tue, 7 Jun 2016 11:30:06 +0200) Subject: Re: bug#23720: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25 References: <5756941E.3000700@oracle.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: 23720 Cc: 23720@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.4 (------) > From: Guilhem Bichot > Date: Tue, 7 Jun 2016 11:30:06 +0200 > > I'm debugging the MySQL Server with "M-x gdb". > Works great in Emacs23, for years. But it seems to break with upgrade to > 24 (package of Ubuntu 15.10), and similarly in 25 pretest > built-from-source. Here is my experience today with emacs 25; it's been > consistently my experience for the last months, and a colleague has seen > this too. Emacs 24 switched to a different GUD interface (and a different GDB interpreter, called MI) by default, and I believe most if not all of your problems happen because you try using that as if you were still working with the previous interface based on annotations. That old interface is still there, so if you decide you don't want to learn the new one, you can simply start GDB with M-x gud-gdb RET and will have your familiar debugging environment back. > ISSUE 1: STOPPING > ================= > > STOP button doesn't stop (prints "command: -exec-interrupt") "-exec-interrupt" is the MI equivalent of the GDB "interrupt" command, so it should do exactly what you want. > Menu Signals->STOP doesn't stop. > C-c C-z doesn't stop. That menu and "C-c C-z" are not relevant to debugging. When you are debugging, they will attempt to stop the debugger. > (In Emacs23 the STOP button did stop and it was sending > SIGINT) That's STOP _button_, not the menu item. The STOP menu item does exist in Emacs 23, and it behaves exactly like it does in Emacs 24 and 25. > Menu Signals->Break, or C-c C-c, stop properly. > > Suggestion: make the STOP button do as Signals->Break does > (=send SIGINT), and like it did in emacs23. There's no STOP button on the gdb-mi toolbar, I guess you mean add it? > Perhaps another factor is MySQL ignoring STOP, but I don't think so, as > doing 'kill -STOP' to the PID of mysql, in a shell, does stop it (but > then it's hell to resume it, have to press "continue" for tens of times, > perhaps because it has tens of threads). Please do find out whether MySQL ignores STOP (or maybe TSTP?). I'd like to be sure what are the real issues. > ISSUE 2: FRAMES MOVING AROUND > ============================= > > After a "c"(continue) above, now MySQL is resumed, waiting for > client connections. > I wish to set a breakpoint. > > I do C-c C-c to interrupt, then in the menu Gud->gdb-mi->"display other > windows": screen gets split in 6 frames (ok). > All frames show the same gdb output. You should generally invoke gdb-many-windows before starting the actual debugging. > In the middle left frame, I open a source file (C-x C-f). > I click in the left fringe near a code line: no breakpoint gets set > alas. > I put cursor on that line, press C-x SPC: prints "mark set (rectangle > mode)"; doesn't set breakpoint either. > (Both techniques worked in emacs23.) It sounds like your debuggee program is running, which is why you don't see the breakpoint feedback. I think you need to stop the program first, and then insert breakpoints. (I never debug in async mode, so I'm not 100% sure in what I say, but I think I'm right.) > When putting the cursor in the source file, GUD-specific menu is > replaced by ordinary menu; like if GUD wasn't considering this file. Yes, because you opened the source file yourself. It is best to start the debuggee with a "start" command (rather than "run"), and then open sources in the same window where Emacs shows the source of the current function. > However, C-x C-a C-b sets breakpoint. > > After the breakpoint is set, I type "c". > Run a MySQL query, gdb stops at breakpoint. > Then, clicking on left fringe near a code line in the same source > file, few lines below the breakpoint, sets a breakpoint: unlike at the > first try above, it works. Like if GUD was now considering the file, now > that it has broken into it? I believe that's because MySQL is now stopped, see above. > MySQL is stopped at the breakpoint. I click the "step line" button: as > this stepping leads to another function in another source file, that > other source file is opened (fine) but in the "breakpoints" frame > (bottom right frame); this has the effect that: > - breakpoints list is invisible > - I'm always scanning through frames with my eyes to find where the > execution pointer is now. This never happens to me. Please try this again, but this time invoke gdb-many-windows before actually debugging, after entering the debugger and getting the prompt. If it still doesn't work, I suspect some of your customizations, so please try in "emacs -Q". > (In Emacs23, the new file just replaces the old file. And when stepping > out later, the old file would replace the new file). That's what I see here with the latest Emacs 25. > I do "restore window layout" which properly restores the > "breakpoints" list in its frame, and puts the stepped-in file in the > middle left. It's a workaround, but it's tedious as I have to do it > frequently. See above: you shouldn't need to. I don't. > ISSUE 3: STEPPING OUT DOESN'T PRINT RETURN VALUE > ================================================ > > The program is in the stepped-in function, clicking "Step out" steps out > of it, but this doesn't print the returned value. > Emacs23 prints it ("Value returned is $1 = false"). Looks like a missing feature in gdb-mi: the return value sent by MI is not processed. > After "c" the query finishes. I send the same query again, but this > time the issue 2 doesn't happen anymore (i.e. the stepped-in > source file is displayed where it should, replacing the old file, and > not in the "breakpoints" frame). For me, it always works like this. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 07 14:54:42 2016 Received: (at 23720) by debbugs.gnu.org; 7 Jun 2016 18:54:42 +0000 Received: from localhost ([127.0.0.1]:59084 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bAM9B-0006aJ-PF for submit@debbugs.gnu.org; Tue, 07 Jun 2016 14:54:41 -0400 Received: from eggs.gnu.org ([208.118.235.92]:54783) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bAM99-0006a6-Qe for 23720@debbugs.gnu.org; Tue, 07 Jun 2016 14:54:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bAM90-0008UH-G9 for 23720@debbugs.gnu.org; Tue, 07 Jun 2016 14:54:34 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_40,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:54937) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bAM90-0008U7-D3; Tue, 07 Jun 2016 14:54:30 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4744 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bAM8x-0004Bf-Hp; Tue, 07 Jun 2016 14:54:29 -0400 Date: Tue, 07 Jun 2016 21:54:58 +0300 Message-Id: <8337oosubh.fsf@gnu.org> From: Eli Zaretskii To: guilhem.bichot@oracle.com In-reply-to: <837fe0syx5.fsf@gnu.org> (message from Eli Zaretskii on Tue, 07 Jun 2016 20:15:34 +0300) Subject: Re: bug#23720: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25 References: <5756941E.3000700@oracle.com> <837fe0syx5.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: 23720 Cc: 23720@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.4 (------) > Date: Tue, 07 Jun 2016 20:15:34 +0300 > From: Eli Zaretskii > Cc: 23720@debbugs.gnu.org > > > ISSUE 3: STEPPING OUT DOESN'T PRINT RETURN VALUE > > ================================================ > > > > The program is in the stepped-in function, clicking "Step out" steps out > > of it, but this doesn't print the returned value. > > Emacs23 prints it ("Value returned is $1 = false"). > > Looks like a missing feature in gdb-mi: the return value sent by MI is > not processed. Please try the patch below, I think it will fix this. diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 5ad101d..195acaf 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el @@ -2488,7 +2488,9 @@ gdb-stopped ;; Reason is available with target-async only (let* ((result (gdb-json-string output-field)) (reason (bindat-get-field result 'reason)) - (thread-id (bindat-get-field result 'thread-id))) + (thread-id (bindat-get-field result 'thread-id)) + (retval (bindat-get-field result 'return-value)) + (varnum (bindat-get-field result 'gdb-result-var))) ;; -data-list-register-names needs to be issued for any stopped ;; thread @@ -2514,6 +2516,11 @@ gdb-stopped (if (string-equal reason "exited-normally") (setq gdb-active-process nil)) + (when (and retval varnum) + (setq gdb-filter-output + (concat gdb-filter-output + (format "Value returned is %s = %s\n" varnum retval)))) + ;; Select new current thread. ;; Don't switch if we have no reasons selected From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 09 03:42:40 2016 Received: (at 23720) by debbugs.gnu.org; 9 Jun 2016 07:42:40 +0000 Received: from localhost ([127.0.0.1]:33297 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bAubw-00004x-CS for submit@debbugs.gnu.org; Thu, 09 Jun 2016 03:42:40 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:38979) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bAubv-0008WP-2I for 23720@debbugs.gnu.org; Thu, 09 Jun 2016 03:42:39 -0400 Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u597gWT7011357 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 9 Jun 2016 07:42:32 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserv0021.oracle.com (8.13.8/8.13.8) with ESMTP id u597gVvk001161 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 9 Jun 2016 07:42:32 GMT Received: from abhmp0013.oracle.com (abhmp0013.oracle.com [141.146.116.19]) by aserv0122.oracle.com (8.13.8/8.13.8) with ESMTP id u597gTnE002118; Thu, 9 Jun 2016 07:42:30 GMT Received: from [10.175.202.2] (/10.175.202.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 09 Jun 2016 00:42:29 -0700 Subject: Re: bug#23720: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25 To: Eli Zaretskii References: <5756941E.3000700@oracle.com> <837fe0syx5.fsf@gnu.org> <8337oosubh.fsf@gnu.org> From: Guilhem Bichot Message-ID: <57591DDF.4030900@oracle.com> Date: Thu, 9 Jun 2016 09:42:23 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <8337oosubh.fsf@gnu.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-Source-IP: aserv0021.oracle.com [141.146.126.233] X-Spam-Score: -3.7 (---) X-Debbugs-Envelope-To: 23720 Cc: 23720@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.7 (---) Hello, Eli Zaretskii a écrit le 07/06/2016 20:54 : >> Date: Tue, 07 Jun 2016 20:15:34 +0300 >> From: Eli Zaretskii >> Cc: 23720@debbugs.gnu.org >> >>> ISSUE 3: STEPPING OUT DOESN'T PRINT RETURN VALUE >>> ================================================ >>> >>> The program is in the stepped-in function, clicking "Step out" steps out >>> of it, but this doesn't print the returned value. >>> Emacs23 prints it ("Value returned is $1 = false"). >> >> Looks like a missing feature in gdb-mi: the return value sent by MI is >> not processed. > > Please try the patch below, I think it will fix this. > > diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el > index 5ad101d..195acaf 100644 > --- a/lisp/progmodes/gdb-mi.el > +++ b/lisp/progmodes/gdb-mi.el > @@ -2488,7 +2488,9 @@ gdb-stopped > ;; Reason is available with target-async only > (let* ((result (gdb-json-string output-field)) > (reason (bindat-get-field result 'reason)) > - (thread-id (bindat-get-field result 'thread-id))) > + (thread-id (bindat-get-field result 'thread-id)) > + (retval (bindat-get-field result 'return-value)) > + (varnum (bindat-get-field result 'gdb-result-var))) > > ;; -data-list-register-names needs to be issued for any stopped > ;; thread > @@ -2514,6 +2516,11 @@ gdb-stopped > (if (string-equal reason "exited-normally") > (setq gdb-active-process nil)) > > + (when (and retval varnum) > + (setq gdb-filter-output > + (concat gdb-filter-output > + (format "Value returned is %s = %s\n" varnum retval)))) > + > ;; Select new current thread. > > ;; Don't switch if we have no reasons selected yes, it works! thanks! Please, could you consider incorporating this into the next releases? From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 09 04:15:09 2016 Received: (at 23720) by debbugs.gnu.org; 9 Jun 2016 08:15:09 +0000 Received: from localhost ([127.0.0.1]:33311 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bAv7N-0000vN-6r for submit@debbugs.gnu.org; Thu, 09 Jun 2016 04:15:09 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:25363) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bAv7K-0000nm-M6 for 23720@debbugs.gnu.org; Thu, 09 Jun 2016 04:15:07 -0400 Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u598ExGI020533 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 9 Jun 2016 08:14:59 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by userv0021.oracle.com (8.13.8/8.13.8) with ESMTP id u598ExAY007180 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 9 Jun 2016 08:14:59 GMT Received: from abhmp0016.oracle.com (abhmp0016.oracle.com [141.146.116.22]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id u598EvW7015192; Thu, 9 Jun 2016 08:14:58 GMT Received: from [10.175.202.2] (/10.175.202.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 09 Jun 2016 01:14:56 -0700 Subject: Re: bug#23720: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25 To: Eli Zaretskii References: <5756941E.3000700@oracle.com> <837fe0syx5.fsf@gnu.org> From: Guilhem Bichot Message-ID: <5759257F.9030502@oracle.com> Date: Thu, 9 Jun 2016 10:14:55 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <837fe0syx5.fsf@gnu.org> Content-Type: multipart/mixed; boundary="------------080003080109060602070504" X-Source-IP: userv0021.oracle.com [156.151.31.71] X-Spam-Score: -3.7 (---) X-Debbugs-Envelope-To: 23720 Cc: 23720@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.7 (---) This is a multi-part message in MIME format. --------------080003080109060602070504 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit Hello, Eli Zaretskii a écrit le 07/06/2016 19:15 : >> From: Guilhem Bichot >> Date: Tue, 7 Jun 2016 11:30:06 +0200 >> >> I'm debugging the MySQL Server with "M-x gdb". >> Works great in Emacs23, for years. But it seems to break with upgrade to >> 24 (package of Ubuntu 15.10), and similarly in 25 pretest >> built-from-source. Here is my experience today with emacs 25; it's been >> consistently my experience for the last months, and a colleague has seen >> this too. > > Emacs 24 switched to a different GUD interface (and a different GDB > interpreter, called MI) by default, and I believe most if not all of > your problems happen because you try using that as if you were still > working with the previous interface based on annotations. That old > interface is still there, so if you decide you don't want to learn the > new one, you can simply start GDB with > > M-x gud-gdb RET > > and will have your familiar debugging environment back. Not quite. Even with gud-gdb, some scenarios described below (ISSUE 2) still happen: - with emacs25 C-x SPC doesn't set a breakpoint; with emacs23 it does. - Same for "clicking on the fringe doesn't set breakpoint". - the Gud menu has lost "display other windows" Before digging more in the gdb-mi discussion below, let's address one striking point, to be sure we're talking about the same software: >> ISSUE 1: STOPPING >> ================= >> Suggestion: make the STOP button do as Signals->Break does >> (=send SIGINT), and like it did in emacs23. > > There's no STOP button on the gdb-mi toolbar, I guess you mean add it? There is such button; after running "M-x gdb" (which says it will run "gdb -i=mi", so I imagine it's gdb-mi), there is a green GO button; when running the program, this button becomes a red STOP button. Attached is a screenshot, with the mouse pointer on the button. >> ISSUE 2: FRAMES MOVING AROUND >> ============================= >> >> After a "c"(continue) above, now MySQL is resumed, waiting for >> client connections. >> I wish to set a breakpoint. >> >> I do C-c C-c to interrupt, then in the menu Gud->gdb-mi->"display other >> windows": screen gets split in 6 frames (ok). >> All frames show the same gdb output. > > You should generally invoke gdb-many-windows before starting the > actual debugging. > >> In the middle left frame, I open a source file (C-x C-f). >> I click in the left fringe near a code line: no breakpoint gets set >> alas. >> I put cursor on that line, press C-x SPC: prints "mark set (rectangle >> mode)"; doesn't set breakpoint either. >> (Both techniques worked in emacs23.) > > It sounds like your debuggee program is running, which is why you > don't see the breakpoint feedback. I think you need to stop the > program first, and then insert breakpoints. (I never debug in async > mode, so I'm not 100% sure in what I say, but I think I'm right.) > >> When putting the cursor in the source file, GUD-specific menu is >> replaced by ordinary menu; like if GUD wasn't considering this file. > > Yes, because you opened the source file yourself. It is best to start > the debuggee with a "start" command (rather than "run"), and then open > sources in the same window where Emacs shows the source of the current > function. > >> However, C-x C-a C-b sets breakpoint. >> >> After the breakpoint is set, I type "c". >> Run a MySQL query, gdb stops at breakpoint. >> Then, clicking on left fringe near a code line in the same source >> file, few lines below the breakpoint, sets a breakpoint: unlike at the >> first try above, it works. Like if GUD was now considering the file, now >> that it has broken into it? > > I believe that's because MySQL is now stopped, see above. > >> MySQL is stopped at the breakpoint. I click the "step line" button: as >> this stepping leads to another function in another source file, that >> other source file is opened (fine) but in the "breakpoints" frame >> (bottom right frame); this has the effect that: >> - breakpoints list is invisible >> - I'm always scanning through frames with my eyes to find where the >> execution pointer is now. > > This never happens to me. Please try this again, but this time invoke > gdb-many-windows before actually debugging, after entering the > debugger and getting the prompt. If it still doesn't work, I suspect > some of your customizations, so please try in "emacs -Q". > >> (In Emacs23, the new file just replaces the old file. And when stepping >> out later, the old file would replace the new file). > > That's what I see here with the latest Emacs 25. > >> I do "restore window layout" which properly restores the >> "breakpoints" list in its frame, and puts the stepped-in file in the >> middle left. It's a workaround, but it's tedious as I have to do it >> frequently. > > See above: you shouldn't need to. I don't. --------------080003080109060602070504 Content-Type: image/png; name="Capture du 2016-06-09 10-10-15.png" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Capture du 2016-06-09 10-10-15.png" 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 pZ/Oyl9uIaBN2/rY1obVaOmrmnoK5U7WpHZ/pHFK86dhPVbVwkqP85b0Zn+vSsOu6PstC7sS TX+2ThtAG/PHZwMAAFjL7aIAQCsWQgAAwL17VyRcDHG/DYAe7i6NAwCcgXsloLXyHqsa+jOw HxZCAHC4lZM0JojQ8txnPOcNwPe4NA4AAADAcVgIAQAAADjO9EvjNO/4sHw52Yh3uOycbu3J O6m4dy7vLulK42tNN/dCyhzt+22k8bX0Pymrm6dzeUzVX64eTr5MRlJ/vXH1xNma9oi06C/P YjWOW/cL+tl8K94fuLJ9rco7ei4UmroQihsp966IMOz9b2kl9KYrJcmf53Qlk7kR6WqdlK40 vtZ0NTfwll40KElX856UWroa0nFDg0lDG+0iuSXOGaSLd+C6xo/j2MdpbWxZXu1J057xedql canJdq4AYdhSIVsWQfG/W0jy5zHd1o5CuuPTlcbXmq7VAsOyP1uTjhunur+U8K0n1MsTynBd +5dj9DiOs+1+fHi17VPjwoGkpWOsmsR5mzzi+bTHh2Z73bI/e9jWBwBr0jGNse/ZTmtfT+V9 f3//5uePj4+v/562IxSepS2RnimRxmdt1Zkc0n12uqPssrjozefT2m2EVWOmd9QLAJwlXBht uyPUIl5IPT3dme6dufB60Nrk1qJedkrXgibdlvxI/kZafyf0+5C27m65+/XisJJwpXvZJGFa 4gv/zks7S+6Hk9RLb7ojx6BUepqxzzrtUpy1dLXlkOZNcl/O/fOo74WecCNJytvSn0thNeNf 6u9SYVvStbpNIRffqP6sic+yfa3zN2LsrQl3gK7r94XQ+/v79Xq91j4+e+bZ6nvAKd3zUfpv l3RL1yOPFqY9s22fkK6m3STpjqqHWn/WhhuZV2/CcubqJjVBK9WhpJ41Ox6S8apWhpEk46M0 j9Y7QZo2C8P11F1chlKZpPmTSNWxtM+kwmjKMYJmvKqJx2fpOD7rGLrT1PZTabgZY4d1/+tJ OxWfdX/WxmfZvtb5s24PqXAHKL5MbsmOkNXZMI24keKzMaPysSLdMJ3w59FSZ9tKZ7ysyr5L ujXSdrNONxdvLo+p/Jb6cyqcJs2n0JYxrmtJGIs+2BrfjDb0ko9Yqh+n6q8UzkP+ekmO7xHp 9hp5HJXikoaz1tNPa+FSP+c+sza6/z2lP68qx+r6ixdAt2XvEfLSYZ5qdv2edmCNSrf2d9p0 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 REttgdNTDmsejrdV/dTDMQqMtOw9QhxcY82u31VfFE9Lt/Z32nRzk/I4XEt+d5x4P82s3V74 JtlZyy3SPR27TykHgH1MXQhJFkHSM0irrMof6T47XWupvPaUQ/q3mvqzrFcv7TZr9zVMD5D0 g9yYMPpERmrx0rNbv6ocAJ5p6XuEMAZniX26v6xz7bOq3Vaky3gAAABWc/keofgehPCznrhu lnHm4lqVbpzWrHRbyltbGDwtXYlafDuka3n8aqxKN5eP1Get7ZY7ox734VK/RlptPNCGm0na D6T5HjW+lO5zyqV7/9xSjl6S4232GLOqn3rs94ClZfcIxVKTqdJAk4ont/Wu2ZqXquWPdEm3 Nc1afDukK6m/65KPB1LSdDXiPPbmTVN/pbCpMKlwTGCeTdIPcmHicLmwkj7VOx5Zl6M37ZZ6 AbCfaQuh1oHRKr4RA1br9cze0pWGJd3x6VrmTfM3I9K1PH41rOLuaS/t59bpt6Z5opHHXI9V Y4skrPX4Yx2mhfdjaUU/ZdGHExz1QlUAAADUsfjBCVzeIwQAAAAAI7EQAgAAAHAcFkIAAAAA jsNCCAAAAMBxWAgBAAAAOM7y9whJ3jFSe3JJy/tKLJ6GsnO6tXeLlN7dtGN5d0lXGl9rum9v b6L3crX2F+twLazeIyR5x1EurZUvdI1Zv6spFaeHcp7IUz9D3m7t1DuOzyznqrrdrU2RN3Uh FHec++VktYlZLkwcziJdKUn+PKcrmcyNSFfrpHSl8bWmmztWtP1FEmfre0h6X/4pHTc0JHFY pTWCdlFbM+J4A+CHdn4Qh2c8wE6mXRqXOphyZxXCsKUzDy2LoPjfLST585hu6wSIdMenK42v NV3pIkgan0fScWMH8RvsvXhSf0Ge1/43ymnlHYnxALvZ9h6h3m3JVWcrOEuC2UZ9IVlfGrD7 pQYnf/GHi08AAHYxbSEk/aKUnnFc9cW76owo6T473VF2WVz05vNp7QYAkOHENnpMf1jCSvFC 6unpzvR6vb67Nrg2ubWol53StaBJd2R+tPeVPbXf31LtkhIvymr372j6cimcFWk5b9Ly3vHm wmr7uFW6Gpr75aRppuKU3gvYkq62/0nVyqFtD6v6G3W8WY99rf3Z47hrnT9pHNJ0peE81i3a LL00bubZ6vuLu3TPR+m/XdIt3VcyWpj2zLZ9QrqadpOkK83PqP5S6/dx2DAvTyW5hyne6S7t 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 cNCuJmo8AAAAAElFTkSuQmCC --------------080003080109060602070504-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 09 08:17:29 2016 Received: (at 23720) by debbugs.gnu.org; 9 Jun 2016 12:17:29 +0000 Received: from localhost ([127.0.0.1]:33402 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bAyts-0001IA-SX for submit@debbugs.gnu.org; Thu, 09 Jun 2016 08:17:29 -0400 Received: from eggs.gnu.org ([208.118.235.92]:39330) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bAytr-0001Hy-Tu for 23720@debbugs.gnu.org; Thu, 09 Jun 2016 08:17:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bAyti-0004tI-78 for 23720@debbugs.gnu.org; Thu, 09 Jun 2016 08:17:22 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:34744) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bAyti-0004tE-3X; Thu, 09 Jun 2016 08:17:18 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2827 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bAyth-0003Rj-CT; Thu, 09 Jun 2016 08:17:17 -0400 Date: Thu, 09 Jun 2016 15:17:58 +0300 Message-Id: <83d1nqr1xl.fsf@gnu.org> From: Eli Zaretskii To: Guilhem Bichot In-reply-to: <5759257F.9030502@oracle.com> (message from Guilhem Bichot on Thu, 9 Jun 2016 10:14:55 +0200) Subject: Re: bug#23720: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25 References: <5756941E.3000700@oracle.com> <837fe0syx5.fsf@gnu.org> <5759257F.9030502@oracle.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: 23720 Cc: 23720@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.4 (------) > Cc: 23720@debbugs.gnu.org > From: Guilhem Bichot > Date: Thu, 9 Jun 2016 10:14:55 +0200 > > > M-x gud-gdb RET > > > > and will have your familiar debugging environment back. > > Not quite. Even with gud-gdb, some scenarios described below (ISSUE 2) > still happen: > - with emacs25 C-x SPC doesn't set a breakpoint; with emacs23 it does. > - Same for "clicking on the fringe doesn't set breakpoint". > - the Gud menu has lost "display other windows" Like I said, I believe this is because your program is running. When I start the debugger, before the "run" command, breakpoints do work as expected. > Before digging more in the gdb-mi discussion below, let's address one > striking point, to be sure we're talking about the same software: > > >> ISSUE 1: STOPPING > >> ================= > > >> Suggestion: make the STOP button do as Signals->Break does > >> (=send SIGINT), and like it did in emacs23. > > > > There's no STOP button on the gdb-mi toolbar, I guess you mean add it? > > There is such button; after running "M-x gdb" (which says it will run > "gdb -i=mi", so I imagine it's gdb-mi), there is a green GO button; when > running the program, this button becomes a red STOP button. Attached is > a screenshot, with the mouse pointer on the button. This button invokes -exec-interrupt when you use gdb-mi, which is the equivalent of the 'interrupt' command of GDB. From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 09 09:47:04 2016 Received: (at 23720) by debbugs.gnu.org; 9 Jun 2016 13:47:04 +0000 Received: from localhost ([127.0.0.1]:33440 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bB0IZ-0003L9-Lt for submit@debbugs.gnu.org; Thu, 09 Jun 2016 09:47:03 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:31157) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bB0IX-0003KK-EN for 23720@debbugs.gnu.org; Thu, 09 Jun 2016 09:47:02 -0400 Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u59DksBv013444 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 9 Jun 2016 13:46:55 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userv0021.oracle.com (8.13.8/8.13.8) with ESMTP id u59Dkra1026109 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 9 Jun 2016 13:46:54 GMT Received: from abhmp0007.oracle.com (abhmp0007.oracle.com [141.146.116.13]) by aserv0121.oracle.com (8.13.8/8.13.8) with ESMTP id u59DkqFC005053; Thu, 9 Jun 2016 13:46:53 GMT Received: from [10.175.202.2] (/10.175.202.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 09 Jun 2016 06:46:51 -0700 Subject: Re: bug#23720: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25 To: Eli Zaretskii References: <5756941E.3000700@oracle.com> <837fe0syx5.fsf@gnu.org> <5759257F.9030502@oracle.com> <83d1nqr1xl.fsf@gnu.org> From: Guilhem Bichot Message-ID: <5759734A.8090809@oracle.com> Date: Thu, 9 Jun 2016 15:46:50 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <83d1nqr1xl.fsf@gnu.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-Source-IP: userv0021.oracle.com [156.151.31.71] X-Spam-Score: -3.7 (---) X-Debbugs-Envelope-To: 23720 Cc: 23720@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.7 (---) Hello, Eli Zaretskii a écrit le 09/06/2016 14:17 : >> Cc: 23720@debbugs.gnu.org >> From: Guilhem Bichot >> Date: Thu, 9 Jun 2016 10:14:55 +0200 >> >>> M-x gud-gdb RET >>> >>> and will have your familiar debugging environment back. >> >> Not quite. Even with gud-gdb, some scenarios described below (ISSUE 2) >> still happen: >> - with emacs25 C-x SPC doesn't set a breakpoint; with emacs23 it does. >> - Same for "clicking on the fringe doesn't set breakpoint". >> - the Gud menu has lost "display other windows" > > Like I said, I believe this is because your program is running. It is not running. I can repeat the problem when the display is: Breakpoint 1, JOIN::exec (this=0x7fff70008770) at /home/mysql_src/git/cte/sql/sql_executor.cc:113 113 { (gdb) which very much suggests the program is currently stopped (thus, not running). At that point, I can open another file, and put the cursor on a line of that file, and: - C-x C-a C-b does set the breakpoint (another hint that the program isn't stopped). - C-x SPC and clicking on the fringe, don't. In emacs23 they do. In other words, gdb-mi sees manually-opened-files as "not my business I won't offer my shortcuts there", while gud-gdb sees it differently. The latter is more convenient. It is not possible to know in advance all the breakpoints one will need and set them all before "run"... > When > I start the debugger, before the "run" command, breakpoints do work as > expected. > >> Before digging more in the gdb-mi discussion below, let's address one >> striking point, to be sure we're talking about the same software: >> >>>> ISSUE 1: STOPPING >>>> ================= >> >>>> Suggestion: make the STOP button do as Signals->Break does >>>> (=send SIGINT), and like it did in emacs23. >>> >>> There's no STOP button on the gdb-mi toolbar, I guess you mean add it? >> >> There is such button; after running "M-x gdb" (which says it will run >> "gdb -i=mi", so I imagine it's gdb-mi), there is a green GO button; when >> running the program, this button becomes a red STOP button. Attached is >> a screenshot, with the mouse pointer on the button. > > This button invokes -exec-interrupt when you use gdb-mi, which is the > equivalent of the 'interrupt' command of GDB. ok, now we agree there's a STOP button in emacs24. (gdb) help interrupt Interrupt the execution of the debugged program. So, shouldn't this STOP button interrupt my debugged, running program (mysql)? Pressing this STOP button in emacs23 does interrupt it. It doesn't anymore in emacs24. Is it considered normal? From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 09 10:12:06 2016 Received: (at 23720) by debbugs.gnu.org; 9 Jun 2016 14:12:07 +0000 Received: from localhost ([127.0.0.1]:34757 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bB0go-0004FH-A8 for submit@debbugs.gnu.org; Thu, 09 Jun 2016 10:12:06 -0400 Received: from eggs.gnu.org ([208.118.235.92]:41564) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bB0gj-0004Ek-VU for 23720@debbugs.gnu.org; Thu, 09 Jun 2016 10:12:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bB0gb-0000cF-Nh for 23720@debbugs.gnu.org; Thu, 09 Jun 2016 10:11:56 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:36665) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bB0gb-0000c4-KE; Thu, 09 Jun 2016 10:11:53 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3009 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bB0gZ-0005fX-SI; Thu, 09 Jun 2016 10:11:52 -0400 Date: Thu, 09 Jun 2016 17:12:32 +0300 Message-Id: <834m92qwmn.fsf@gnu.org> From: Eli Zaretskii To: Guilhem Bichot In-reply-to: <5759734A.8090809@oracle.com> (message from Guilhem Bichot on Thu, 9 Jun 2016 15:46:50 +0200) Subject: Re: bug#23720: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25 References: <5756941E.3000700@oracle.com> <837fe0syx5.fsf@gnu.org> <5759257F.9030502@oracle.com> <83d1nqr1xl.fsf@gnu.org> <5759734A.8090809@oracle.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: 23720 Cc: 23720@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.4 (------) > Cc: 23720@debbugs.gnu.org > From: Guilhem Bichot > Date: Thu, 9 Jun 2016 15:46:50 +0200 > > > Like I said, I believe this is because your program is running. > > It is not running. I can repeat the problem when the display is: > Breakpoint 1, JOIN::exec (this=0x7fff70008770) at > /home/mysql_src/git/cte/sql/sql_executor.cc:113 > 113 { > (gdb) > > which very much suggests the program is currently stopped (thus, not > running). At that point, I can open another file, and put the cursor on > a line of that file, and: > - C-x C-a C-b does set the breakpoint (another hint that the program > isn't stopped). > - C-x SPC and clicking on the fringe, don't. In emacs23 they do. > > In other words, gdb-mi sees manually-opened-files as "not my business I > won't offer my shortcuts there", while gud-gdb sees it differently. The > latter is more convenient. > > It is not possible to know in advance all the breakpoints one will need > and set them all before "run"... Ah, okay, I've misunderstood you, sorry. Yes, this is how stuff works with gdb-mi. > ok, now we agree there's a STOP button in emacs24. > > (gdb) help interrupt > Interrupt the execution of the debugged program. > > So, shouldn't this STOP button interrupt my debugged, running program > (mysql)? > Pressing this STOP button in emacs23 does interrupt it. > It doesn't anymore in emacs24. > Is it considered normal? I don't think so, but I don't have any more wisdom to offer about this. AFAIU, -exec-interrupt should have interrupted your program, unless it masks signals. From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 09 10:30:29 2016 Received: (at 23720) by debbugs.gnu.org; 9 Jun 2016 14:30:30 +0000 Received: from localhost ([127.0.0.1]:34768 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bB0yb-0004fs-JV for submit@debbugs.gnu.org; Thu, 09 Jun 2016 10:30:29 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:24482) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bB0yZ-0004fd-3w for 23720@debbugs.gnu.org; Thu, 09 Jun 2016 10:30:27 -0400 Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u59EUJti010394 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 9 Jun 2016 14:30:20 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userv0021.oracle.com (8.13.8/8.13.8) with ESMTP id u59EUJmV030931 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 9 Jun 2016 14:30:19 GMT Received: from abhmp0008.oracle.com (abhmp0008.oracle.com [141.146.116.14]) by aserv0121.oracle.com (8.13.8/8.13.8) with ESMTP id u59EUIFB027698; Thu, 9 Jun 2016 14:30:18 GMT Received: from [10.175.202.2] (/10.175.202.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 09 Jun 2016 07:30:17 -0700 Subject: Re: bug#23720: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25 To: Eli Zaretskii References: <5756941E.3000700@oracle.com> <837fe0syx5.fsf@gnu.org> <5759257F.9030502@oracle.com> <83d1nqr1xl.fsf@gnu.org> <5759734A.8090809@oracle.com> <834m92qwmn.fsf@gnu.org> From: Guilhem Bichot Message-ID: <57597D78.1050508@oracle.com> Date: Thu, 9 Jun 2016 16:30:16 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <834m92qwmn.fsf@gnu.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-Source-IP: userv0021.oracle.com [156.151.31.71] X-Spam-Score: -3.7 (---) X-Debbugs-Envelope-To: 23720 Cc: 23720@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.7 (---) Eli Zaretskii a écrit le 09/06/2016 16:12 : >> Cc: 23720@debbugs.gnu.org >> From: Guilhem Bichot >> Date: Thu, 9 Jun 2016 15:46:50 +0200 >> >>> Like I said, I believe this is because your program is running. >> >> It is not running. I can repeat the problem when the display is: >> Breakpoint 1, JOIN::exec (this=0x7fff70008770) at >> /home/mysql_src/git/cte/sql/sql_executor.cc:113 >> 113 { >> (gdb) >> >> which very much suggests the program is currently stopped (thus, not >> running). At that point, I can open another file, and put the cursor on >> a line of that file, and: >> - C-x C-a C-b does set the breakpoint (another hint that the program >> isn't stopped). >> - C-x SPC and clicking on the fringe, don't. In emacs23 they do. >> >> In other words, gdb-mi sees manually-opened-files as "not my business I >> won't offer my shortcuts there", while gud-gdb sees it differently. The >> latter is more convenient. >> >> It is not possible to know in advance all the breakpoints one will need >> and set them all before "run"... > > Ah, okay, I've misunderstood you, sorry. Yes, this is how stuff works > with gdb-mi. Ok. So, apparently, gdb-mi has a set of "source files it has visited" and treats other source files differently. >> ok, now we agree there's a STOP button in emacs24. >> >> (gdb) help interrupt >> Interrupt the execution of the debugged program. >> >> So, shouldn't this STOP button interrupt my debugged, running program >> (mysql)? >> Pressing this STOP button in emacs23 does interrupt it. >> It doesn't anymore in emacs24. >> Is it considered normal? > > I don't think so, but I don't have any more wisdom to offer about > this. AFAIU, -exec-interrupt should have interrupted your program, > unless it masks signals. I see. When I find the time, I'll try diff-ing the code of gud-gdb and of gdb-mi to find what magic the gud-gdb STOP button has, which makes it have "a stronger interruption effect". If I find anything, I'll report it here. Thanks for your help! From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 09 10:35:51 2016 Received: (at 23720) by debbugs.gnu.org; 9 Jun 2016 14:35:51 +0000 Received: from localhost ([127.0.0.1]:34776 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bB13n-0004nB-LR for submit@debbugs.gnu.org; Thu, 09 Jun 2016 10:35:51 -0400 Received: from eggs.gnu.org ([208.118.235.92]:48140) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bB13m-0004my-HA for 23720@debbugs.gnu.org; Thu, 09 Jun 2016 10:35:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bB13c-0007Mo-UI for 23720@debbugs.gnu.org; Thu, 09 Jun 2016 10:35:45 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:37039) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bB13c-0007MZ-R0; Thu, 09 Jun 2016 10:35:40 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3109 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bB13a-0002rj-Tr; Thu, 09 Jun 2016 10:35:39 -0400 Date: Thu, 09 Jun 2016 17:36:20 +0300 Message-Id: <831t46qviz.fsf@gnu.org> From: Eli Zaretskii To: Guilhem Bichot In-reply-to: <57597D78.1050508@oracle.com> (message from Guilhem Bichot on Thu, 9 Jun 2016 16:30:16 +0200) Subject: Re: bug#23720: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25 References: <5756941E.3000700@oracle.com> <837fe0syx5.fsf@gnu.org> <5759257F.9030502@oracle.com> <83d1nqr1xl.fsf@gnu.org> <5759734A.8090809@oracle.com> <834m92qwmn.fsf@gnu.org> <57597D78.1050508@oracle.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: 23720 Cc: 23720@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.4 (------) > Cc: 23720@debbugs.gnu.org > From: Guilhem Bichot > Date: Thu, 9 Jun 2016 16:30:16 +0200 > > >> Pressing this STOP button in emacs23 does interrupt it. > >> It doesn't anymore in emacs24. > >> Is it considered normal? > > > > I don't think so, but I don't have any more wisdom to offer about > > this. AFAIU, -exec-interrupt should have interrupted your program, > > unless it masks signals. > > I see. When I find the time, I'll try diff-ing the code of gud-gdb and > of gdb-mi to find what magic the gud-gdb STOP button has, which makes it > have "a stronger interruption effect". > If I find anything, I'll report it here. I think the answer to that is clear from this: (defun gud-stop-subjob () (interactive) (with-current-buffer gud-comint-buffer (cond ((string-equal gud-target-name "emacs") (comint-stop-subjob)) ((eq gud-minor-mode 'jdb) (gud-call "suspend")) ((eq gud-minor-mode 'gdbmi) (gud-call (gdb-gud-context-command "-exec-interrupt"))) (t (comint-interrupt-subjob))))) As you see i works differently depending on whether gdb-mi is used or not. What I don't understand is why -exec-interrupt doesn't do its job in your case. From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 10 04:41:43 2016 Received: (at 23720) by debbugs.gnu.org; 10 Jun 2016 08:41:43 +0000 Received: from localhost ([127.0.0.1]:35115 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bBI0d-0005LK-Ar for submit@debbugs.gnu.org; Fri, 10 Jun 2016 04:41:43 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:40155) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bBI0b-0005L6-FR for 23720@debbugs.gnu.org; Fri, 10 Jun 2016 04:41:42 -0400 Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u5A8fYbx013236 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 10 Jun 2016 08:41:34 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by userv0021.oracle.com (8.13.8/8.13.8) with ESMTP id u5A8fXOO003503 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 10 Jun 2016 08:41:34 GMT Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id u5A8fXJ6026090; Fri, 10 Jun 2016 08:41:33 GMT Received: from [10.175.182.105] (/10.175.182.105) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 10 Jun 2016 01:41:32 -0700 Subject: Re: bug#23720: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25 To: Eli Zaretskii References: <5756941E.3000700@oracle.com> <837fe0syx5.fsf@gnu.org> <5759257F.9030502@oracle.com> <83d1nqr1xl.fsf@gnu.org> <5759734A.8090809@oracle.com> <834m92qwmn.fsf@gnu.org> <57597D78.1050508@oracle.com> <831t46qviz.fsf@gnu.org> From: Guilhem Bichot Message-ID: <575A7D37.20108@oracle.com> Date: Fri, 10 Jun 2016 10:41:27 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <831t46qviz.fsf@gnu.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-Source-IP: userv0021.oracle.com [156.151.31.71] X-Spam-Score: -3.7 (---) X-Debbugs-Envelope-To: 23720 Cc: 23720@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.7 (---) Hello, Eli Zaretskii a écrit le 09/06/2016 16:36 : >> Cc: 23720@debbugs.gnu.org >> From: Guilhem Bichot >> Date: Thu, 9 Jun 2016 16:30:16 +0200 >> >>>> Pressing this STOP button in emacs23 does interrupt it. >>>> It doesn't anymore in emacs24. >>>> Is it considered normal? >>> >>> I don't think so, but I don't have any more wisdom to offer about >>> this. AFAIU, -exec-interrupt should have interrupted your program, >>> unless it masks signals. >> >> I see. When I find the time, I'll try diff-ing the code of gud-gdb and >> of gdb-mi to find what magic the gud-gdb STOP button has, which makes it >> have "a stronger interruption effect". >> If I find anything, I'll report it here. > > I think the answer to that is clear from this: > > (defun gud-stop-subjob () > (interactive) > (with-current-buffer gud-comint-buffer > (cond ((string-equal gud-target-name "emacs") > (comint-stop-subjob)) > ((eq gud-minor-mode 'jdb) > (gud-call "suspend")) > ((eq gud-minor-mode 'gdbmi) > (gud-call (gdb-gud-context-command "-exec-interrupt"))) > (t > (comint-interrupt-subjob))))) > > As you see i works differently depending on whether gdb-mi is used or > not. What I don't understand is why -exec-interrupt doesn't do its > job in your case. It's isn't mysql-related. I create the simple a.cc: int main() { long long int x; for (x= 1; x; x++) ; return 0; } I compile: g++ -g a.cc I open a.cc in emacs25, M-x gdb, "run"; it prints (gdb) r Starting program: /home/mysql_src/tmp/a.out the long "for" loop is running, I press the STOP button, it prints "command: -exec-interrupt", and the program apparently doesn't stop (as there is no change at the prompt). To be sure about "doesn't stop", I try with this program #include #include int main() { long long int x; for (x= 1; x; x++) { std::cout << x << std::endl; sleep(1); } return 0; } And, likewise, the printouts continue, undisturbed by the click on STOP. For what it's worth, the menu Signals->Break interrupts it and I properly get: Program received signal SIGINT, Interrupt. 0x0000000000400509 in main () at a.cc:4 4 for (x= 1; x; x++) (gdb) I'm using Ubuntu 15.10. From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 10 04:59:40 2016 Received: (at 23720) by debbugs.gnu.org; 10 Jun 2016 08:59:40 +0000 Received: from localhost ([127.0.0.1]:35119 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bBIHz-0005lq-VP for submit@debbugs.gnu.org; Fri, 10 Jun 2016 04:59:40 -0400 Received: from eggs.gnu.org ([208.118.235.92]:33427) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bBIHw-0005lb-Ef for 23720@debbugs.gnu.org; Fri, 10 Jun 2016 04:59:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bBIHm-0001n4-VZ for 23720@debbugs.gnu.org; Fri, 10 Jun 2016 04:59:31 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_40,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:54232) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bBIHm-0001mx-SQ; Fri, 10 Jun 2016 04:59:26 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4361 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bBIHl-00068p-1Z; Fri, 10 Jun 2016 04:59:25 -0400 Date: Fri, 10 Jun 2016 12:00:07 +0300 Message-Id: <83oa79pgfc.fsf@gnu.org> From: Eli Zaretskii To: Guilhem Bichot In-reply-to: <57591DDF.4030900@oracle.com> (message from Guilhem Bichot on Thu, 9 Jun 2016 09:42:23 +0200) Subject: Re: bug#23720: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25 References: <5756941E.3000700@oracle.com> <837fe0syx5.fsf@gnu.org> <8337oosubh.fsf@gnu.org> <57591DDF.4030900@oracle.com> MIME-version: 1.0 Content-type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: 23720 Cc: 23720@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.4 (------) > Cc: 23720@debbugs.gnu.org > From: Guilhem Bichot > Date: Thu, 9 Jun 2016 09:42:23 +0200 > > > diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el > > index 5ad101d..195acaf 100644 > > --- a/lisp/progmodes/gdb-mi.el > > +++ b/lisp/progmodes/gdb-mi.el > > @@ -2488,7 +2488,9 @@ gdb-stopped > > ;; Reason is available with target-async only > > (let* ((result (gdb-json-string output-field)) > > (reason (bindat-get-field result 'reason)) > > - (thread-id (bindat-get-field result 'thread-id))) > > + (thread-id (bindat-get-field result 'thread-id)) > > + (retval (bindat-get-field result 'return-value)) > > + (varnum (bindat-get-field result 'gdb-result-var))) > > > > ;; -data-list-register-names needs to be issued for any stopped > > ;; thread > > @@ -2514,6 +2516,11 @@ gdb-stopped > > (if (string-equal reason "exited-normally") > > (setq gdb-active-process nil)) > > > > + (when (and retval varnum) > > + (setq gdb-filter-output > > + (concat gdb-filter-output > > + (format "Value returned is %s = %s\n" varnum retval)))) > > + > > ;; Select new current thread. > > > > ;; Don't switch if we have no reasons selected > > yes, it works! thanks! > Please, could you consider incorporating this into the next releases? It's too late for the next release, which is expected in a few weeks. Besides, I've just discovered that sometimes the "Value returned" message as already produced by GDB/MI, so my naïve change caused it to be produced twice. I pushed a fixed version to the master branch. From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 10 05:51:47 2016 Received: (at 23720) by debbugs.gnu.org; 10 Jun 2016 09:51:47 +0000 Received: from localhost ([127.0.0.1]:35176 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bBJ6R-0001qU-KP for submit@debbugs.gnu.org; Fri, 10 Jun 2016 05:51:47 -0400 Received: from eggs.gnu.org ([208.118.235.92]:45237) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bBJ6P-0001qD-AN for 23720@debbugs.gnu.org; Fri, 10 Jun 2016 05:51:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bBJ6H-0005k1-5j for 23720@debbugs.gnu.org; Fri, 10 Jun 2016 05:51:40 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_40,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:54931) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bBJ6H-0005jv-2Y; Fri, 10 Jun 2016 05:51:37 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4440 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bBJ6C-0003fZ-HF; Fri, 10 Jun 2016 05:51:33 -0400 Date: Fri, 10 Jun 2016 12:52:14 +0300 Message-Id: <83inxhpe0h.fsf@gnu.org> From: Eli Zaretskii To: Guilhem Bichot In-reply-to: <575A7D37.20108@oracle.com> (message from Guilhem Bichot on Fri, 10 Jun 2016 10:41:27 +0200) Subject: Re: bug#23720: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25 References: <5756941E.3000700@oracle.com> <837fe0syx5.fsf@gnu.org> <5759257F.9030502@oracle.com> <83d1nqr1xl.fsf@gnu.org> <5759734A.8090809@oracle.com> <834m92qwmn.fsf@gnu.org> <57597D78.1050508@oracle.com> <831t46qviz.fsf@gnu.org> <575A7D37.20108@oracle.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: 23720 Cc: 23720@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.4 (------) > Cc: 23720@debbugs.gnu.org > From: Guilhem Bichot > Date: Fri, 10 Jun 2016 10:41:27 +0200 > > > (defun gud-stop-subjob () > > (interactive) > > (with-current-buffer gud-comint-buffer > > (cond ((string-equal gud-target-name "emacs") > > (comint-stop-subjob)) > > ((eq gud-minor-mode 'jdb) > > (gud-call "suspend")) > > ((eq gud-minor-mode 'gdbmi) > > (gud-call (gdb-gud-context-command "-exec-interrupt"))) > > (t > > (comint-interrupt-subjob))))) > > > > As you see i works differently depending on whether gdb-mi is used or > > not. What I don't understand is why -exec-interrupt doesn't do its > > job in your case. > > It's isn't mysql-related. I create the simple a.cc: > > int main() > { > long long int x; > for (x= 1; x; x++) > ; > return 0; > } > > I compile: > g++ -g a.cc > > I open a.cc in emacs25, M-x gdb, "run"; it prints > (gdb) r > Starting program: /home/mysql_src/tmp/a.out > > the long "for" loop is running, I press the STOP button, it prints > "command: -exec-interrupt", and the program apparently doesn't stop (as > there is no change at the prompt). To be sure about "doesn't stop", I > try with this program > > #include > #include > int main() > { > long long int x; > for (x= 1; x; x++) > { > std::cout << x << std::endl; > sleep(1); > } > return 0; > } > > And, likewise, the printouts continue, undisturbed by the click on STOP. > > For what it's worth, the menu Signals->Break interrupts it and I > properly get: > > Program received signal SIGINT, Interrupt. > 0x0000000000400509 in main () at a.cc:4 > 4 for (x= 1; x; x++) > (gdb) > > I'm using Ubuntu 15.10. I suggest to ask this question on the GDB mailing list. From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 24 14:16:11 2020 Received: (at 23720) by debbugs.gnu.org; 24 Aug 2020 18:16:11 +0000 Received: from localhost ([127.0.0.1]:59157 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kAH0t-0007mO-DD for submit@debbugs.gnu.org; Mon, 24 Aug 2020 14:16:11 -0400 Received: from quimby.gnus.org ([95.216.78.240]:60280) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kAH0o-0007lZ-78 for 23720@debbugs.gnu.org; Mon, 24 Aug 2020 14:16:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID :In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=1u7frha7tpTN5YXl+P6UUK/d0v7Nx4cMMvW9XjHEzNQ=; b=t2iTpFYd5UIyrJovSWDLMPw5Mz pD5hnPUN97qWHtzbEW93V9FTPLdJB7dR1z1koMMjgyejOfwTwrgsrDw3menvCQzJogWvd5E7iRroi ktaGq9Ju0DvN65e1vJufCGjLN2EEUbJcB7uQRfeXGmRLFPBngNowOwCNHp0Csd3QK1/8=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kAH0b-0001kC-Rk; Mon, 24 Aug 2020 20:15:59 +0200 From: Lars Ingebrigtsen To: Eli Zaretskii Subject: Re: bug#23720: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25 References: <5756941E.3000700@oracle.com> <837fe0syx5.fsf@gnu.org> <8337oosubh.fsf@gnu.org> <57591DDF.4030900@oracle.com> <83oa79pgfc.fsf@gnu.org> X-Now-Playing: DJ Haram's _Grace_: "Grace (K.O.D.)" Date: Mon, 24 Aug 2020 20:15:52 +0200 In-Reply-To: <83oa79pgfc.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 10 Jun 2016 12:00:07 +0300") Message-ID: <87h7sr7vvr.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Eli Zaretskii writes: > It's too late for the next release, which is expected in a few weeks. > Besides, I've just discovered that sometimes the "Value returned" > message as already produced by GDB/MI, so my naïve change [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 23720 Cc: 23720@debbugs.gnu.org, Guilhem Bichot X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: > It's too late for the next release, which is expected in a few weeks. > Besides, I've just discovered that sometimes the "Value returned" > message as already produced by GDB/MI, so my na=C3=AFve change caused it = to > be produced twice. I pushed a fixed version to the master branch. If I'm skimming this thread correctly, this change fixed the reported bug, so I'm closing this bug report. If there's anything more to be worked on here, please send a mail to the debbugs address and we'll reopen the bug report. --=20 (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 24 14:16:15 2020 Received: (at control) by debbugs.gnu.org; 24 Aug 2020 18:16:15 +0000 Received: from localhost ([127.0.0.1]:59160 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kAH0x-0007mg-L3 for submit@debbugs.gnu.org; Mon, 24 Aug 2020 14:16:15 -0400 Received: from quimby.gnus.org ([95.216.78.240]:60298) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kAH0u-0007mE-Nk for control@debbugs.gnu.org; Mon, 24 Aug 2020 14:16:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=BGJRY4dEwgvXJuX6biGqK91jIYfm5xkHVTZJTXKW2B8=; b=i0jeFoEo1P0XyxxH5d5dPMmqzQ 18Jbkr6VX7reWLgqjqfUjqDG49/aFMBzuDvW0Pi9+YtVHWyp5mFoP1LkxjlZcmsPs0t6LXm+QD57e 33ohTmx+GE0Kce/hDe7hLIqcbWJZ9hseyFbOzOYqHqF4aJIun2uIh+dKXEvoSmP7Rcis=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kAH0m-0001kL-9x for control@debbugs.gnu.org; Mon, 24 Aug 2020 20:16:06 +0200 Date: Mon, 24 Aug 2020 20:16:03 +0200 Message-Id: <87ft8b7vvg.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #23720 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: close 23720 quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) close 23720 quit From unknown Fri Aug 15 17:56:56 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 22 Sep 2020 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator