From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7646 invoked by alias); 22 Oct 2002 16:27:34 -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 7633 invoked from network); 22 Oct 2002 16:27:32 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 22 Oct 2002 16:27:32 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id g9MG6Ew02106 for ; Tue, 22 Oct 2002 12:06:14 -0400 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id g9MGRVf19701 for ; Tue, 22 Oct 2002 12:27:31 -0400 Received: from localhost.redhat.com (IDENT:fTGZb/Q7WNGhXg/fB4tq1BtDBIXbIG7W@tooth.toronto.redhat.com [172.16.14.29]) by pobox.corp.redhat.com (8.11.6/8.11.6) with ESMTP id g9MGRUw29847; Tue, 22 Oct 2002 12:27:31 -0400 Received: by localhost.redhat.com (Postfix, from userid 469) id 6F3FBFF79; Tue, 22 Oct 2002 12:24:49 -0400 (EDT) From: Elena Zannoni MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15797.31697.71428.102586@localhost.redhat.com> Date: Tue, 22 Oct 2002 09:27:00 -0000 To: Keith Seitz Cc: gdb-patches@sources.redhat.com Subject: Re: [RFA/mi] Fix "-thread-select 123456789" test (fwd) In-Reply-To: References: X-SW-Source: 2002-10/txt/msg00407.txt.bz2 Keith Seitz writes: > Ping. > Sorry, this one slipped. Yes, go ahead. Elena > ---------- Forwarded message ---------- > Date: Tue, 24 Sep 2002 12:53:36 -0700 (PDT) > From: Keith Seitz > To: gdb-patches@sources.redhat.com > Subject: [RFA/mi] Fix "-thread-select 123456789" test > > Hi, > > Now that the mi-pthreads.exp tests are committed, this patch fixes one of > the failures, which demonstrates that when an error occurs switching > threads, MI was not able to correctly propagate an error message to the > user. > > This happens because the MI function is using a wrapped gdb function, > gdb_thread_select. This function returns <0 when an error occurs. The > wrapped function can return either a gdb failure code (like RETURN_ERROR) > or a wrapper failures (GDB_RC_FAIL). In both cases, mi_cmd_thread_select > was returnging MI_CMD_CAUGHT_ERROR, which is only valid in the first case. > In the latter, ther error message is already in mi_error_message, and it > should return MI_CMD_ERROR. > > You can see this by looking at mi-pthreads.exp's "-thread-select > 123456789" test: > > (gdb) > -thread-select 123456789 > &"Thread ID 123456789 not known.\n" > ^done > (gdb) > > Clearly, the correct answer should have ended with '^error,msg="Thread ID > 123456789 not known."'. > > Keith > > ChangeLog > 2002-09-24 Keith Seitz > > * mi-main.c (mi_cmd_thread_select): Only return MI_CMD_CAUGHT_ERROR > when we really did catch an error(). If we got GDB_RC_FAIL, return > MI_CMD_ERROR instead. > > Patch > Index: mi/mi-main.c > =================================================================== > RCS file: /cvs/src/src/gdb/mi/mi-main.c,v > retrieving revision 1.31 > diff -p -r1.31 mi-main.c > *** mi/mi-main.c 11 Sep 2002 21:49:04 -0000 1.31 > --- mi/mi-main.c 24 Sep 2002 19:44:32 -0000 > *************** mi_cmd_thread_select (char *command, cha > *** 244,251 **** > else > rc = gdb_thread_select (uiout, argv[0]); > > ! if (rc == GDB_RC_FAIL) > return MI_CMD_CAUGHT_ERROR; > else > return MI_CMD_DONE; > } > --- 244,255 ---- > else > rc = gdb_thread_select (uiout, argv[0]); > > ! /* RC is enum gdb_rc if it is successful (>=0) > ! enum return_reason if not (<0). */ > ! if ((int) rc < 0 && (enum return_reason) rc == RETURN_ERROR) > return MI_CMD_CAUGHT_ERROR; > + else if ((int) rc >= 0 && rc == GDB_RC_FAIL) > + return MI_CMD_ERROR; > else > return MI_CMD_DONE; > } >