From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29469 invoked by alias); 19 Apr 2008 06:17:53 -0000 Received: (qmail 29460 invoked by uid 22791); 19 Apr 2008 06:17:52 -0000 X-Spam-Check-By: sourceware.org Received: from viper.snap.net.nz (HELO viper.snap.net.nz) (202.37.101.25) by sourceware.org (qpsmtpd/0.31) with ESMTP; Sat, 19 Apr 2008 06:17:23 +0000 Received: from kahikatea.snap.net.nz (186.62.255.123.dynamic.snap.net.nz [123.255.62.186]) by viper.snap.net.nz (Postfix) with ESMTP id E1A173DA598; Sat, 19 Apr 2008 18:17:19 +1200 (NZST) Received: by kahikatea.snap.net.nz (Postfix, from userid 1000) id 6F37C8FC6D; Sat, 19 Apr 2008 18:17:17 +1200 (NZST) From: Nick Roberts MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <18441.36460.113972.229750@kahikatea.snap.net.nz> Date: Sat, 19 Apr 2008 14:12:00 -0000 To: Vladimir Prus Cc: gdb-patches@sources.redhat.com Subject: Re: [PATCH] Avoid breakpoint query in MI In-Reply-To: <200804180153.32013.ghost@cs.msu.su> References: <18439.18322.632208.43670@kahikatea.snap.net.nz> <18439.49189.568452.141569@kahikatea.snap.net.nz> <200804180153.32013.ghost@cs.msu.su> X-Mailer: VM 7.19 under Emacs 22.2.50.2 X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-04/txt/msg00406.txt.bz2 > I'm not qualified either to decide if I'm qualified to approve this patch :-) > As far as I'm concerned, this patch is OK. > > - Volodya OK. This is what I've committed. -- Nick http://www.inet.net.nz/~nickrob 2008-04-19 Nick Roberts * interps.c (top_level_interpreter): Rename static variable... (top_level_interpreter_ptr): ...to this. (top_level_interpreter): New function. * interps.h: New extern for top_level_interpreter. * linespec.c: Include interps.h and mi/mi-cmds.h. (decode_line_2): When using MI, always set all breakpoints in menu. * Makefile.in (linespec.o, mi-interp.o): Add dependencies. *** interps.c.~1.23.~ 2008-03-15 22:34:07.000000000 +1300 --- interps.c 2008-04-19 16:16:43.000000000 +1200 *************** void _initialize_interpreter (void); *** 81,87 **** static struct interp *interp_list = NULL; static struct interp *current_interpreter = NULL; ! static struct interp *top_level_interpreter = NULL; static int interpreter_initialized = 0; --- 81,87 ---- static struct interp *interp_list = NULL; static struct interp *current_interpreter = NULL; ! static struct interp *top_level_interpreter_ptr = NULL; static int interpreter_initialized = 0; *************** interp_set (struct interp *interp, int t *** 144,150 **** /* If we already have an interpreter, then trying to set top level interpreter is kinda pointless. */ gdb_assert (!top_level || !current_interpreter); ! gdb_assert (!top_level || !top_level_interpreter); if (current_interpreter != NULL) { --- 144,150 ---- /* If we already have an interpreter, then trying to set top level interpreter is kinda pointless. */ gdb_assert (!top_level || !current_interpreter); ! gdb_assert (!top_level || !top_level_interpreter_ptr); if (current_interpreter != NULL) { *************** interp_set (struct interp *interp, int t *** 165,171 **** current_interpreter = interp; if (top_level) ! top_level_interpreter = interp; /* We use interpreter_p for the "set interpreter" variable, so we need to make sure we have a malloc'ed copy for the set command to free. */ --- 165,171 ---- current_interpreter = interp; if (top_level) ! top_level_interpreter_ptr = interp; /* We use interpreter_p for the "set interpreter" variable, so we need to make sure we have a malloc'ed copy for the set command to free. */ *************** interpreter_completer (char *text, char *** 476,486 **** return matches; } ! extern void * top_level_interpreter_data (void) { ! gdb_assert (top_level_interpreter); ! return top_level_interpreter->data; } /* This just adds the "interpreter-exec" command. */ --- 476,492 ---- return matches; } ! struct interp * ! top_level_interpreter (void) ! { ! return top_level_interpreter_ptr; ! } ! ! void * top_level_interpreter_data (void) { ! gdb_assert (top_level_interpreter_ptr); ! return top_level_interpreter_ptr->data; } /* This just adds the "interpreter-exec" command. */ *** interps.h.~1.14.~ 2008-03-15 22:34:07.000000000 +1300 --- interps.h 2008-04-19 16:17:10.000000000 +1200 *************** extern int current_interp_display_prompt *** 66,71 **** --- 66,72 ---- extern void current_interp_command_loop (void); /* Returns opaque data associated with the top-level interpreter. */ extern void *top_level_interpreter_data (void); + extern struct interp *top_level_interpreter (void); extern void clear_interpreter_hooks (void); *** linespec.c.~1.75~ 2008-04-19 17:54:40.000000000 +1200 --- linespec.c 2008-04-19 09:56:08.000000000 +1200 *************** *** 36,41 **** --- 36,43 ---- #include "linespec.h" #include "exceptions.h" #include "language.h" + #include "interps.h" + #include "mi/mi-cmds.h" /* We share this one with symtab.c, but it is not exported widely. */ *************** See set/show multiple-symbol.")); *** 524,530 **** /* If select_mode is "all", then do not print the multiple-choice menu and act as if the user had chosen choice "1" (all). */ ! if (select_mode == multiple_symbols_all) args = "1"; else { --- 526,533 ---- /* If select_mode is "all", then do not print the multiple-choice menu and act as if the user had chosen choice "1" (all). */ ! if (select_mode == multiple_symbols_all ! || ui_out_is_mi_like_p (interp_ui_out (top_level_interpreter ()))) args = "1"; else { *** Makefile.in.~1.1001.~ 2008-04-19 10:53:43.000000000 +1200 --- Makefile.in 2008-04-19 18:03:52.000000000 +1200 *************** libunwind-frame.o: libunwind-frame.c $(d *** 2365,2372 **** $(gdb_string_h) $(libunwind_frame_h) $(complaints_h) linespec.o: linespec.c $(defs_h) $(symtab_h) $(frame_h) $(command_h) \ $(symfile_h) $(objfiles_h) $(source_h) $(demangle_h) $(value_h) \ ! $(completer_h) $(cp_abi_h) $(parser_defs_h) $(block_h) \ ! $(objc_lang_h) $(linespec_h) $(exceptions_h) $(language_h) linux-fork.o: linux-fork.c $(defs_h) $(inferior_h) $(regcache_h) $(gdbcmd_h) \ $(infcall_h) $(gdb_assert_h) $(gdb_string_h) $(linux_fork_h) \ $(linux_nat_h) $(gdb_wait_h) $(gdb_dirent_h) --- 2365,2372 ---- $(gdb_string_h) $(libunwind_frame_h) $(complaints_h) linespec.o: linespec.c $(defs_h) $(symtab_h) $(frame_h) $(command_h) \ $(symfile_h) $(objfiles_h) $(source_h) $(demangle_h) $(value_h) \ ! $(completer_h) $(cp_abi_h) $(parser_defs_h) $(block_h) $(interps_h) \ ! $(objc_lang_h) $(linespec_h) $(exceptions_h) $(language_h) $(mi_cmds_h) linux-fork.o: linux-fork.c $(defs_h) $(inferior_h) $(regcache_h) $(gdbcmd_h) \ $(infcall_h) $(gdb_assert_h) $(gdb_string_h) $(linux_fork_h) \ $(linux_nat_h) $(gdb_wait_h) $(gdb_dirent_h) *************** mi-getopt.o: $(srcdir)/mi/mi-getopt.c $( *** 3253,3259 **** mi-interp.o: $(srcdir)/mi/mi-interp.c $(defs_h) $(gdb_string_h) $(interps_h) \ $(event_top_h) $(event_loop_h) $(inferior_h) $(ui_out_h) $(top_h) \ $(exceptions_h) $(mi_main_h) $(mi_cmds_h) $(mi_out_h) \ ! $(mi_console_h) $(observer_h) $(gdbthread_h) $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-interp.c mi-main.o: $(srcdir)/mi/mi-main.c $(defs_h) $(target_h) $(inferior_h) \ $(gdb_string_h) $(exceptions_h) $(top_h) $(gdbthread_h) $(mi_cmds_h) \ --- 3253,3259 ---- mi-interp.o: $(srcdir)/mi/mi-interp.c $(defs_h) $(gdb_string_h) $(interps_h) \ $(event_top_h) $(event_loop_h) $(inferior_h) $(ui_out_h) $(top_h) \ $(exceptions_h) $(mi_main_h) $(mi_cmds_h) $(mi_out_h) \ ! $(mi_console_h) $(observer_h) $(gdbthread_h) $(interps_h) $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-interp.c mi-main.o: $(srcdir)/mi/mi-main.c $(defs_h) $(target_h) $(inferior_h) \ $(gdb_string_h) $(exceptions_h) $(top_h) $(gdbthread_h) $(mi_cmds_h) \