From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13832 invoked by alias); 25 Jan 2005 15:28:30 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 13581 invoked from network); 25 Jan 2005 15:27:41 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 25 Jan 2005 15:27:41 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id j0PFReBx021437 for ; Tue, 25 Jan 2005 10:27:41 -0500 Received: from localhost.redhat.com (vpn50-81.rdu.redhat.com [172.16.50.81]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id j0PFRZO13955; Tue, 25 Jan 2005 10:27:35 -0500 Received: from [127.0.0.1] (localhost.localdomain [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 9ABA27D79; Tue, 25 Jan 2005 10:27:17 -0500 (EST) Message-ID: <41F66552.4010909@gnu.org> Date: Tue, 25 Jan 2005 15:28:00 -0000 From: Andrew Cagney User-Agent: Mozilla Thunderbird 0.8 (X11/20041020) MIME-Version: 1.0 To: Nick Roberts Cc: gdb-patches@sources.redhat.com Subject: Re: [PATCH] interpreter_exec_cmd (interps.c) References: <16886.6823.347734.738143@farnswood.snap.net.nz> In-Reply-To: <16886.6823.347734.738143@farnswood.snap.net.nz> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2005-01/txt/msg00242.txt.bz2 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