GNU bug report logs - #63855
29.0.91; Exiting gdb's python interactive mode within gud-mode exits gdb as well

Previous Next

Package: emacs;

Reported by: Jonas Bülow <jonas.bulow <at> gmail.com>

Date: Fri, 2 Jun 2023 17:58:02 UTC

Severity: normal

Found in version 29.0.91

To reply to this bug, email your comments to 63855 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#63855; Package emacs. (Fri, 02 Jun 2023 17:58:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jonas Bülow <jonas.bulow <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 02 Jun 2023 17:58:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jonas Bülow <jonas.bulow <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.91; Exiting gdb's python interactive mode within gud-mode exits
 gdb as well
Date: Fri, 2 Jun 2023 18:00:33 +0200
--text follows this line--

0. (start with emacs -Q)
1. M-x gdb <RET>
2. Run gdb (like this): gdb -i=mi <RET>
3. Enter python interactive mode with: pi <RET>
4. Try to exit gdb's python interactive mode with Ctrl-D

Expected: get back to gdb prompt

Actual: gdb exits with "Debugger finished"


Doing the same directly from a terminal gives the expected behavior.

---

In GNU Emacs 29.0.91 (build 2, x86_64-pc-linux-gnu, GTK+ Version
 3.24.33, cairo version 1.16.0) of 2023-05-24 built on i9
Repository revision: 212884f2bfed7f00e58aad183edd20ecc2a23e71
Repository branch: emacs-29
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: Ubuntu 22.04.2 LTS

Configured using:
 'configure --prefix=/big/local --with-tree-sitter
 --with-native-compilation --without-mailutils --with-x
 --disable-gtk-deprecation-warnings --with-imagemagick
 --build=x86_64-linux-gnu --program-suffix=-snapshot --with-modules=yes
 --with-x=yes --with-x-toolkit=gtk3 --with-xwidgets=yes 'CFLAGS=-O2
 -fstack-protector-strong -Wformat -Werror=format-security'
 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2'
 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro'
 build_alias=x86_64-linux-gnu TREE_SITTER_CFLAGS=-I/big/local/include
 'TREE_SITTER_LIBS=-L/big/local/lib -ltree-sitter'
 PKG_CONFIG_PATH=/opt/intel/oneapi/vtune/2023.1.0/include/pkgconfig/lib64:'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ IMAGEMAGICK
JPEG JSON LCMS2 LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER X11 XDBE XIM XINPUT2 XPM XWIDGETS GTK3
ZLIB

Important settings:
  value of $LC_TIME: en_GB.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Debugger

Minor modes in effect:
  treemacs-icons-dired-mode: t
  treemacs-git-commit-diff-mode: t
  treemacs-filewatch-mode: t
  treemacs-follow-mode: t
  treemacs-hide-gitignored-files-mode: t
  treemacs-git-mode: t
  treemacs-fringe-indicator-mode: always
  gdb-many-windows: t
  projectile-mode: t
  which-key-mode: t
  global-tree-sitter-mode: t
  global-tempel-abbrev-mode: t
  tempel-abbrev-mode: t
  global-corfu-mode: t
  corfu-mode: t
  savehist-mode: t
  vertico-prescient-mode: t
  prescient-persist-mode: t
  vertico-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  global-ligature-mode: t
  ligature-mode: t
  global-diff-hl-mode: t
  whole-line-or-region-global-mode: t
  whole-line-or-region-local-mode: t
  windmove-mode: t
  recentf-mode: t
  all-the-icons-completion-mode: t
  override-global-mode: t
  delete-selection-mode: t
  global-auto-revert-mode: t
  global-display-line-numbers-mode: t
  display-line-numbers-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-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
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/jonasbu/.emacs.new/elpa/magit-3.3.0.50snapshot0.20230523.143111/magit-base
hides /home/jonasbu/.emacs.new/elpa/magit-section-3.3.0.50snapshot0.20230523.143111/magit-base
/home/jonasbu/.emacs.new/elpa/magit-3.3.0.50snapshot0.20230523.143111/magit-sparse-checkout
hides /home/jonasbu/.emacs.new/elpa/magit-section-3.3.0.50snapshot0.20230523.143111/magit-sparse-checkout
/home/jonasbu/.emacs.new/elpa/transient-0.4.0.0.20230519.194018/transient
hides /big/local/share/emacs/29.0.91/lisp/transient

Features:
(shadow sort mail-extr emacsbug message yank-media puny rfc822 mml
mml-sec epa derived epg rfc6068 epg-config gnus-util mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils ace-window avy
cus-start cus-load mule-util smerge-mode view python sh-script smie
executable vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs
diff-hl-dired all-the-icons-dired treemacs-icons-dired
treemacs-projectile treemacs-tab-bar treemacs-git-commit-diff-mode
treemacs treemacs-header-line treemacs-compatibility treemacs-mode
treemacs-bookmarks treemacs-tags treemacs-interface treemacs-persistence
treemacs-filewatch-mode treemacs-follow-mode treemacs-rendering
treemacs-annotations treemacs-async treemacs-workspaces treemacs-dom
treemacs-visuals treemacs-fringe-indicator treemacs-faces treemacs-icons
treemacs-scope treemacs-themes treemacs-core-utils pfuture inline
hl-line treemacs-logging treemacs-customization treemacs-macros s
help-fns radix-tree vc-annotate rect files-x gdb-mi bindat gud pulse
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs time-date eglot external-completion array jsonrpc ert
debug backtrace find-func flymake-proc flymake imenu consult-xref
embark-consult consult bookmark etags fileloop generator xref misearch
multi-isearch vc-git c-ts-mode c-ts-common treesit vertico-directory
cursor-sensor projectile project lisp-mnt grep ibuf-ext ibuffer
ibuffer-loaddefs embark ffap which-key rainbow-delimiters
tree-sitter-langs tree-sitter-langs-build pp tree-sitter-hl tree-sitter
tree-sitter-load tree-sitter-cli tsc tsc-dyn tsc-dyn-get compile
text-property-search comint ansi-osc ring dired-aux dired dired-loaddefs
tsc-obsolete tempel-collection tempel corfu orderless savehist
vertico-prescient prescient char-fold vertico compat undo-tree diff
queue emojify comp comp-cstr warnings apropos tar-mode arc-mode
archive-mode ht dash ligature flyspell ispell ediff ediff-merg
ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util
diff-hl log-view pcvs-util vc-dir ewoc vc vc-dispatcher diff-mode
diminish whole-line-or-region advice browse-kill-ring ansi-color
markdown-mode rx color thingatpt noutline outline windmove recentf
tree-widget wid-edit all-the-icons-completion all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons use-package
use-package-ensure use-package-delight use-package-diminish finder-inf
editorconfig-autoloads tree-sitter-langs-autoloads
browse-kill-ring-autoloads treemacs-magit-autoloads
magit-todos-autoloads magit-autoloads corfu-autoloads
vertico-posframe-autoloads async-autoloads emojify-autoloads
helpful-autoloads rainbow-delimiters-autoloads tree-sitter-autoloads
all-the-icons-dired-autoloads undo-tree-autoloads queue-autoloads
projection-multi-autoloads whole-line-or-region-autoloads
treemacs-icons-dired-autoloads buttercup-autoloads
dired-single-autoloads compile-multi-autoloads magit-section-autoloads
marginalia-autoloads elisp-refs-autoloads pcre2el-autoloads
diff-hl-autoloads projection-autoloads vertico-prescient-autoloads
vertico-autoloads hl-todo-autoloads prescient-autoloads
all-the-icons-completion-autoloads all-the-icons-autoloads
ligature-autoloads tsc-autoloads cape-autoloads diminish-autoloads
f-autoloads treemacs-tab-bar-autoloads consult-eglot-autoloads
expand-region-autoloads git-commit-autoloads transient-autoloads
treemacs-projectile-autoloads projectile-autoloads with-editor-autoloads
which-key-autoloads tempel-collection-autoloads tempel-autoloads
orderless-autoloads markdown-mode-autoloads embark-consult-autoloads
consult-autoloads embark-autoloads compat-autoloads move-text-autoloads
treemacs-persp-autoloads persp-mode-autoloads treemacs-autoloads
cfrs-autoloads posframe-autoloads ht-autoloads hydra-autoloads
lv-autoloads ace-window-autoloads avy-autoloads s-autoloads info
dash-autoloads pfuture-autoloads package browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source eieio eieio-core password-cache json map byte-opt url-vars
edmacro kmacro use-package-bind-key bind-key easy-mmode cl-seq
use-package-core bytecomp byte-compile delsel autorevert filenotify
display-line-numbers modus-vivendi-theme modus-themes cl-macs pcase
subr-x cl-extra help-mode icons cl-loaddefs cl-lib gv chemacs rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
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 composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads xwidget-internal dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit
xinput2 x multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 878813 78595)
 (symbols 48 41843 0)
 (strings 32 202716 12300)
 (string-bytes 1 6076716)
 (vectors 16 83536)
 (vector-slots 8 2306607 172022)
 (floats 8 1786 876)
 (intervals 56 20449 1431)
 (buffers 984 58))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#63855; Package emacs. (Fri, 02 Jun 2023 18:21:01 GMT) Full text and rfc822 format available.

Message #8 received at 63855 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Jonas Bülow <jonas.bulow <at> gmail.com>
Cc: 63855 <at> debbugs.gnu.org
Subject: Re: bug#63855: 29.0.91;
 Exiting gdb's python interactive mode within gud-mode exits gdb as
 well
Date: Fri, 02 Jun 2023 21:21:10 +0300
> From: Jonas Bülow <jonas.bulow <at> gmail.com>
> Date: Fri, 2 Jun 2023 18:00:33 +0200
> 
> 0. (start with emacs -Q)
> 1. M-x gdb <RET>
> 2. Run gdb (like this): gdb -i=mi <RET>
> 3. Enter python interactive mode with: pi <RET>
> 4. Try to exit gdb's python interactive mode with Ctrl-D
> 
> Expected: get back to gdb prompt
> 
> Actual: gdb exits with "Debugger finished"

AFAIR, this is the best we can do in that situation.  You should exit
python interactive mode by other means, if you want to stay inside
GDB.  Sorry.

(Of course, if someone knows how to teach gdb-mi.el to distinguish
between the two possible interpretations of EOF, patches to do so will
be welcome.)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#63855; Package emacs. (Sat, 03 Jun 2023 10:36:01 GMT) Full text and rfc822 format available.

Message #11 received at 63855 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Jonas Bülow <jonas.bulow <at> gmail.com>
Cc: 63855 <at> debbugs.gnu.org
Subject: Re: bug#63855: 29.0.91; Exiting gdb's python interactive mode within
 gud-mode exits gdb as well
Date: Sat, 03 Jun 2023 13:36:41 +0300
> From: Jonas Bülow <jonas.bulow <at> gmail.com>
> Date: Sat, 3 Jun 2023 12:10:04 +0200
> Cc: 63855 <at> debbugs.gnu.org
> 
> Unfortunately, there doesn't seem to be any other way to exit python
> interactive mode. Using exit() or quit() from python interactive mode
> exits gdb even from the terminal.

Then I guess we need someone smart to tell how to send Ctrl-D to GDB
so that it doesn't exit in this case.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#63855; Package emacs. (Sat, 03 Jun 2023 10:53:01 GMT) Full text and rfc822 format available.

Message #14 received at 63855 <at> debbugs.gnu.org (full text, mbox):

From: Jonas Bülow <jonas.bulow <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 63855 <at> debbugs.gnu.org
Subject: Re: bug#63855: 29.0.91; Exiting gdb's python interactive mode within
 gud-mode exits gdb as well
Date: Sat, 3 Jun 2023 12:10:04 +0200
Unfortunately, there doesn't seem to be any other way to exit python
interactive mode. Using exit() or quit() from python interactive mode
exits gdb even from the terminal.

On Fri, Jun 2, 2023 at 8:20 PM Eli Zaretskii <eliz <at> gnu.org> wrote:
>
> > From: Jonas Bülow <jonas.bulow <at> gmail.com>
> > Date: Fri, 2 Jun 2023 18:00:33 +0200
> >
> > 0. (start with emacs -Q)
> > 1. M-x gdb <RET>
> > 2. Run gdb (like this): gdb -i=mi <RET>
> > 3. Enter python interactive mode with: pi <RET>
> > 4. Try to exit gdb's python interactive mode with Ctrl-D
> >
> > Expected: get back to gdb prompt
> >
> > Actual: gdb exits with "Debugger finished"
>
> AFAIR, this is the best we can do in that situation.  You should exit
> python interactive mode by other means, if you want to stay inside
> GDB.  Sorry.
>
> (Of course, if someone knows how to teach gdb-mi.el to distinguish
> between the two possible interpretations of EOF, patches to do so will
> be welcome.)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#63855; Package emacs. (Sat, 03 Jun 2023 11:11:02 GMT) Full text and rfc822 format available.

Message #17 received at 63855 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: jonas.bulow <at> gmail.com
Cc: 63855 <at> debbugs.gnu.org
Subject: Re: bug#63855: 29.0.91;
 Exiting gdb's python interactive mode within gud-mode exits gdb as
 well
Date: Sat, 03 Jun 2023 14:11:41 +0300
> Cc: 63855 <at> debbugs.gnu.org
> Date: Sat, 03 Jun 2023 13:36:41 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
> 
> > From: Jonas Bülow <jonas.bulow <at> gmail.com>
> > Date: Sat, 3 Jun 2023 12:10:04 +0200
> > Cc: 63855 <at> debbugs.gnu.org
> > 
> > Unfortunately, there doesn't seem to be any other way to exit python
> > interactive mode. Using exit() or quit() from python interactive mode
> > exits gdb even from the terminal.
> 
> Then I guess we need someone smart to tell how to send Ctrl-D to GDB
> so that it doesn't exit in this case.

Btw, I see a similar behavior from the console, if I start GDB with
the -i=mi option, like Emacs does: when you type Ctrl-D after invoking
"pi", you can no longer interact with GDB: any input you type exits
GDB and gets interpreted by the shell instead.

So maybe this is a GDB bug that needs to be reported to the GDB
developers?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#63855; Package emacs. (Sat, 03 Jun 2023 13:11:02 GMT) Full text and rfc822 format available.

Message #20 received at 63855 <at> debbugs.gnu.org (full text, mbox):

From: Jonas Bülow <jonas.bulow <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 63855 <at> debbugs.gnu.org
Subject: Re: bug#63855: 29.0.91; Exiting gdb's python interactive mode within
 gud-mode exits gdb as well
Date: Sat, 3 Jun 2023 13:22:44 +0200
This gdb bug looks relevant:
https://sourceware.org/bugzilla/show_bug.cgi?id=25388

On Sat, Jun 3, 2023 at 1:10 PM Eli Zaretskii <eliz <at> gnu.org> wrote:
>
> > Cc: 63855 <at> debbugs.gnu.org
> > Date: Sat, 03 Jun 2023 13:36:41 +0300
> > From: Eli Zaretskii <eliz <at> gnu.org>
> >
> > > From: Jonas Bülow <jonas.bulow <at> gmail.com>
> > > Date: Sat, 3 Jun 2023 12:10:04 +0200
> > > Cc: 63855 <at> debbugs.gnu.org
> > >
> > > Unfortunately, there doesn't seem to be any other way to exit python
> > > interactive mode. Using exit() or quit() from python interactive mode
> > > exits gdb even from the terminal.
> >
> > Then I guess we need someone smart to tell how to send Ctrl-D to GDB
> > so that it doesn't exit in this case.
>
> Btw, I see a similar behavior from the console, if I start GDB with
> the -i=mi option, like Emacs does: when you type Ctrl-D after invoking
> "pi", you can no longer interact with GDB: any input you type exits
> GDB and gets interpreted by the shell instead.
>
> So maybe this is a GDB bug that needs to be reported to the GDB
> developers?




This bug report was last modified 299 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.