This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Avoid breakpoint query in MI


 > 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  <nickrob@snap.net.nz>

	* 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) \


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]