From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 67473 invoked by alias); 8 Oct 2017 18:27:10 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 67453 invoked by uid 89); 8 Oct 2017 18:27:09 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: eggs.gnu.org Received: from eggs.gnu.org (HELO eggs.gnu.org) (208.118.235.92) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 08 Oct 2017 18:27:07 +0000 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e1GI2-00058t-Py for gdb@sourceware.org; Sun, 08 Oct 2017 14:27:06 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:41686) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e1GI2-00058p-Mq; Sun, 08 Oct 2017 14:27:02 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4291 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1e1GI1-0002QM-Ay; Sun, 08 Oct 2017 14:27:02 -0400 Date: Sun, 08 Oct 2017 18:27:00 -0000 Message-Id: <83shetsdg2.fsf@gnu.org> From: Eli Zaretskii To: Simon Marchi CC: gdb@sourceware.org In-reply-to: <8a3d7153-7486-032f-aabc-6c3453f96459@simark.ca> (message from Simon Marchi on Sun, 8 Oct 2017 13:51:39 -0400) Subject: Re: Breakpoint commands in MI mode and "backtrace" Reply-to: Eli Zaretskii References: <8360bqt0im.fsf@gnu.org> <8a3d7153-7486-032f-aabc-6c3453f96459@simark.ca> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-IsSubscribed: yes X-SW-Source: 2017-10/txt/msg00023.txt.bz2 > From: Simon Marchi > Date: Sun, 8 Oct 2017 13:51:39 -0400 > > It seems like even though we are executing CLI commands, the current interpreter > and uiout are the MI ones. I'm always confused by all these data structures, but > I managed to hack it to work with this: > > diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c > index 0a93e8b54f..bc8e1047c5 100644 > --- a/gdb/cli/cli-script.c > +++ b/gdb/cli/cli-script.c > @@ -482,7 +482,10 @@ execute_control_command (struct command_line *cmd) > { > /* A simple command, execute it and return. */ > std::string new_line = insert_user_defined_cmd_args (cmd->line); > - execute_command (&new_line[0], 0); > + > + scoped_restore_interp restorer (INTERP_CONSOLE); > + current_interpreter ()->exec (&new_line[0]); > + > ret = cmd->control_type; > break; > } > > Does that work for you? It might not be the right solution, but it's a start. This doesn't compile when applied to GDB 8.0 code. Can the same be done with the scoped_restore class instead? In any case, there are more instances of calls to execute_command in that function, and I guess they all need to be changed like that? Thanks.