Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Andrew Cagney <cagney@gnu.org>
To: Nick Roberts <nickrob@snap.net.nz>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [PATCH] interpreter_exec_cmd (interps.c)
Date: Tue, 25 Jan 2005 15:28:00 -0000	[thread overview]
Message-ID: <41F66552.4010909@gnu.org> (raw)
In-Reply-To: <16886.6823.347734.738143@farnswood.snap.net.nz>

Nick Roberts wrote:
> GDB hangs if it receives the previously legitimate command
> server interpreter mi "-var-update *"
> 
> 
> GNU gdb 6.3.50.20050125-cvs
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i586-pc-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1".
> 
> (gdb) server interpreter mi "-var-update *"
> ^done,changelist=[]
> (gdb) 
> error in command: "-var-update *".
> 
> 
> The patch below seems to fix it. I don't know what values reason takes as
> struct exception in exception.h has no commented description, so this patch is
> a bit of a guess and may not be the right fix. The bug is real, however.
> There seems to be a further bug, in that once GDB has reached the line in
> interps.c, 
> 
> error ("error in command: \"%s\".", prules[i]),
> 
> ,presumably it shouldn't hang.

Hmm, another example is:

	(gdb) interpreter console help foo

Can you create a new minimal test "gdb.base/interpreter.exp" to sanity 
check one of the above (and add anything else that takes your fancy :-)

Be sure to check that the test actually fails without the test (and 
don't forget to mention the system it was tested on).   Consider that 
pre-approved.

> 
> 
> *** /home/nick/src/gdb/interps.c.~1.10.~	2005-01-16 15:46:17.000000000 +1300
> --- /home/nick/src/gdb/interps.c	2005-01-25 22:47:42.000000000 +1300
> ***************
> *** 399,405 ****
>     for (i = 1; i < nrules; i++)
>       {
>         struct exception e = interp_exec (interp_to_use, prules[i]);
> !       if (!e.reason)

Oops!  e.reason < 0 indicates an error (the [very old] description of 
enum return_reason hints at this).  With that tweak, and the testsuite, 
this is approved.

good catch,
Andrew


  reply	other threads:[~2005-01-25 15:28 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-25 10:15 Nick Roberts
2005-01-25 15:28 ` Andrew Cagney [this message]
2005-01-26 10:19   ` Nick Roberts
2005-01-27 10:14   ` Nick Roberts
2005-02-02 16:21     ` Andrew Cagney

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

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

  git send-email \
    --in-reply-to=41F66552.4010909@gnu.org \
    --to=cagney@gnu.org \
    --cc=gdb-patches@sources.redhat.com \
    --cc=nickrob@snap.net.nz \
    /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