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]

[PATCH] Avoid breakpoint query in MI


This updates my earlier patch
(http://sourceware.org/ml/gdb-patches/2008-01/msg00421.html) from the thread
"bug in mi when setting breakpoint" started last year by Dodji Seketeli.  It is
simplified by Joel's recent patch for multiple symbols and Vladimir's concept
of top-level interpreter.

I see the default for multiple-symbols is 'all' (it used to be 'ask', perhaps
this change should be mentioned in NEWS) which might make this change more
acceptable.

-- 
Nick                                           http://www.inet.net.nz/~nickrob


2008-04-18  Nick Roberts  <nickrob@snap.net.nz>

	* interps.c (interp_top_level): New function.

	* interps.h: New extern.

	* linespec.c: Include interps.h and mi/mi-cmds.h.
	(decode_line_2): When using MI, always set all breakpoints in menu.


*** interps.h	15 Mar 2008 18:14:50 +1300	1.14
--- interps.h	18 Apr 2008 00:47:56 +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 void *interp_top_level (void);
  
  extern void clear_interpreter_hooks (void);
  

*** interps.c	15 Mar 2008 18:14:50 +1300	1.23
--- interps.c	16 Apr 2008 15:37:01 +1200	
*************** interpreter_completer (char *text, char 
*** 476,482 ****
    return matches;
  }
  
! extern void *
  top_level_interpreter_data (void)
  {
    gdb_assert (top_level_interpreter);
--- 476,488 ----
    return matches;
  }
  
! void *
! interp_top_level (void)
! {
!   return top_level_interpreter;  
! }
! 
! void *
  top_level_interpreter_data (void)
  {
    gdb_assert (top_level_interpreter);


*** linespec.c	18 Apr 2008 00:10:58 +1200	1.75
--- linespec.c	18 Apr 2008 00:21:29 +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 (interp_top_level ())))
      args = "1";
    else
      {


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