From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7373 invoked by alias); 7 Apr 2006 16:02:27 -0000 Received: (qmail 7363 invoked by uid 22791); 7 Apr 2006 16:02:26 -0000 X-Spam-Check-By: sourceware.org Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17) by sourceware.org (qpsmtpd/0.31.1) with ESMTP; Fri, 07 Apr 2006 16:02:24 +0000 Received: from drow by nevyn.them.org with local (Exim 4.54) id 1FRtPi-0006Sh-Je; Fri, 07 Apr 2006 12:02:22 -0400 Date: Fri, 07 Apr 2006 17:36:00 -0000 From: Daniel Jacobowitz To: Dirk Behme Cc: gdb@sourceware.org Subject: Re: MI return error changed from 6.3 to 6.4? Message-ID: <20060407160222.GA24731@nevyn.them.org> Mail-Followup-To: Dirk Behme , gdb@sourceware.org References: <44368B51.1030707@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <44368B51.1030707@gmail.com> User-Agent: Mutt/1.5.8i X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2006-04/txt/msg00105.txt.bz2 On Fri, Apr 07, 2006 at 05:54:57PM +0200, Dirk Behme wrote: > GDB 6.4: > > (gdb) > srwwerrweweer > &"srwwerrweweer\n" > &"Undefined command: \"srwwerrweweer\". Try \"help\".\n" > ^done > (gdb) Two things. Here's the cause: 1108 argv[0] = "console"; 1109 argv[1] = context->command; 1110 mi_cmd_interpreter_exec ("-interpreter-exec", argv, 2); 1111 1112 /* If we changed interpreters, DON'T print out anything. */ 1113 if (current_interp_named_p (INTERP_MI) 1114 || current_interp_named_p (INTERP_MI1) 1115 || current_interp_named_p (INTERP_MI2) 1116 || current_interp_named_p (INTERP_MI3)) 1117 { (gdb) 1118 /* print the result */ 1119 /* FIXME: Check for errors here. */ 1120 fputs_unfiltered (context->token, raw_stdout); 1121 fputs_unfiltered ("^done", raw_stdout); 1122 mi_out_put (uiout, raw_stdout); 1123 mi_out_rewind (uiout); 1124 fputs_unfiltered ("\n", raw_stdout); 1125 args->action = EXECUTE_COMMAND_DISPLAY_PROMPT; 1126 args->rc = MI_CMD_DONE; 1127 } mi_cmd_interpreter_exec has conveniently returned MI_CMD_ERROR. So, this should be easy to fix. Thanks for the report. > With this, a GUI interface has the problem that it can't decide if > the GDB has some problems parsing the command given to it or not > because it scans for the "^error" string as result. With 6.4 this > doesn't work any more. This only happens if you're sending CLI commands (i.e. commands which don't start with a "-") to GDB directly. Otherwise you'll get the expected ^error. A better way to do this than relying on "the CLI hack" for unknown commands is to use the new -interpreter-exec, and that will return the error OK: zz &"zz\n" &"Undefined command: \"zz\". Try \"help\".\n" ^done (gdb) -interpreter-exec console "zz" &"Undefined command: \"zz\". Try \"help\".\n" ^error,msg="Undefined command: \"zz\". Try \"help\"." (gdb) -- Daniel Jacobowitz CodeSourcery