GNU bug report logs - #40279
26.3; Error: you did not specify -i=mi on GDB's command line!

Previous Next

Package: emacs;

Reported by: Roland Coeurjoly <rolandcoeurjoly <at> gmail.com>

Date: Sun, 29 Mar 2020 17:12:02 UTC

Severity: normal

Tags: moreinfo

Merged with 28309

Found in version 26.3

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 40279 in the body.
You can then email your comments to 40279 AT debbugs.gnu.org in the normal way.

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#40279; Package emacs. (Sun, 29 Mar 2020 17:12:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Roland Coeurjoly <rolandcoeurjoly <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 29 Mar 2020 17:12:02 GMT) Full text and rfc822 format available.

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

From: Roland Coeurjoly <rolandcoeurjoly <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 26.3; Error: you did not specify -i=mi on GDB's command line!
Date: Sun, 29 Mar 2020 09:21:42 +0200
[Message part 1 (text/plain, inline)]
When I try to run:
M-x gdb <RET> docker-compose -f ~/docker-services/dev/docker-compose.yml
exec dev_rhel7 bash -c "gdb -i=mi" <RET>
I get the following error:
Error: you did not specify -i=mi on GDB's command line!

In GNU Emacs 26.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 2.24.32)
 of 2020-02-07 built on des26
Windowing system distributor 'The X.Org Foundation', version 11.0.12004000
System Description: Debian GNU/Linux 10 (buster)

Recent messages:
Checking 105 files in /usr/local/share/emacs/26.3/lisp/obsolete...
Checking for load-path shadows...done
Auto-saving...
previous-line: Beginning of buffer [11 times]
C-x C-g is undefined
funcall-interactively: Beginning of buffer [10 times]
previous-line: Beginning of buffer [28 times]
Buffer *unsent mail to bug-gnu-emacs <at> gnu.org* modified; kill anyway? (y or
n) y
Buffer "*gud-docker-compose.yml*" has a running process; kill it? (y or n) y
Error: you did not specify -i=mi on GDB’s command line!

Configured features:
XPM JPEG TIFF GIF PNG SOUND GSETTINGS GLIB NOTIFY LIBSELINUX GNUTLS
LIBXML2 FREETYPE XFT ZLIB TOOLKIT_SCROLL_BARS GTK2 X11 XDBE XIM THREADS

Important settings:
  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:
  gdb-many-windows: t
  helm-descbinds-mode: t
  helm-mode: t
  helm-flx-mode: t
  helm--remap-mouse-mode: t
  recentf-mode: t
  global-semanticdb-minor-mode: t
  global-semantic-idle-scheduler-mode: t
  global-semantic-idle-summary-mode: t
  global-semantic-stickyfunc-mode: t
  semantic-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-auto-complete-mode: t
  global-company-mode: t
  company-mode: t
  global-magit-file-mode: t
  global-spacemacs-whitespace-cleanup-mode: t
  spacemacs-whitespace-cleanup-mode: t
  winum-mode: t
  winner-mode: t
  volatile-highlights-mode: t
  global-vi-tilde-fringe-mode: t
  save-place-mode: t
  savehist-mode: t
  popwin-mode: t
  nyan-mode: t
  Info-breadcrumbs-in-mode-line-mode: t
  global-git-gutter+-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  flycheck-pos-tip-mode: t
  global-flycheck-mode: t
  flx-ido-mode: t
  eyebrowse-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  global-evil-search-highlight-persist: t
  evil-search-highlight-persist: t
  show-smartparens-global-mode: t
  show-smartparens-mode: t
  smartparens-mode: t
  evil-escape-mode: t
  global-anzu-mode: t
  anzu-mode: t
  eval-sexp-fu-flash-mode: t
  diff-auto-refine-mode: t
  clean-aindent-mode: t
  holy-mode: t
  which-key-mode: t
  override-global-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  shell-dirtrack-mode: t
  evil-mode: t
  evil-local-mode: t
  spacemacs-leader-override-mode: t
  global-spacemacs-leader-override-mode: t
  xterm-mouse-mode: t
  global-auto-revert-mode: t
  ido-vertical-mode: t
  global-page-break-lines-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  global-visual-line-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/drcoeurjoly/.emacs.d/elpa/ht-20200217.2331/ht hides
/home/drcoeurjoly/.emacs.d/core/libs/ht
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-ledger hides
/usr/local/share/emacs/26.3/lisp/org/ob-ledger
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ox-icalendar
hides /usr/local/share/emacs/26.3/lisp/org/ox-icalendar
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-eval hides
/usr/local/share/emacs/26.3/lisp/org/ob-eval
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-indent hides
/usr/local/share/emacs/26.3/lisp/org/org-indent
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-inlinetask
hides /usr/local/share/emacs/26.3/lisp/org/org-inlinetask
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-attach hides
/usr/local/share/emacs/26.3/lisp/org/org-attach
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-emacs-lisp
hides /usr/local/share/emacs/26.3/lisp/org/ob-emacs-lisp
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-feed hides
/usr/local/share/emacs/26.3/lisp/org/org-feed
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-duration
hides /usr/local/share/emacs/26.3/lisp/org/org-duration
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ox-latex hides
/usr/local/share/emacs/26.3/lisp/org/ox-latex
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-js hides
/usr/local/share/emacs/26.3/lisp/org/ob-js
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-datetree
hides /usr/local/share/emacs/26.3/lisp/org/org-datetree
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org hides
/usr/local/share/emacs/26.3/lisp/org/org
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-faces hides
/usr/local/share/emacs/26.3/lisp/org/org-faces
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-screen hides
/usr/local/share/emacs/26.3/lisp/org/ob-screen
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-archive hides
/usr/local/share/emacs/26.3/lisp/org/org-archive
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-src hides
/usr/local/share/emacs/26.3/lisp/org/org-src
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-mouse hides
/usr/local/share/emacs/26.3/lisp/org/org-mouse
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-dot hides
/usr/local/share/emacs/26.3/lisp/org/ob-dot
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-shen hides
/usr/local/share/emacs/26.3/lisp/org/ob-shen
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-sql hides
/usr/local/share/emacs/26.3/lisp/org/ob-sql
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-protocol
hides /usr/local/share/emacs/26.3/lisp/org/org-protocol
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-matlab hides
/usr/local/share/emacs/26.3/lisp/org/ob-matlab
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-processing
hides /usr/local/share/emacs/26.3/lisp/org/ob-processing
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-lua hides
/usr/local/share/emacs/26.3/lisp/org/ob-lua
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-ctags hides
/usr/local/share/emacs/26.3/lisp/org/org-ctags
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ox-publish hides
/usr/local/share/emacs/26.3/lisp/org/ox-publish
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-R hides
/usr/local/share/emacs/26.3/lisp/org/ob-R
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-stan hides
/usr/local/share/emacs/26.3/lisp/org/ob-stan
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ox-md hides
/usr/local/share/emacs/26.3/lisp/org/ox-md
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-colview hides
/usr/local/share/emacs/26.3/lisp/org/org-colview
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-shell hides
/usr/local/share/emacs/26.3/lisp/org/ob-shell
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-macs hides
/usr/local/share/emacs/26.3/lisp/org/org-macs
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ox-odt hides
/usr/local/share/emacs/26.3/lisp/org/ox-odt
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-ocaml hides
/usr/local/share/emacs/26.3/lisp/org/ob-ocaml
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ox-man hides
/usr/local/share/emacs/26.3/lisp/org/ox-man
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-entities
hides /usr/local/share/emacs/26.3/lisp/org/org-entities
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-table hides
/usr/local/share/emacs/26.3/lisp/org/ob-table
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ox-texinfo hides
/usr/local/share/emacs/26.3/lisp/org/ox-texinfo
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-calc hides
/usr/local/share/emacs/26.3/lisp/org/ob-calc
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-core hides
/usr/local/share/emacs/26.3/lisp/org/ob-core
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-timer hides
/usr/local/share/emacs/26.3/lisp/org/org-timer
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-plot hides
/usr/local/share/emacs/26.3/lisp/org/org-plot
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-ref hides
/usr/local/share/emacs/26.3/lisp/org/ob-ref
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-picolisp hides
/usr/local/share/emacs/26.3/lisp/org/ob-picolisp
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-J hides
/usr/local/share/emacs/26.3/lisp/org/ob-J
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-macro hides
/usr/local/share/emacs/26.3/lisp/org/org-macro
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ox-beamer hides
/usr/local/share/emacs/26.3/lisp/org/ox-beamer
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-id hides
/usr/local/share/emacs/26.3/lisp/org/org-id
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-io hides
/usr/local/share/emacs/26.3/lisp/org/ob-io
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-java hides
/usr/local/share/emacs/26.3/lisp/org/ob-java
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-agenda hides
/usr/local/share/emacs/26.3/lisp/org/org-agenda
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-mscgen hides
/usr/local/share/emacs/26.3/lisp/org/ob-mscgen
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-clojure hides
/usr/local/share/emacs/26.3/lisp/org/ob-clojure
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-abc hides
/usr/local/share/emacs/26.3/lisp/org/ob-abc
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-tangle hides
/usr/local/share/emacs/26.3/lisp/org/ob-tangle
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-coq hides
/usr/local/share/emacs/26.3/lisp/org/ob-coq
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-footnote
hides /usr/local/share/emacs/26.3/lisp/org/org-footnote
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-css hides
/usr/local/share/emacs/26.3/lisp/org/ob-css
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-mobile hides
/usr/local/share/emacs/26.3/lisp/org/org-mobile
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-maxima hides
/usr/local/share/emacs/26.3/lisp/org/ob-maxima
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-table hides
/usr/local/share/emacs/26.3/lisp/org/org-table
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-ditaa hides
/usr/local/share/emacs/26.3/lisp/org/ob-ditaa
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-scheme hides
/usr/local/share/emacs/26.3/lisp/org/ob-scheme
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-habit hides
/usr/local/share/emacs/26.3/lisp/org/org-habit
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-element hides
/usr/local/share/emacs/26.3/lisp/org/org-element
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-compat hides
/usr/local/share/emacs/26.3/lisp/org/org-compat
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-lilypond hides
/usr/local/share/emacs/26.3/lisp/org/ob-lilypond
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-hledger hides
/usr/local/share/emacs/26.3/lisp/org/ob-hledger
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-lint hides
/usr/local/share/emacs/26.3/lisp/org/org-lint
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-sqlite hides
/usr/local/share/emacs/26.3/lisp/org/ob-sqlite
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-perl hides
/usr/local/share/emacs/26.3/lisp/org/ob-perl
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-python hides
/usr/local/share/emacs/26.3/lisp/org/ob-python
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-sed hides
/usr/local/share/emacs/26.3/lisp/org/ob-sed
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-gnuplot hides
/usr/local/share/emacs/26.3/lisp/org/ob-gnuplot
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-makefile hides
/usr/local/share/emacs/26.3/lisp/org/ob-makefile
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-capture hides
/usr/local/share/emacs/26.3/lisp/org/org-capture
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ox-ascii hides
/usr/local/share/emacs/26.3/lisp/org/ox-ascii
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-org hides
/usr/local/share/emacs/26.3/lisp/org/ob-org
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-latex hides
/usr/local/share/emacs/26.3/lisp/org/ob-latex
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-list hides
/usr/local/share/emacs/26.3/lisp/org/org-list
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-crypt hides
/usr/local/share/emacs/26.3/lisp/org/org-crypt
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-lob hides
/usr/local/share/emacs/26.3/lisp/org/ob-lob
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ox-html hides
/usr/local/share/emacs/26.3/lisp/org/ox-html
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-C hides
/usr/local/share/emacs/26.3/lisp/org/ob-C
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-install hides
/usr/local/share/emacs/26.3/lisp/org/org-install
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ox-org hides
/usr/local/share/emacs/26.3/lisp/org/ox-org
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-forth hides
/usr/local/share/emacs/26.3/lisp/org/ob-forth
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-sass hides
/usr/local/share/emacs/26.3/lisp/org/ob-sass
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-asymptote
hides /usr/local/share/emacs/26.3/lisp/org/ob-asymptote
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-vala hides
/usr/local/share/emacs/26.3/lisp/org/ob-vala
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-ruby hides
/usr/local/share/emacs/26.3/lisp/org/ob-ruby
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-clock hides
/usr/local/share/emacs/26.3/lisp/org/org-clock
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-groovy hides
/usr/local/share/emacs/26.3/lisp/org/ob-groovy
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ox hides
/usr/local/share/emacs/26.3/lisp/org/ox
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob hides
/usr/local/share/emacs/26.3/lisp/org/ob
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-comint hides
/usr/local/share/emacs/26.3/lisp/org/ob-comint
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-plantuml hides
/usr/local/share/emacs/26.3/lisp/org/ob-plantuml
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-haskell hides
/usr/local/share/emacs/26.3/lisp/org/ob-haskell
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-pcomplete
hides /usr/local/share/emacs/26.3/lisp/org/org-pcomplete
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-awk hides
/usr/local/share/emacs/26.3/lisp/org/ob-awk
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-loaddefs
hides /usr/local/share/emacs/26.3/lisp/org/org-loaddefs
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-exp hides
/usr/local/share/emacs/26.3/lisp/org/ob-exp
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-octave hides
/usr/local/share/emacs/26.3/lisp/org/ob-octave
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-ebnf hides
/usr/local/share/emacs/26.3/lisp/org/ob-ebnf
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-lisp hides
/usr/local/share/emacs/26.3/lisp/org/ob-lisp
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/org-version hides
/usr/local/share/emacs/26.3/lisp/org/org-version
/home/drcoeurjoly/.emacs.d/elpa/org-plus-contrib-20200323/ob-fortran hides
/usr/local/share/emacs/26.3/lisp/org/ob-fortran

Features:
(two-column iso-transl pp shadow sort mail-extr mwim emacsbug sendmail
gdb-mi bindat gud helm-command helm-elisp helm-eval edebug helm-info
helm-descbinds helm-mode helm-files helm-buffers helm-occur helm-tags
helm-locate helm-grep helm-regexp helm-utils helm-help helm-types
helm-flx helm helm-source helm-multi-match helm-lib open-junk-file
auto-dictionary org-eldoc evil-org cursor-sensor vc-git vc-bzr vc-src
vc-sccs vc-svn vc-cvs vc-rcs ess-r-mode ess-r-flymake ess-r-xref
ess-trns ess-r-package ess-r-completion ess-roxy ess-r-syntax ess-rd
ess-s-lang ess-help ess-mode ess-inf ess-tracebug smartparens-ess ess
ess-utils ess-custom company-robe robe inf-ruby rubocop ruby-tools
auto-compile packed elisp-slime-nav verilog-mode perl-mode company-shell
sh-script executable srefactor srefactor-ui recentf tree-widget
srecode/semantic semantic/senator semantic/decorate pulse srecode/insert
srecode/filters srecode/args ede/speedbar ede/files ede ede/detect
ede/base ede/source eieio-speedbar eieio-custom srecode/find srecode/map
srecode/ctxt srecode/compile srecode/dictionary srecode/table srecode
semantic/doc semantic/db-file data-debug cedet-files semantic/bovine/c
hideif semantic/bovine/c-by semantic/lex-spp semantic/bovine/gcc
semantic/analyze/refs semantic/db-find semantic/db-ref semantic/analyze
semantic/sort semantic/scope semantic/analyze/fcn company-c-headers sql
view company-yasnippet company-anaconda anaconda-mode pythonic
evil-matchit evil-matchit-sdk hi-lock semantic/wisent/python
semantic/dep semantic/wisent/python-wy semantic/wisent
semantic/wisent/wisent semantic/db-mode semantic/idle stickyfunc-enhance
semantic/bovine/el semantic/format semantic/tag-ls semantic/find
semantic/ctxt semantic/db-el eieio-opt speedbar sb-image ezimage dframe
semantic/db semantic/bovine semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local cedet goto-addr
bug-reference auto-highlight-symbol highlight-numbers parent-mode
highlight-parentheses hideshow rainbow-delimiters smartparens-python
python tramp-sh org-bullets org-download toc-org yasnippet flymake-proc
flymake elec-pair face-remap image-file org-element avl-tree generator
ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnir gnus-sum gnus-group
gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source utf7 netrc
nnoo gnus-spec gnus-int gnus-range gnus-win gnus nnheader ol-docview
doc-view jka-compr ol-bibtex bibtex ol-bbdb ol-w3m auto-complete-config
ac-ispell auto-complete popup company-oddmuse company-keywords
company-etags company-gtags company-dabbrev-code company-dabbrev
company-files company-capf company-cmake company-xcode company-clang
company-semantic company-eclim company-template company-bbdb company
ob-python ob-perl ob-sql ob-R ob-shell ob-latex ob-C smartparens-c
compile cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs ob-clojure ob-gnuplot org-crypt
smartparens-org orgit git-rebase gh gh-users gh-issues gh-pulls gh-repos
gh-comments gh-gist gh-oauth gh-api logito gh-cache pcache eieio-base
gh-auth gh-url gh-profile evil-magit magit-submodule magit-obsolete
magit-popup magit-blame magit-stash magit-reflog magit-bisect magit-push
magit-pull magit-fetch magit-clone magit-remote magit-commit
magit-sequence magit-notes magit-worktree magit-tag magit-merge
magit-branch magit-reset magit-files magit-refs magit-status magit
magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff
diminish smerge-mode magit-core magit-autorevert magit-margin
magit-transient magit-process magit-mode org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete
org-list org-faces org-entities org-version ob-emacs-lisp ob-core
ob-eval org-table ol org-keys org-compat org-macs org-loaddefs cal-menu
calendar cal-loaddefs hl-todo xterm-color spacemacs-whitespace-cleanup
ws-butler winum winner volatile-highlights vi-tilde-fringe
smartparens-config smartparens-text smartparens-ruby saveplace savehist
ruby-test-mode pcre2el rxt re-builder ruby-mode smie popwin persp-mode
nyan-mode linum info+ image-mode git-gutter-fringe+ fringe-helper
git-gutter+ git-commit with-editor async-bytecomp async transient server
magit-git magit-section magit-utils crm log-edit pcvs-util add-log
docker-tramp tramp-cache tramp tramp-compat tramp-loaddefs trampver
ucs-normalize parse-time gh-common marshal flycheck-pos-tip pos-tip
flycheck find-func flx-ido flx feature-mode cucumber-mode etags xref
project eyebrowse evil-unimpaired f s evil-surround
evil-search-highlight-persist highlight evil-numbers evil-lisp-state
smartparens dash evil-indent-plus evil-exchange evil-escape evil-args
evil-anzu anzu eval-sexp-fu noutline outline rx diff-hl vc-dir ewoc vc
vc-dispatcher diff-mode clean-aindent-mode clang-format xml ede/auto
adaptive-wrap hybrid-mode exec-path-from-shell evil-evilified-state
which-key use-package use-package-ensure use-package-delight
use-package-diminish use-package-bind-key bind-key use-package-core
hydra lv cus-edit cus-start cus-load evil evil-keybindings
evil-integration undo-tree diff evil-maps evil-commands reveal flyspell
ispell evil-jumps evil-command-window evil-types evil-search evil-ex
shell pcomplete comint ansi-color evil-macros evil-repeat evil-states
evil-core evil-common windmove thingatpt rect evil-digraphs evil-vars
ring info bind-map mm-archive message dired dired-loaddefs format-spec
rfc822 mml mml-sec epa gnus-util rmail rmail-loaddefs mailabbrev
gmm-utils mailheader epg mail-utils network-stream starttls url-http tls
gnutls url-gw nsm rmc puny url-cache url-auth url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util
mailcap quelpa help-fns radix-tree package-build mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr json map lisp-mnt hl-line xt-mouse autorevert filenotify
cl-extra disp-table wid-edit spacemacs-dark-theme spacemacs-common
finder-inf core-configuration-layer eieio-compat ht cl help-mode
warnings package epg-config url-handlers url-parse auth-source cl-seq
password-cache url-vars eieio eieio-core eieio-loaddefs
ido-vertical-mode ido seq byte-opt bytecomp byte-compile cconv
core-spacemacs core-use-package-ext core-transient-state
core-micro-state core-toggle core-keybindings core-fonts-support
core-spacemacs-buffer core-funcs cl-macs gv core-themes-support
core-display-init core-jump core-auto-completion core-release-management
core-dotspacemacs core-command-line pcase core-debug edmacro kmacro
derived advice profiler easymenu cl-loaddefs cl-lib page-break-lines
easy-mmode core-emacs-backports subr-x time-date mule-util tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type 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 elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors 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 composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray 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 threads inotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 1314504 428302)
 (symbols 48 86343 66)
 (miscs 40 716 1732)
 (strings 32 276086 149761)
 (string-bytes 1 8825028)
 (vectors 16 124544)
 (vector-slots 8 2065482 500554)
 (floats 8 548 2808)
 (intervals 56 33741 9397)
 (buffers 992 38))
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40279; Package emacs. (Mon, 26 Oct 2020 14:20:01 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Roland Coeurjoly <rolandcoeurjoly <at> gmail.com>
Cc: 40279 <at> debbugs.gnu.org
Subject: Re: bug#40279: 26.3; Error: you did not specify -i=mi on GDB's
 command line!
Date: Mon, 26 Oct 2020 15:19:33 +0100
Roland Coeurjoly <rolandcoeurjoly <at> gmail.com> writes:

> When I try to run:
> M-x gdb <RET> docker-compose -f ~/docker-services/dev/docker-compose.yml
> exec dev_rhel7 bash -c "gdb -i=mi" <RET>
> I get the following error:
> Error: you did not specify -i=mi on GDB's command line!

I don't know docker, but this is a message Emacs gives when gdb doesn't
start up and output the data that knows that it has been started
correctly.

So the message may be slightly misleading, but the problem seems to be
that gdb isn't started properly?  Here's the code:

(defun gdb--check-interpreter (filter proc string)
  (unless (zerop (length string))
    (remove-function (process-filter proc) #'gdb--check-interpreter)
    (unless (memq (aref string 0) '(?^ ?~ ?@ ?& ?* ?=))
      ;; Apparently we're not running with -i=mi.
      (let ((msg "Error: you did not specify -i=mi on GDB's command line!"))

So is there a problem with your gdb invocation via docker?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Added tag(s) moreinfo. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Mon, 26 Oct 2020 14:20:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40279; Package emacs. (Mon, 26 Oct 2020 20:32:02 GMT) Full text and rfc822 format available.

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

From: Roland Coeurjoly <rolandcoeurjoly <at> gmail.com>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 40279 <at> debbugs.gnu.org
Subject: Re: bug#40279: 26.3; Error: you did not specify -i=mi on GDB's
 command line!
Date: Mon, 26 Oct 2020 21:31:25 +0100
[Message part 1 (text/plain, inline)]
Yes, the problem is that it doesn't split the frame in different windows,
and nothing good happens.

I need to run gdb inside Docker, and I have a strong preference for the
interface provided by emacs.

When doing M-x gdb, I enter "docker-compose -f
~/docker-services/dev/docker-compose.yml exec dev_rhel7 bash -c "gdb
-i=mi"", and then it shows me the following message.

Current directory is /home/drcoeurjoly/docker-services/dev/

Error: you did not specify -i=mi on GDB's command line! WARNING: The MY_UID
variable is not set. Defaulting to a blank string.

1-inferior-tty-set /dev/pts/3

2-gdb-set height 0

3-gdb-set non-stop 1

4-enable-pretty-printing

5-file-list-exec-source-files

6-file-list-exec-source-file

7-gdb-show prompt

8-stack-info-frame

9-thread-info

10-break-list

11-thread-info

12-break-list

=thread-group-added,id="i1"

~"GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-114.el7\n"

~"Copyright (C) 2013 Free Software Foundation, Inc.\n"

~"License GPLv3+: GNU GPL version 3 or later
http://gnu.org/licenses/gpl.html\nThis is free software: you are free to
change and redistribute it.\nThere is NO WARRANTY, to the extent permitted
by law. Type \"show copying\"\nand \"show warranty\" for details.\n"

~"This GDB was configured as \"x86_64-redhat-linux-gnu\".\nFor bug
reporting instructions, please see:\n"

~"http://www.gnu.org/software/gdb/bugs/.\n"

=cmd-param-changed,param="history save",value="on"

=cmd-param-changed,param="history
filename",value="/home/drcoeurjoly/dotfiles/gdb/.gdb_history"

=cmd-param-changed,param="print pretty",value="on"

=cmd-param-changed,param="print object",value="on"

=cmd-param-changed,param="print vtbl",value="on"

=cmd-param-changed,param="demangle-style",value="gnu-v3"

=cmd-param-changed,param="follow-fork-mode",value="child"

=cmd-param-changed,param="detach-on-fork",value="off"

(gdb)

1^done

(gdb)

2^done

(gdb)

3^done

(gdb)

4^done

(gdb)

5^done,files=[]

(gdb)

6^error,msg="No symbol table is loaded. Use the \"file\" command."

(gdb)

7^done,value="(gdb) "

(gdb)

8^error,msg="No registers."

(gdb)

9^done,threads=[]

(gdb)

10^done,BreakpointTable={nr_rows="0",nr_cols="6",hdr=[{width="7",alignment="-1",col_name="number",colhdr="Num"},{width="14",alignment="-1",col_name="type",colhdr="Type"},{width="4",alignment="-1",col_name="disp",colhdr="Disp"},{width="3",alignment="-1",col_name="enabled",colhdr="Enb"},{width="10",alignment="-1",col_name="addr",colhdr="Address"},{width="40",alignment="2",col_name="what",colhdr="What"}],body=[]}

(gdb)

11^done,threads=[]

(gdb)

12^done,BreakpointTable={nr_rows="0",nr_cols="6",hdr=[{width="7",alignment="-1",col_name="number",colhdr="Num"},{width="14",alignment="-1",col_name="type",colhdr="Type"},{width="4",alignment="-1",col_name="disp",colhdr="Disp"},{width="3",alignment="-1",col_name="enabled",colhdr="Enb"},{width="10",alignment="-1",col_name="addr",colhdr="Address"},{width="40",alignment="2",col_name="what",colhdr="What"}],body=[]}

(gdb)

Note that I successfully enter gdb in Docker, since GDB says:

"GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-114.el7\n"

In my host operating system (Debian): gdb --version outputs:

GNU gdb (Debian 8.2.1-2+b3) 8.2.1

In Debian, I execute the Docker command: docker-compose -f
~/docker-services/dev/docker-compose.yml exec dev_rhel7 bash -c "gdb -i=mi"
and I get the machine-oriented text interface.

From the previous test I deduce that it is an issue of emacs, not Docker.

When entering the path of a binary instead of the option -i=mi, it reads
the symbols just fine: M-x gdb RETURN docker-compose -f
~/docker-services/dev/docker-compose.yml exec dev_rhel7 bash -c "gdb
~/babel_sandbox/build/foo" which outputs:

Current directory is /home/drcoeurjoly/docker-services/dev/

Error: you did not specify -i=mi on GDB's command line!

WARNING: The MY_UID variable is not set. Defaulting to a blank string.

1-inferior-tty-set /dev/pts/3

2-gdb-set height 0

3-gdb-set non-stop 1

4-enable-pretty-printing

5-file-list-exec-source-files

6-file-list-exec-source-file

7-gdb-show prompt

8-stack-info-frame

9-thread-info

10-break-list

11-thread-info

12-break-list

GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-114.el7

Copyright (C) 2013 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law. Type "show copying"

and "show warranty" for details.

This GDB was configured as "x86_64-redhat-linux-gnu".

For bug reporting instructions, please see:

http://www.gnu.org/software/gdb/bugs/...

Reading symbols from /home/drcoeurjoly/babel_sandbox/build/foo...done.

(gdb) 1-inferior-tty-set /dev/pts/3

Undefined command: "1-inferior-tty-set". Try "help".

(gdb) 2-gdb-set height 0

Undefined command: "2-gdb-set". Try "help".

(gdb) 3-gdb-set non-stop 1

Undefined command: "3-gdb-set". Try "help".

(gdb) 4-enable-pretty-printing

Undefined command: "4-enable-pretty-printing". Try "help".

(gdb) 5-file-list-exec-source-files

Undefined command: "5-file-list-exec-source-files". Try "help".

(gdb) 6-file-list-exec-source-file

Undefined command: "6-file-list-exec-source-file". Try "help".

(gdb) 7-gdb-show prompt

Undefined command: "7-gdb-show". Try "help".

(gdb) 8-stack-info-frame

Undefined command: "8-stack-info-frame". Try "help".

(gdb) 9-thread-info

Undefined command: "9-thread-info". Try "help".

(gdb) 10-break-list

Undefined command: "10-break-list". Try "help".

(gdb) 11-thread-info

Undefined command: "11-thread-info". Try "help".

(gdb) 12-break-list

Undefined command: "12-break-list". Try "help".

(gdb)

I also tried putting the gdb -i=mi inside a script and calling that from
emacs, to no avail. Calling directly from bash worked and not from emacs.

Relevant information:

   - My spacemacs config <https://github.com/RCoeurjoly/dotfiles>
   - foo program <https://github.com/RCoeurjoly/babel_sandbox/> used for
   testing argument passing to gdb in emacs.

I don't know if the dockerfile and docker-compose yml are relevant. If so,
I will create a repo.

Versions:

Host: uname -a

Linux des26 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11)
x86_64 GNU/Linux

Emacs in host: emacs --version

GNU Emacs 26.3

GDB in host: gdb --version

GNU gdb (Debian 8.2.1-2+b3) 8.2.1

Docker in host: docker --version

Docker version 18.09.1, build 4c52b90

Docker-compose in host: docker-compose --version

docker-compose version 1.21.0, build unknown

Docker container: cat /etc/redhat-release

CentOS Linux release 7.5.1804 (Core)

GDB in docker container: gdb --version

GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-114.el7

This issue was reported by Robert Mecklenburg here
<https://lists.gnu.org/archive/html/bug-gnu-emacs/2017-08/msg01216.html>
and here
<https://forums.docker.com/t/emacs-gud-mode-fails-with-docker-gdb/37452> as
early as august 2017.

On Mon, Oct 26, 2020 at 3:19 PM Lars Ingebrigtsen <larsi <at> gnus.org> wrote:

> Roland Coeurjoly <rolandcoeurjoly <at> gmail.com> writes:
>
> > When I try to run:
> > M-x gdb <RET> docker-compose -f ~/docker-services/dev/docker-compose.yml
> > exec dev_rhel7 bash -c "gdb -i=mi" <RET>
> > I get the following error:
> > Error: you did not specify -i=mi on GDB's command line!
>
> I don't know docker, but this is a message Emacs gives when gdb doesn't
> start up and output the data that knows that it has been started
> correctly.
>
> So the message may be slightly misleading, but the problem seems to be
> that gdb isn't started properly?  Here's the code:
>
> (defun gdb--check-interpreter (filter proc string)
>   (unless (zerop (length string))
>     (remove-function (process-filter proc) #'gdb--check-interpreter)
>     (unless (memq (aref string 0) '(?^ ?~ ?@ ?& ?* ?=))
>       ;; Apparently we're not running with -i=mi.
>       (let ((msg "Error: you did not specify -i=mi on GDB's command
> line!"))
>
> So is there a problem with your gdb invocation via docker?
>
> --
> (domestic pets only, the antidote for overdose, milk.)
>    bloggy blog: http://lars.ingebrigtsen.no
>
[Message part 2 (text/html, inline)]

Forcibly Merged 28309 40279. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Mon, 26 Oct 2020 20:36:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40279; Package emacs. (Mon, 26 Oct 2020 21:02:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Roland Coeurjoly <rolandcoeurjoly <at> gmail.com>
Cc: 40279 <at> debbugs.gnu.org
Subject: Re: bug#40279: 26.3; Error: you did not specify -i=mi on GDB's
 command line!
Date: Mon, 26 Oct 2020 22:01:16 +0100
Roland Coeurjoly <rolandcoeurjoly <at> gmail.com> writes:

> Yes, the problem is that it doesn't split the frame in different windows, and nothing
> good happens.
>
> I need to run gdb inside Docker, and I have a strong preference for the interface
> provided by emacs.
>
> When doing M-x gdb, I enter "docker-compose -f
> ~/docker-services/dev/docker-compose.yml exec dev_rhel7 bash -c "gdb -i=mi"",
> and then it shows me the following message.

Like I said, I know nothing about Docker, but my totally uninformed
guess would be that something in that command line mangles the output
from gdb, somehow, so that Emacs is no longer able to parse it.

It's hard to tell, since you're posting via Gmail, as HTML, and the
output examples you include have been mangled beyond recognition.

Perhaps try including them as attachments?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40279; Package emacs. (Mon, 26 Oct 2020 21:08:02 GMT) Full text and rfc822 format available.

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

From: Roland Coeurjoly <rolandcoeurjoly <at> gmail.com>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 40279 <at> debbugs.gnu.org
Subject: Re: bug#40279: 26.3; Error: you did not specify -i=mi on GDB's
 command line!
Date: Mon, 26 Oct 2020 22:07:16 +0100
[Message part 1 (text/plain, inline)]
>
> Like I said, I know nothing about Docker, but my totally uninformed
> guess would be that something in that command line mangles the output
> from gdb, somehow, so that Emacs is no longer able to parse it.


Yes, that seems to be the case.

I posted this in stackoverflow here:
https://stackoverflow.com/questions/60112087/error-you-did-not-specify-i-mi-on-gdbs-command-line-in-docker

Would that be ok just to provide the link?

On Mon, Oct 26, 2020 at 10:01 PM Lars Ingebrigtsen <larsi <at> gnus.org> wrote:

> Roland Coeurjoly <rolandcoeurjoly <at> gmail.com> writes:
>
> > Yes, the problem is that it doesn't split the frame in different
> windows, and nothing
> > good happens.
> >
> > I need to run gdb inside Docker, and I have a strong preference for the
> interface
> > provided by emacs.
> >
> > When doing M-x gdb, I enter "docker-compose -f
> > ~/docker-services/dev/docker-compose.yml exec dev_rhel7 bash -c "gdb
> -i=mi"",
> > and then it shows me the following message.
>
> Like I said, I know nothing about Docker, but my totally uninformed
> guess would be that something in that command line mangles the output
> from gdb, somehow, so that Emacs is no longer able to parse it.
>
> It's hard to tell, since you're posting via Gmail, as HTML, and the
> output examples you include have been mangled beyond recognition.
>
> Perhaps try including them as attachments?
>
> --
> (domestic pets only, the antidote for overdose, milk.)
>    bloggy blog: http://lars.ingebrigtsen.no
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40279; Package emacs. (Tue, 27 Oct 2020 07:47:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Roland Coeurjoly <rolandcoeurjoly <at> gmail.com>
Cc: 40279 <at> debbugs.gnu.org
Subject: Re: bug#40279: 26.3; Error: you did not specify -i=mi on GDB's
 command line!
Date: Tue, 27 Oct 2020 08:46:22 +0100
Roland Coeurjoly <rolandcoeurjoly <at> gmail.com> writes:

>  Like I said, I know nothing about Docker, but my totally uninformed
>  guess would be that something in that command line mangles the output
>  from gdb, somehow, so that Emacs is no longer able to parse it.
>
> Yes, that seems to be the case.
>
> I posted this in stackoverflow here:
> https://stackoverflow.com/questions/60112087/error-you-did-not-specify-i-mi-on-gdbs-command-line-in-docker
>
> Would that be ok just to provide the link?

I don't see anything on that link that wasn't in your bug report, so --
no, that doesn't really get us anywhere further.

The problem is, as I was guessing, that your command line does something
with the stream output from gdb that make Emacs not able to interpret
it.  If you posted the actual output here (not as HTML, but as a text
attachment), it might help us further guess what it is that's
happening.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40279; Package emacs. (Tue, 27 Oct 2020 18:38:02 GMT) Full text and rfc822 format available.

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

From: William Xu <william.xwl <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#40279: 26.3;
 Error: you did not specify -i=mi on GDB's command line!
Date: Tue, 27 Oct 2020 19:36:50 +0100
Roland Coeurjoly <rolandcoeurjoly <at> gmail.com> writes:

> From the previous test I deduce that it is an issue of emacs, not
> Docker.

I recently tried to setup calling gdb from docker as well, I also got
some weird errors. Eventually I'm able to make it work by disabling the
I/O separation (via "-inferior-tty-set") done by gdb mode.

Root cause seems that emacs allocates an inferior tty (for I/O
separation in gdb) for the *host*, which of course is not known to
docker gdb. I'm not really sure how it should be properly fixed.

This is my setup, I wrap around the gdb docker in a script: 
https://lists.gnu.org/archive/html/help-gnu-emacs/2020-10/msg00311.html

This is the change I have to make: 
https://lists.gnu.org/archive/html/help-gnu-emacs/2020-10/msg00369.html


P.S. I had hope on tramp remote gdb, but there are other issues... :(
  https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-10/msg01839.html

-- 
William





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40279; Package emacs. (Tue, 27 Oct 2020 19:15:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: William Xu <william.xwl <at> gmail.com>
Cc: 40279 <at> debbugs.gnu.org
Subject: Re: bug#40279: 26.3; Error: you did not specify -i=mi on GDB's
 command line!
Date: Tue, 27 Oct 2020 20:14:07 +0100
William Xu <william.xwl <at> gmail.com> writes:

> This is the change I have to make: 
> https://lists.gnu.org/archive/html/help-gnu-emacs/2020-10/msg00369.html

For reference, your proposed patch is just:

diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
index f0262c2315..7df23a6f41 100644
--- a/lisp/progmodes/gdb-mi.el
+++ b/lisp/progmodes/gdb-mi.el
@@ -1658,14 +1658,7 @@ gdb-display-io-buffer
 (defun gdb-inferior-io--init-proc (proc)
   ;; Set up inferior I/O.  Needs GDB 6.4 onwards.
   (set-process-filter proc 'gdb-inferior-filter)
-  (set-process-sentinel proc 'gdb-inferior-io-sentinel)
-  ;; The process can run on a remote host.
-  (let ((tty (or (process-get proc 'remote-tty)
-		 (process-tty-name proc))))
-    (unless (or (null tty)
-		(string= tty ""))
-      (gdb-input
-       (concat "-inferior-tty-set " tty) 'ignore))))
+  (set-process-sentinel proc 'gdb-inferior-io-sentinel))
 
 (defun gdb-inferior-io-sentinel (proc _str)
   (when (eq (process-status proc) 'failed)

I tried looking at the VC logs to see what the point of the
inferior-tty-set command was, but the only mention I found was:

     (gdb-inferior-io--init-proc): Don't send "-inferior-tty" command
     if the TTY name is nil or empty (which happens when communicating
     with the inferior via pipes, e.g. on MS-Windows).

Which just disables it on Windows?

Hm...  it was introduced below, but doesn't really say why.

commit f30d612a7a628828baa7c333629a10295605291b
Author:     Chong Yidong <cyd <at> gnu.org>
AuthorDate: Fri Apr 20 14:39:29 2012 +0800

And as far as I can tell, gdb runs just fine without it, even on
GNU/Linux?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40279; Package emacs. (Tue, 27 Oct 2020 20:06:02 GMT) Full text and rfc822 format available.

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

From: William Xu <william.xwl <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#40279: 26.3;
 Error: you did not specify -i=mi on GDB's command line!
Date: Tue, 27 Oct 2020 21:04:55 +0100
Lars Ingebrigtsen <larsi <at> gnus.org> writes:

> And as far as I can tell, gdb runs just fine without it, even on
> GNU/Linux?

Without that, the gdb commands and program I/O are mixed together in the
same buffer, so "*input/output of...*" window in gdb-many-windows will
be empty.

It is mostly useful if there is a lot of I/O from the program. It makes
it easier to inspect only the program I/O in that separated buffer.

So my change will kill the I/O separation. But then most of gdb mode
features will work.

Eli has explained it in my thread:
https://lists.gnu.org/archive/html/help-gnu-emacs/2020-10/msg00392.html

-- 
William





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40279; Package emacs. (Tue, 27 Oct 2020 20:10:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 40279 <at> debbugs.gnu.org, william.xwl <at> gmail.com
Subject: Re: bug#40279: 26.3;
 Error: you did not specify -i=mi on GDB's command line!
Date: Tue, 27 Oct 2020 22:09:23 +0200
> From: Lars Ingebrigtsen <larsi <at> gnus.org>
> Date: Tue, 27 Oct 2020 20:14:07 +0100
> Cc: 40279 <at> debbugs.gnu.org
> 
> I tried looking at the VC logs to see what the point of the
> inferior-tty-set command was, but the only mention I found was:
> 
>      (gdb-inferior-io--init-proc): Don't send "-inferior-tty" command
>      if the TTY name is nil or empty (which happens when communicating
>      with the inferior via pipes, e.g. on MS-Windows).
> 
> Which just disables it on Windows?

Yes.  Because on Windows this is nothing but trouble.

> Hm...  it was introduced below, but doesn't really say why.
> 
> commit f30d612a7a628828baa7c333629a10295605291b
> Author:     Chong Yidong <cyd <at> gnu.org>
> AuthorDate: Fri Apr 20 14:39:29 2012 +0800
> 
> And as far as I can tell, gdb runs just fine without it, even on
> GNU/Linux?

It is needed to redirect the I/O of the program being debugged into a
separate buffer, so it doesn't get mixed with the interaction between
the user and GDB.  gdb-many-windows creates, among others, a buffer
where the program's I/O is redirected.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40279; Package emacs. (Tue, 27 Oct 2020 20:12:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: William Xu <william.xwl <at> gmail.com>
Cc: 40279 <at> debbugs.gnu.org
Subject: Re: bug#40279: 26.3; Error: you did not specify -i=mi on GDB's
 command line!
Date: Tue, 27 Oct 2020 21:11:48 +0100
William Xu <william.xwl <at> gmail.com> writes:

> Lars Ingebrigtsen <larsi <at> gnus.org> writes:
>
>> And as far as I can tell, gdb runs just fine without it, even on
>> GNU/Linux?
>
> Without that, the gdb commands and program I/O are mixed together in the
> same buffer, so "*input/output of...*" window in gdb-many-windows will
> be empty.

Ah, I see.

> It is mostly useful if there is a lot of I/O from the program. It makes
> it easier to inspect only the program I/O in that separated buffer.
>
> So my change will kill the I/O separation. But then most of gdb mode
> features will work.

Does the `M-x gud-gdb' command work OK in the Docker use case?  That one
doesn't have a separate socket for the I/O.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40279; Package emacs. (Tue, 27 Oct 2020 20:21:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: William Xu <william.xwl <at> gmail.com>
Cc: 40279 <at> debbugs.gnu.org
Subject: Re: bug#40279: 26.3;
 Error: you did not specify -i=mi on GDB's command line!
Date: Tue, 27 Oct 2020 22:20:44 +0200
> From: William Xu <william.xwl <at> gmail.com>
> Date: Tue, 27 Oct 2020 21:04:55 +0100
> 
> Lars Ingebrigtsen <larsi <at> gnus.org> writes:
> 
> > And as far as I can tell, gdb runs just fine without it, even on
> > GNU/Linux?
> 
> Without that, the gdb commands and program I/O are mixed together in the
> same buffer, so "*input/output of...*" window in gdb-many-windows will
> be empty.
> 
> It is mostly useful if there is a lot of I/O from the program. It makes
> it easier to inspect only the program I/O in that separated buffer.

No, it's useful even if the program does only a small amount of I/O,
because running GDB in the default mode on GNU/Linux lets you run the
program in the non-stop mode, where GDB and the program run in
parallel -- in that case if they both output stuff to the same file
descriptor, you will get an illegible mess.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40279; Package emacs. (Wed, 28 Oct 2020 19:49:02 GMT) Full text and rfc822 format available.

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

From: William Xu <william.xwl <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#40279: 26.3;
 Error: you did not specify -i=mi on GDB's command line!
Date: Wed, 28 Oct 2020 20:48:15 +0100
Lars Ingebrigtsen <larsi <at> gnus.org> writes:

> Does the `M-x gud-gdb' command work OK in the Docker use case?  That one
> doesn't have a separate socket for the I/O.

I just tested it, yes, it works well without my change. 

-- 
William





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40279; Package emacs. (Fri, 30 Oct 2020 12:20:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: William Xu <william.xwl <at> gmail.com>
Cc: 40279 <at> debbugs.gnu.org
Subject: Re: bug#40279: 26.3; Error: you did not specify -i=mi on GDB's
 command line!
Date: Fri, 30 Oct 2020 13:19:04 +0100
William Xu <william.xwl <at> gmail.com> writes:

> Lars Ingebrigtsen <larsi <at> gnus.org> writes:
>
>> Does the `M-x gud-gdb' command work OK in the Docker use case?  That one
>> doesn't have a separate socket for the I/O.
>
> I just tested it, yes, it works well without my change. 

I think it's probably not feasible to get the gdb-mi interface working
within Docker (with Emacs on the outside), so I think the right fix here
is to just make the error message less sure of itself.

I've now done this in Emacs 28.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




bug closed, send any further explanations to 40279 <at> debbugs.gnu.org and Roland Coeurjoly <rolandcoeurjoly <at> gmail.com> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Fri, 30 Oct 2020 12:20:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40279; Package emacs. (Fri, 30 Oct 2020 16:30:02 GMT) Full text and rfc822 format available.

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

From: William Xu <william.xwl <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#40279: 26.3;
 Error: you did not specify -i=mi on GDB's command line!
Date: Fri, 30 Oct 2020 17:29:28 +0100
Lars Ingebrigtsen <larsi <at> gnus.org> writes:

> I think it's probably not feasible to get the gdb-mi interface working
> within Docker (with Emacs on the outside), so I think the right fix here
> is to just make the error message less sure of itself.
>
> I've now done this in Emacs 28.

The new error message looks much more informative/helpful than before. 
Thanks. 

-- 
William





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40279; Package emacs. (Tue, 03 Nov 2020 18:53:01 GMT) Full text and rfc822 format available.

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

From: William Xu <william.xwl <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#40279: 26.3;
 Error: you did not specify -i=mi on GDB's command line!
Date: Tue, 03 Nov 2020 19:52:41 +0100
Roland Coeurjoly <rolandcoeurjoly <at> gmail.com> writes:

> When doing M-x gdb, I enter "docker-compose -f ~/docker-services/dev/docker-compose.yml exec dev_rhel7 bash -c "gdb -i=mi"", and then
> it shows me the following message.
>
>  Current directory is /home/drcoeurjoly/docker-services/dev/
>
>  Error: you did not specify -i=mi on GDB's command line! WARNING: The MY_UID variable is not set. Defaulting to a blank string.

Is "WARNING: The MY_UID variable is not set. Defaulting to a blank
string." coming from your docker or bash? 

The check of gdb--check-interpreter looks pretty weak, as long as there
is anything that will be written to stdout before the gdb cmd itself, it
will fail with below check:

#+begin_src emacs-lisp
    (unless (memq (aref string 0) '(?^ ?~ ?@ ?& ?* ?=))
#+end_src

which will further set below filter. The filter below seems preventing
the gdb-mi to work: 

#+begin_src emacs-lisp
      (set (make-local-variable 'gud-marker-filter) #'gud-gdb-marker-filter)
#+end_src

One can easily reproduce similar error, by wrapping around gdb with
"echo hi" at the front: 

#+begin_src shell-script
#!/bin/sh

arg="$@"
echo hi
gdb -i=mi ${arg}
#+end_src

IMO, in the above cases, we should not immediately fall back to gud-gdb
filter. The user should at least get a chance (like yes-or-no-p) to
continue with gdb-mi, regardless of the sometimes-false-positive error.

-- 
William





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 02 Dec 2020 12:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 117 days ago.

Previous Next


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