unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: William Xu <william.xwl@gmail.com>
To: help-gnu-emacs@gnu.org
Subject: Re: gdb mode with gdb command from the docker
Date: Thu, 22 Oct 2020 20:41:52 +0200	[thread overview]
Message-ID: <m2wnzi5ci7.fsf@gmail.com> (raw)
In-Reply-To: 83imb3muem.fsf@gnu.org

Eli Zaretskii <eliz@gnu.org> writes:

> No, this setting is needed to separate the I/O device of the process
> being debugged from that of GDB, so that we could redirect I/O of the
> debuggee to a dedicated buffer used by "M-x gdb" to show interaction
> with the program.

Can we at least add an option to disable the I/O separation, like
gdb-disable-io-redirection? So that one can still have a working gdb,
even if the I/O are mixed with gdb commands. So that I would still have
the nice features of gdb modes, with which I can set breakpoints, follow
line by line in the source buffer. That is already a huge improvement on
the plain terminal gdb.

In addition, I just noticed that tramp seems supporting such kind of
remote debugging, from [[info:tramp#Remote processes][info:tramp#Remote processes]]:

,----
| 5.5.5 Running a debugger on a remote host
| -----------------------------------------
| 
| ‘gud.el’ provides a unified interface to symbolic debuggers (*note
| (emacs)Debuggers::).  TRAMP can run debug on remote hosts by calling
| ‘gdb’ with a remote file name:
| 
|      M-x gdb <RET>
|      Run gdb (like this): gdb -i=mi /ssh:host:~/myprog <RET>
`----

Only that when trying it out with ssh method, I got an error after the
file is loaded. Should I report a bug for it?

---------------------------------8<------------------------------------- 
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/wx/tmp/a.out...

Debugger entered--Lisp error: (wrong-type-argument "consp nil")
  signal(wrong-type-argument ("consp nil"))
  tramp-signal-hook-function(wrong-type-argument (consp nil))
  signal(wrong-type-argument (consp nil))
  tramp-sh-handle-make-process(:name "gdb-inferior" :buffer #<buffer limbo<3>> :command nil :stderr nil :noquery nil :file-handler t)
  apply(tramp-sh-handle-make-process (:name "gdb-inferior" :buffer #<buffer limbo<3>> :command nil :stderr nil :noquery nil :file-handler t))
  tramp-sh-file-name-handler(make-process :name "gdb-inferior" :buffer #<buffer limbo<3>> :command nil :stderr nil :noquery nil :file-handler t)
  apply(tramp-sh-file-name-handler make-process (:name "gdb-inferior" :buffer #<buffer limbo<3>> :command nil :stderr nil :noquery nil :file-handler t))
  tramp-file-name-handler(make-process :name "gdb-inferior" :buffer #<buffer limbo<3>> :command nil :stderr nil :noquery nil :file-handler t)
  tramp-handle-start-file-process("gdb-inferior" #<buffer limbo<3>> nil)
  apply(tramp-handle-start-file-process ("gdb-inferior" #<buffer limbo<3>> nil))
  tramp-sh-file-name-handler(start-file-process "gdb-inferior" #<buffer limbo<3>> nil)
  apply(tramp-sh-file-name-handler start-file-process ("gdb-inferior" #<buffer limbo<3>> nil))
  tramp-file-name-handler(start-file-process "gdb-inferior" #<buffer limbo<3>> nil)
  apply(tramp-file-name-handler start-file-process "gdb-inferior" #<buffer limbo<3>> nil nil)
  start-file-process("gdb-inferior" #<buffer limbo<3>> nil)
  apply(start-file-process "gdb-inferior" #<buffer limbo<3>> nil nil)
  comint-exec-1("gdb-inferior" #<buffer limbo<3>> nil nil)
  comint-exec(#<buffer limbo<3>> "gdb-inferior" nil nil nil)
  make-comint-in-buffer("gdb-inferior" #<buffer limbo<3>> nil)
  gdb-inferior-io-mode()
  gdb-get-buffer-create(gdb-inferior-io)
  gdb-init-1()
  gdb-update()
  gdb("gdb -i=mi /ssh:wx@SERVER:/home/wx/tmp...")
  funcall-interactively(gdb "gdb -i=mi /ssh:wx@SERVER:/home/wx/tmp...")
  call-interactively(gdb record nil)
  command-execute(gdb record)
  execute-extended-command(nil "gdb" nil)
  funcall-interactively(execute-extended-command nil "gdb" nil)
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)
---------------------------------8<-------------------------------------

-- 
William




  reply	other threads:[~2020-10-22 18:41 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-18 15:08 gdb mode with gdb command from the docker William Xu
2020-10-18 15:57 ` Eli Zaretskii
2020-10-18 18:18   ` William Xu
2020-10-18 18:35     ` Eli Zaretskii
2020-10-20 19:54       ` William Xu
2020-10-21 16:10         ` Eli Zaretskii
2020-10-22 18:41           ` William Xu [this message]
2020-10-22 18:49             ` Eli Zaretskii
2020-10-22 19:27               ` William Xu
2020-10-18 18:48 ` Yuri Khan
2020-10-18 19:00   ` otadmor
2020-10-19  6:41     ` William Xu
2020-10-19  6:39   ` William Xu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2wnzi5ci7.fsf@gmail.com \
    --to=william.xwl@gmail.com \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).