This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] Avoid breakpoint query in MI
- From: Nick Roberts <nickrob at snap dot net dot nz>
- To: gdb-patches at sourceware dot org
- Cc: dodji at seketeli dot org
- Date: Fri, 18 Apr 2008 00:50:26 +1200
- Subject: [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
{