unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Herbert Euler <herberteuler@hotmail.com>
To: <dima@sphinx.net.ru>
Cc: bug-gnu-emacs@gnu.org, 3794@emacsbugs.donarmstrong.com
Subject: bug#3794: Several other problems in gdb-mi [RE: bug#3794: Error in json from gdb-ui]
Date: Fri, 31 Jul 2009 16:06:42 +0800	[thread overview]
Message-ID: <BAY143-W20A0EED4D58464921E2C19DA100@phx.gbl> (raw)
In-Reply-To: <87zlb71iob.fsf@sphinx.net.ru>

[-- Attachment #1: Type: text/plain, Size: 2825 bytes --]


I'm so sorry for the big delay.  I was not able to use computers these
days.

> > 2. The command "shell" is broken: In M-x gdb,
> >
> > shell ps aux | grep emacs
> >
> > results in no output; but in a "real" gdb, the output looks like this:
> >
> > shell ps aux | grep emacs
> > &"shell ps aux | grep emacs\n"
> > xgp 4886 1.3 0.1 80796 25900 pts/1 T 09:38 0:08 emacs
> > xgp 4936 0.3 0.1 77688 22568 pts/10 T+ 09:39 0:02 ./emacs
> > xgp 5209 0.0 0.1 28128 16548 pts/6 Ss+ 09:46 0:00 /usr/local/bin/gdb -i=mi emacs
> > xgp 5353 0.4 0.1 28184 16584 pts/1 S+ 09:49 0:00 gdb -i=mi emacs
> > xgp 5354 0.0 0.0 52800 976 pts/1 S+ 09:49 0:00 bash -c ps aux | grep emacs
> > xgp 5356 0.0 0.0 51124 688 pts/1 S+ 09:49 0:00 grep emacs
> > ^done
>
> Output of GDB's shell command goes as is straight to the terminal
> without being prefixed by stream identifier (~, @, & etc.) Thus it's
> harder to distinguish where this output should go (to GUD buffer, to MI
> parser etc.) I managed to produce a small patch which does the trick for
> simple shell commands like yours, but don't expect it to work with
> `top(1)` for example. I've attached the patch. Let me know if you notice
> that it breaks something.

I see.  The patch works very well.

I got an idea of how to catch the output of `top(1)': Setting up the
gud buffer to make it behave like a shell buffer temporarily during
the execution of the `shell' command, and switching back to make it
behave in the gdb way after seen `^done'.  However, this seems not to
be worthy implementing, because normally only simple shell commands
are executed via the `shell' command.

> > 3. Previously, typing directly RET at the M-x gdb prompt repeats the
> > last command in history. This is also what a "real" gdb does. But in
> > the new implementation, this does nothing now.
>
> I've fixed the code which mimicks RET behaviour for GUD buffer.

It works for me, thank you.

And here's another three problems:

4. Killing a gdb buffer won't send the `detach' command to the gdb
process, leaving the debugged process permentally being stopped.  This
is often unconvenient.

5. The commands like `while' and `if' cannot be handled correctly.
Combined with problem #4, this leads to a bad use case: After typing
such a command, the gdb process hangs, so the gdb buffer has to be
killed.  Then, the debugged process hangs and has to be killed.  As a
result, both the debugger and the debugged process have to be
restarted.

6. Completion should be done with the emacs completion feature,
i.e. try-completion, completing-read etc.

Regards,
Guanpeng Xu


_________________________________________________________________
More than messages–check out the rest of the Windows Live™.
http://www.microsoft.com/windows/windowslive/

[-- Attachment #2: Type: text/html, Size: 3348 bytes --]

  reply	other threads:[~2009-07-31  8:06 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-09 12:14 bug#3794: Error in json from gdb-ui Herbert Euler
2009-07-10  4:38 ` Nick Roberts
2009-07-11  3:04   ` Glenn Morris
2009-07-10 13:26 ` Dmitry Dzhus
2009-07-14  1:58   ` bug#3840: Several other problems in gdb-mi [RE: bug#3794: Error in json from gdb-ui] Herbert Euler
2009-07-14 13:46     ` bug#3845: " Dmitry Dzhus
2009-07-31  8:06       ` Herbert Euler [this message]
2009-08-04 18:40         ` bug#4035: " Dmitry Dzhus
2009-08-06  2:20           ` bug#3794: " Herbert Euler
2009-08-06  2:29           ` Herbert Euler
2009-08-16 23:11         ` Dmitry Dzhus
2009-09-10  3:46         ` Nick Roberts

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=BAY143-W20A0EED4D58464921E2C19DA100@phx.gbl \
    --to=herberteuler@hotmail.com \
    --cc=3794@emacsbugs.donarmstrong.com \
    --cc=bug-gnu-emacs@gnu.org \
    --cc=dima@sphinx.net.ru \
    /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.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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).