Bug 8535 - [RFC]: Disallow ObjC search when resetting breakpoint.
Summary: [RFC]: Disallow ObjC search when resetting breakpoint.
Status: RESOLVED FIXED
Alias: None
Product: gdb
Classification: Unclassified
Component: objc (show other bugs)
Version: unknown
: P3 normal
Target Milestone: 7.4
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on: 11657
Blocks: 13105
  Show dependency treegraph
 
Reported: 2003-10-27 19:28 UTC by Adam Fedor
Modified: 2011-12-06 19:05 UTC (History)
3 users (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Adam Fedor 2003-10-27 19:28:00 UTC
[Converted from Gnats 1430]

This patch fixes PR objc/1238, where you get frustrating behavior if
there is an ObjC method with the same name as a function:

(gdb) break init
[0] cancel
[1] all
[2] -[MyObject init] at gdb-objc-test.m:50
[3] -[NewObject init] at gdb-objc-test.m:18
[4] init at gdb-objc-test.m:62
> 4
Breakpoint 1 at 0x10001a40: file gdb-objc-test.m, line 62.
(gdb) run
Starting program:
/home/users/fedor/src/gstep/Tester/shared_debug_obj/gdb-objc-test 
[0] cancel
[1] all
[2] -[MyObject init] at gdb-objc-test.m:50
[3] -[NewObject init] at gdb-objc-test.m:18
[4] init at gdb-objc-test.m:62
> 0
Error in re-setting breakpoint 1:
canceled
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 2249)]
[0] cancel
[1] all
[2] -[MyObject init] at gdb-objc-test.m:50
[3] -[NewObject init] at gdb-objc-test.m:18
[4] init at gdb-objc-test.m:62
> 
[... on and on ad infinitum ...]

What happens is that every time you try to reset a breakpoint,
decode_line_1 gets called and we search through all the ObjC selectors
for a match to the breakpoint and there are always multiple matches to
"init".

I don't particularly like the solution (It's the way Apple does it,
although it might be for more reasons than this, e.g. there's no reason
to go through the ObjC selector search when resetting a breakpoint
anyway). I can't think of any other way to do it though, unless perhaps
there is some way to canonicalize the symbol name for the breakpoint -
so it's something like "gdb-objc-test.m:init", and not just "init" -
then you won't get multiple matches.

Any comments?



--=-g72p7BUrTBrVnyNsZt1r
Content-Disposition: attachment; filename=allow_objc.patch
Content-Type: text/plain; name=allow_objc.patch; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

2003-10-16  Adam Fedor  <fedor@gnu.org>

	* gdb/linespec.c (decode_line_1): Search for ObjC selectors
	only if allow_objc_selectors_flag.
	* gdb/breakpoint.c (breakpoint_re_set_one): Don't allow search
	for ObjC selectors when resetting a breakpoint.

Index: gdb/breakpoint.c
===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.c,v
retrieving revision 1.132
diff -u -p -r1.132 breakpoint.c
--- gdb/breakpoint.c	13 Oct 2003 23:53:20 -0000	1.132
+++ gdb/breakpoint.c	17 Oct 2003 03:41:32 -0000
@@ -52,6 +52,8 @@
 
 #include "gdb-events.h"
 
+extern int allow_objc_selectors_flag;
+
 /* Prototypes for local functions. */
 
 static void until_break_command_continuation (struct continuation_arg *arg);
@@ -6854,7 +6856,9 @@ breakpoint_re_set_one (void *bint)
       set_language (b->language);
       input_radix = b->input_radix;
       s = b->addr_string;
+      allow_objc_selectors_flag = 0;
       sals = decode_line_1 (&s, 1, (struct symtab *) NULL, 0, (char ***) NULL);
+      allow_objc_selectors_flag = 1;
       for (i = 0; i < sals.nelts; i++)
 	{
 	  resolve_sal_pc (&sals.sals[i]);
Index: gdb/linespec.c
===================================================================
RCS file: /cvs/src/src/gdb/linespec.c,v
retrieving revision 1.51
diff -u -p -r1.51 linespec.c
--- gdb/linespec.c	2 Aug 2003 03:59:40 -0000	1.51
+++ gdb/linespec.c	17 Oct 2003 03:41:34 -0000
@@ -36,6 +36,8 @@
 #include "objc-lang.h"
 #include "linespec.h"
 
+int allow_objc_selectors_flag = 1;
+
 /* We share this one with symtab.c, but it is not exported widely. */
 
 extern char *operator_chars (char *, char **);
@@ -698,6 +700,7 @@ decode_line_1 (char **argptr, int funfir
 
   /* Check if the symbol could be an Objective-C selector.  */
 
+  if (allow_objc_selectors_flag)
   {
     struct symtabs_and_lines values;
     values = decode_objc (argptr, funfirstline, NULL,

Release:
cvs-2003-10-01

Environment:
Any Objective-C session
Comment 1 Daniel Jacobowitz 2003-10-27 22:35:32 UTC
From: Daniel Jacobowitz <drow@mvista.com>
To: fedor@doc.com
Cc: gdb-gnats@sources.redhat.com
Subject: Re: objc/1430: [RFC]: Disallow ObjC search when resetting breakpoint.
Date: Mon, 27 Oct 2003 17:35:32 -0500

 On Mon, Oct 27, 2003 at 07:18:37PM -0000, fedor@doc.com wrote:
 > 
 > >Number:         1430
 > >Category:       objc
 > >Synopsis:       [RFC]: Disallow ObjC search when resetting breakpoint.
 > >Confidential:   no
 > >Severity:       serious
 > >Priority:       medium
 > >Responsible:    unassigned
 > >State:          open
 > >Class:          patch
 > >Submitter-Id:   net
 > >Arrival-Date:   Mon Oct 27 19:28:00 UTC 2003
 > >Closed-Date:
 > >Last-Modified:
 > >Originator:     Adam Fedor
 > >Release:        cvs-2003-10-01
 > >Organization:
 > >Environment:
 > Any Objective-C session
 > >Description:
 > This patch fixes PR objc/1238, where you get frustrating behavior if
 > there is an ObjC method with the same name as a function:
 > 
 > (gdb) break init
 > [0] cancel
 > [1] all
 > [2] -[MyObject init] at gdb-objc-test.m:50
 > [3] -[NewObject init] at gdb-objc-test.m:18
 > [4] init at gdb-objc-test.m:62
 > > 4
 > Breakpoint 1 at 0x10001a40: file gdb-objc-test.m, line 62.
 > (gdb) run
 > Starting program:
 > /home/users/fedor/src/gstep/Tester/shared_debug_obj/gdb-objc-test 
 > [0] cancel
 > [1] all
 > [2] -[MyObject init] at gdb-objc-test.m:50
 > [3] -[NewObject init] at gdb-objc-test.m:18
 > [4] init at gdb-objc-test.m:62
 > > 0
 > Error in re-setting breakpoint 1:
 > canceled
 > [Thread debugging using libthread_db enabled]
 > [New Thread 16384 (LWP 2249)]
 > [0] cancel
 > [1] all
 > [2] -[MyObject init] at gdb-objc-test.m:50
 > [3] -[NewObject init] at gdb-objc-test.m:18
 > [4] init at gdb-objc-test.m:62
 > > 
 > [... on and on ad infinitum ...]
 > 
 > What happens is that every time you try to reset a breakpoint,
 > decode_line_1 gets called and we search through all the ObjC selectors
 > for a match to the breakpoint and there are always multiple matches to
 > "init".
 > 
 > I don't particularly like the solution (It's the way Apple does it,
 > although it might be for more reasons than this, e.g. there's no reason
 > to go through the ObjC selector search when resetting a breakpoint
 > anyway). I can't think of any other way to do it though, unless perhaps
 > there is some way to canonicalize the symbol name for the breakpoint -
 > so it's something like "gdb-objc-test.m:init", and not just "init" -
 > then you won't get multiple matches.
 > 
 > Any comments?
 
 The breakpoint patches I've started working on will need to solve this
 issue in general, not just for ObjC, so I'll need a solution.  I don't
 know quite what to do yet but I think it will involve saving all the
 options, and recording which ones were selected.
 
 -- 
 Daniel Jacobowitz
 MontaVista Software                         Debian GNU/Linux Developer
Comment 2 Sourceware Commits 2011-12-06 18:54:58 UTC
CVSROOT:	/cvs/src
Module name:	src
Changes by:	tromey@sourceware.org	2011-12-06 18:54:43

Modified files:
	gdb            : ChangeLog NEWS ada-lang.c ada-lang.h block.c 
	                 block.h breakpoint.c breakpoint.h c-lang.c 
	                 d-lang.c defs.h dwarf2loc.c dwarf2read.c 
	                 elfread.c f-lang.c infcmd.c jv-lang.c 
	                 language.c language.h linespec.c linespec.h 
	                 m2-lang.c minsyms.c objc-lang.c objc-lang.h 
	                 opencl-lang.c p-lang.c psymtab.c psymtab.h 
	                 skip.c solib-target.c source.c stack.c 
	                 symfile.h symtab.c symtab.h tracepoint.c 
	                 utils.c 
	gdb/cli        : cli-cmds.c 
	gdb/doc        : ChangeLog gdb.texinfo 
	gdb/mi         : mi-main.c 
	gdb/python     : py-type.c python.c 
	gdb/testsuite  : ChangeLog Makefile.in configure configure.ac 
	gdb/testsuite/gdb.ada: fullname_bp.exp homonym.exp 
	gdb/testsuite/gdb.base: break.exp list.exp sepdebug.exp 
	                        solib-symbol.exp solib-weak.exp 
	gdb/testsuite/gdb.cp: mb-ctor.exp mb-inline.exp mb-templates.exp 
	                      method2.exp ovldbreak.exp ovsrch.exp 
	                      ovsrch.h ovsrch3.cc ovsrch4.cc 
	                      re-set-overloaded.exp templates.exp 
	gdb/testsuite/gdb.objc: objcdecode.exp 
	gdb/testsuite/gdb.trace: tracecmd.exp 
	gdb/tui        : tui-winsource.c 
Added files:
	gdb/testsuite/gdb.linespec: Makefile.in body.h linespec.exp 
	                            lspec.cc lspec.h 
	gdb/testsuite/gdb.linespec/base/one: thefile.cc 
	gdb/testsuite/gdb.linespec/base/two: thefile.cc 

Log message:
	the "ambiguous linespec" series
	gdb
	2011-12-06  Joel Brobecker  <brobecker@acacore.com>
	
	* language.h (struct language_defn): Add new component
	la_symbol_name_compare.
	* symfile.h (struct quick_symbol_functions): Update the profile
	of parameter "name_matcher" for the expand_symtabs_matching
	method.  Update the documentation accordingly.
	* ada-lang.h (ada_name_for_lookup): Add declaration.
	* ada-lang.c (ada_name_for_lookup): New function, extracted out
	from ada_iterate_over_symbols.
	(ada_iterate_over_symbols): Do not encode symbol name anymore.
	(ada_expand_partial_symbol_name): Adjust profile.
	(ada_language_defn): Add value for la_symbol_name_compare field.
	* linespec.c: #include "ada-lang.h".
	(iterate_name_matcher): Add language parameter. Replace call
	to strcmp_iw by call to language->la_symbol_name_compare.
	(decode_variable): Encode COPY if current language is Ada.
	* dwarf2read.c (dw2_expand_symtabs_matching): Adjust profile
	of name_matcher parameter.  Adjust call to name_matcher.
	* psymtab.c (expand_symtabs_matching_via_partial): Likewise.
	(expand_partial_symbol_names): Update profile of parameter "fun".
	* psymtab.h (expand_partial_symbol_names): Update profile of
	parameter "fun".
	* symtab.c (demangle_for_lookup): Update function documentation.
	(search_symbols_name_matches): Add language parameter.
	(expand_partial_symbol_name): Likewise.
	* c-lang.c (c_language_defn, cplus_language_defn)
	(asm_language_defn, minimal_language_defn): Add value for
	la_symbol_name_compare field.
	* d-lang.c (d_language_defn): Likewise.
	* f-lang.c (f_language_defn): Ditto.
	* jv-lang.c (java_language_defn): Ditto.
	* m2-lang.c (m2_language_defn): Ditto.
	* objc-lang.c (objc_language_defn): Ditto.
	* opencl-lang.c (opencl_language_defn): Ditto.
	* p-lang.c (pascal_language_defn): Ditto.
	* language.c (unknown_language_defn, auto_language_defn)
	(local_language_defn): Ditto.
	
	2011-12-06  Tom Tromey  <tromey@redhat.com>
	
	* linespec.c (iterate_over_all_matching_symtabs): Use
	LA_ITERATE_OVER_SYMBOLS.
	(lookup_prefix_sym, add_matching_symbols_to_info): Likewise.
	(find_function_symbols, decode_variable): Remove Ada special
	case.
	* language.h (struct language_defn) <la_iterate_over_symbols>: New
	field.
	(LA_ITERATE_OVER_SYMBOLS): New macro.
	* language.c (unknown_language_defn, auto_language_defn)
	(local_language_defn): Update.
	* c-lang.c (c_language_defn, cplus_language_defn)
	(asm_language_defn, minimal_language_defn): Update.
	* d-lang.c (d_language_defn): Update.
	* f-lang.c (f_language_defn): Update.
	* jv-lang.c (java_language_defn): Update.
	* m2-lang.c (m2_language_defn): Update.
	* objc-lang.c (objc_language_defn): Update.
	* opencl-lang.c (opencl_language_defn): Update.
	* p-lang.c (pascal_language_defn): Update.
	* ada-lang.c (ada_iterate_over_symbols): New function.
	(ada_language_defn): Update.
	
	2011-12-06  Tom Tromey  <tromey@redhat.com>
	Joel Brobecker  <brobecker@acacore.com>
	
	PR breakpoints/13105, PR objc/8341, PR objc/8343, PR objc/8366,
	PR objc/8535, PR breakpoints/11657, PR breakpoints/11970,
	PR breakpoints/12023, PR breakpoints/12334, PR breakpoints/12856,
	PR shlibs/8929, PR shlibs/7393:
	* python/py-type.c (compare_maybe_null_strings): Rename from
	compare_strings.
	(check_types_equal): Update.
	* utils.c (compare_strings): New function.
	* tui/tui-winsource.c (tui_update_breakpoint_info): Update for
	location changes.
	* tracepoint.c (scope_info): Update.
	(trace_find_line_command): Use DECODE_LINE_FUNFIRSTLINE.
	* symtab.h (iterate_over_minimal_symbols)
	(iterate_over_some_symtabs, iterate_over_symtabs)
	(find_pcs_for_symtab_line, iterate_over_symbols)
	(demangle_for_lookup): Declare.
	(expand_line_sal): Remove.
	* symtab.c (iterate_over_some_symtabs, iterate_over_symtabs)
	(lookup_symtab_callback): New functions.
	(lookup_symtab): Rewrite.
	(demangle_for_lookup): New function, extract from
	lookup_symbol_in_language.
	(lookup_symbol_in_language): Use it.
	(iterate_over_symbols): New function.
	(find_line_symtab): Update.
	(find_pcs_for_symtab_line): New functions.
	(find_line_common): Add 'start' argument.
	(decode_line_spec): Update.  Change argument to 'flags', change
	interpretation.
	(append_expanded_sal): Remove.
	(append_exact_match_to_sals): Remove.
	(expand_line_sal): Remove.
	* symfile.h (struct quick_symbol_functions) <lookup_symtab>:
	Remove.
	<map_symtabs_matching_filename>: New field.
	* stack.c (func_command): Only look in the current program space.
	Use DECODE_LINE_FUNFIRSTLINE.
	* source.c (line_info): Set pspace on sal.  Check program space in
	the loop.  Use DECODE_LINE_LIST_MODE.
	(select_source_symtab): Use DECODE_LINE_FUNFIRSTLINE.
	* solib-target.c: Remove DEF_VEC_I(CORE_ADDR).
	* python/python.c (gdbpy_decode_line): Update.
	* psymtab.c (partial_map_expand_apply): New function.
	(partial_map_symtabs_matching_filename): Rename from
	lookup_partial_symbol.  Update arguments.
	(lookup_symtab_via_partial_symtab): Remove.
	(psym_functions): Update.
	* objc-lang.h (parse_selector, parse_method): Don't declare.
	(find_imps): Update.
	* objc-lang.c (parse_selector, parse_method): Now static.
	(find_methods): Change arguments.  Fill in a vector of symbol
	names.
	(uniquify_strings): New function.
	(find_imps): Change arguments.
	* minsyms.c (iterate_over_minimal_symbols): New function.
	* linespec.h (enum decode_line_flags): New.
	(struct linespec_sals): New.
	(struct linespec_result) <canonical>: Remove.
	<pre_expanded, addr_string, sals>: New fields.
	(destroy_linespec_result, make_cleanup_destroy_linespec_result)
	(decode_line_full): Declare.
	(decode_line_1): Update.
	* linespec.c (struct address_entry, struct linespec_state, struct
	collect_info): New types.
	(add_sal_to_sals_basic, add_sal_to_sals, hash_address_entry)
	(eq_address_entry, maybe_add_address): New functions.
	(total_number_of_methods): Remove.
	(iterate_name_matcher, iterate_over_all_matching_symtabs): New
	functions.
	(find_methods): Change arguments.  Don't canonicalize input.
	Simplify logic.
	(add_matching_methods, add_constructors)
	(build_canonical_line_spec): Remove.
	(filter_results, convert_results_to_lsals): New functions.
	(decode_line_2): Change arguments.  Rewrite for new data
	structures.
	(decode_line_internal): Rename from decode_line_1.  Change
	arguments.  Add cleanups.  Update for new data structures.
	(linespec_state_constructor, linespec_state_destructor)
	(decode_line_full, decode_line_1): New functions.
	(decode_indirect): Change arguments.  Update.
	(locate_first_half): Use skip_spaces.
	(decode_objc): Change arguments.  Update for new data structures.
	Simplify logic.
	(decode_compound): Change arguments.  Add cleanups.  Remove
	fallback code, replace with error.
	(struct decode_compound_collector): New type.
	(collect_one_symbol): New function.
	(lookup_prefix_sym): Change arguments.  Update.
	(compare_symbol_name, add_all_symbol_names_from_pspace)
	(find_superclass_methods ): New functions.
	(find_method): Rewrite.
	(struct symtab_collector): New type.
	(add_symtabs_to_list, collect_symtabs_from_filename): New
	functions.
	(symtabs_from_filename): Change API.  Rename from
	symtab_from_filename.
	(collect_function_symbols): New function.
	(find_function_symbols): Change API.  Rename from
	find_function_symbol.  Rewrite.
	(decode_all_digits): Change arguments.  Rewrite.
	(decode_dollar): Change arguments.  Use decode_variable.
	(decode_label): Change arguments.  Rewrite.
	(collect_symbols): New function.
	(minsym_found): Change arguments.  Rewrite.
	(check_minsym, search_minsyms_for_name)
	(add_matching_symbols_to_info): New function.
	(decode_variable): Change arguments.  Iterate over all symbols.
	(symbol_found): Remove.
	(symbol_to_sal): New function.
	(init_linespec_result, destroy_linespec_result)
	(cleanup_linespec_result, make_cleanup_destroy_linespec_result):
	New functions.
	(decode_digits_list_mode, decode_digits_ordinary): New functions.
	* dwarf2read.c (dw2_map_expand_apply): New function.
	(dw2_map_symtabs_matching_filename): Rename from
	dw2_lookup_symtab.  Change arguments.
	(dwarf2_gdb_index_functions): Update.
	* dwarf2loc.c: Remove DEF_VEC_I(CORE_ADDR).
	* defs.h (compare_strings): Declare.
	* cli/cli-cmds.c (compare_strings): Move to utils.c.
	(edit_command, list_command): Use DECODE_LINE_LIST_MODE.  Call
	filter_sals.
	(compare_symtabs, filter_sals): New functions.
	* breakpoint.h (struct bp_location) <line_number, source_file>:
	New fields.
	(struct breakpoint) <line_number, source_file>: Remove.
	<filter>: New field.
	* breakpoint.c (print_breakpoint_location, init_raw_breakpoint)
	(momentary_breakpoint_from_master, add_location_to_breakpoint):
	Update for changes to locations.
	(init_breakpoint_sal): Add 'filter' argument.  Set 'filter' on
	breakpoint.
	(create_breakpoint_sal): Add 'filter' argument.
	(remove_sal, expand_line_sal_maybe): Remove.
	(create_breakpoints_sal): Remove 'sals' argument.  Handle
	pre-expanded sals and the filter.
	(parse_breakpoint_sals): Use decode_line_full.
	(check_fast_tracepoint_sals): Use get_sal_arch.
	(create_breakpoint): Create a linespec_sals.  Update.
	(break_range_command): Use decode_line_full.  Update.
	(until_break_command): Update.
	(clear_command): Update match conditions for linespec.c changes.
	Use DECODE_LINE_LIST_MODE.
	(say_where): Update for changes to locations.
	(bp_location_dtor): Free 'source_file'.
	(base_breakpoint_dtor): Free 'filter'.  Don't free 'source_file'.
	(update_static_tracepoint): Update for changes to locations.
	(update_breakpoint_locations): Disable ranged breakpoint if too
	many locations match.  Update.
	(addr_string_to_sals): Use decode_line_full.  Resolve all sal
	PCs.
	(breakpoint_re_set_default): Don't call expand_line_sal_maybe.
	(decode_line_spec_1): Update.  Change argument name to 'flags',
	change interpretation.
	* block.h (block_containing_function): Declare.
	* block.c (block_containing_function): New function.
	* skip.c (skip_function_command): Update.
	(skip_re_set): Update.
	* infcmd.c (jump_command): Use DECODE_LINE_FUNFIRSTLINE.
	* mi/mi-main.c (mi_cmd_trace_find): Use DECODE_LINE_FUNFIRSTLINE.
	* NEWS: Add entry.
	
	2011-12-06  Tom Tromey  <tromey@redhat.com>
	
	* elfread.c (elf_gnu_ifunc_resolver_return_stop): Allow
	breakpoint's pspace to be NULL.
	* breakpoint.h (struct breakpoint) <pspace>: Update comment.
	* breakpoint.c (init_raw_breakpoint): Conditionally set
	breakpoint's pspace.
	(init_breakpoint_sal): Don't set breakpoint's pspace.
	(prepare_re_set_context): Conditionally switch program space.
	(addr_string_to_sals): Check executing_startup on location's
	program space.
	
	2011-12-06  Tom Tromey  <tromey@redhat.com>
	
	* breakpoint.h (enum enable_state) <bp_startup_disabled>: Remove.
	* breakpoint.c (should_be_inserted): Explicitly check if program
	space is executing startup.
	(describe_other_breakpoints): Update.
	(disable_breakpoints_before_startup): Change executing_startup
	earlier.  Remove loop.
	(enable_breakpoints_after_startup): Likewise.
	(init_breakpoint_sal): Don't use bp_startup_disabled.
	(create_breakpoint): Don't use bp_startup_disabled.
	(update_global_location_list): Use should_be_inserted.
	(bkpt_re_set): Update.
	gdb/testsuite
	2011-12-06  Joel Brobecker  <brobecker@acacore.com>
	
	* gdb.ada/fullname_bp.exp: Add tests for other valid linespecs
	involving a fully qualified function name.
	
	2011-12-06  Tom Tromey  <tromey@redhat.com>
	
	* gdb.ada/homonym.exp: Add three breakpoint tests.
	
	2011-12-06  Tom Tromey  <tromey@redhat.com>
	
	* gdb.base/solib-weak.exp (do_test): Remove kfail.
	* gdb.trace/tracecmd.exp: Disable pending breakpoints earlier.
	* gdb.objc/objcdecode.exp: Update for output changes.
	* gdb.linespec/linespec.exp: New file.
	* gdb.linespec/lspec.cc: New file.
	* gdb.linespec/lspec.h: New file.
	* gdb.linespec/body.h: New file.
	* gdb.linespec/base/two/thefile.cc: New file.
	* gdb.linespec/base/one/thefile.cc: New file.
	* gdb.linespec/Makefile.in: New file.
	* gdb.cp/templates.exp (test_template_breakpoints): Update for
	output changes.
	* gdb.cp/re-set-overloaded.exp: Remove kfail.
	* gdb.cp/ovldbreak.exp: Update for output changes.  "all" test now
	makes one breakpoint.
	* gdb.cp/method2.exp (test_break): Update for output changes.
	* gdb.cp/mb-templates.exp: Update for output changes.
	* gdb.cp/mb-inline.exp: Update for output changes.
	* gdb.cp/mb-ctor.exp: Update for output changes.
	* gdb.cp/ovsrch.exp: Use fully-qualified names.
	* gdb.base/solib-symbol.exp: Run to main later.  Breakpoint now
	has multiple matches.
	* gdb.base/sepdebug.exp: Disable pending breakpoints.  Update for
	error message change.
	* gdb.base/list.exp (test_list_filename_and_number): Update for
	error message change.
	* gdb.base/break.exp: Disable pending breakpoints.  Update for
	output changes.
	* configure.ac: Add gdb.linespec.
	* configure: Rebuild.
	* Makefile.in (ALL_SUBDIRS): Add gdb.linespec.
	gdb/doc
	2011-12-06  Tom Tromey  <tromey@redhat.com>
	
	* gdb.texinfo (Set Breaks): Update for new behavior.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ChangeLog.diff?cvsroot=src&r1=1.13580&r2=1.13581
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/NEWS.diff?cvsroot=src&r1=1.471&r2=1.472
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ada-lang.c.diff?cvsroot=src&r1=1.317&r2=1.318
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ada-lang.h.diff?cvsroot=src&r1=1.68&r2=1.69
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/block.c.diff?cvsroot=src&r1=1.25&r2=1.26
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/block.h.diff?cvsroot=src&r1=1.24&r2=1.25
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/breakpoint.c.diff?cvsroot=src&r1=1.626&r2=1.627
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/breakpoint.h.diff?cvsroot=src&r1=1.166&r2=1.167
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/c-lang.c.diff?cvsroot=src&r1=1.94&r2=1.95
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/d-lang.c.diff?cvsroot=src&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/defs.h.diff?cvsroot=src&r1=1.305&r2=1.306
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/dwarf2loc.c.diff?cvsroot=src&r1=1.137&r2=1.138
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/dwarf2read.c.diff?cvsroot=src&r1=1.584&r2=1.585
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/elfread.c.diff?cvsroot=src&r1=1.119&r2=1.120
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/f-lang.c.diff?cvsroot=src&r1=1.66&r2=1.67
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/infcmd.c.diff?cvsroot=src&r1=1.290&r2=1.291
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/jv-lang.c.diff?cvsroot=src&r1=1.94&r2=1.95
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/language.c.diff?cvsroot=src&r1=1.102&r2=1.103
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/language.h.diff?cvsroot=src&r1=1.72&r2=1.73
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/linespec.c.diff?cvsroot=src&r1=1.131&r2=1.132
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/linespec.h.diff?cvsroot=src&r1=1.14&r2=1.15
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/m2-lang.c.diff?cvsroot=src&r1=1.60&r2=1.61
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/minsyms.c.diff?cvsroot=src&r1=1.84&r2=1.85
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/objc-lang.c.diff?cvsroot=src&r1=1.98&r2=1.99
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/objc-lang.h.diff?cvsroot=src&r1=1.20&r2=1.21
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/opencl-lang.c.diff?cvsroot=src&r1=1.12&r2=1.13
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/p-lang.c.diff?cvsroot=src&r1=1.60&r2=1.61
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/psymtab.c.diff?cvsroot=src&r1=1.35&r2=1.36
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/psymtab.h.diff?cvsroot=src&r1=1.9&r2=1.10
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/skip.c.diff?cvsroot=src&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/solib-target.c.diff?cvsroot=src&r1=1.22&r2=1.23
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/source.c.diff?cvsroot=src&r1=1.127&r2=1.128
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/stack.c.diff?cvsroot=src&r1=1.242&r2=1.243
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/symfile.h.diff?cvsroot=src&r1=1.99&r2=1.100
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/symtab.c.diff?cvsroot=src&r1=1.287&r2=1.288
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/symtab.h.diff?cvsroot=src&r1=1.192&r2=1.193
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/tracepoint.c.diff?cvsroot=src&r1=1.240&r2=1.241
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/utils.c.diff?cvsroot=src&r1=1.267&r2=1.268
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/cli/cli-cmds.c.diff?cvsroot=src&r1=1.119&r2=1.120
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/doc/ChangeLog.diff?cvsroot=src&r1=1.1253&r2=1.1254
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/doc/gdb.texinfo.diff?cvsroot=src&r1=1.903&r2=1.904
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/mi/mi-main.c.diff?cvsroot=src&r1=1.208&r2=1.209
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/python/py-type.c.diff?cvsroot=src&r1=1.32&r2=1.33
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/python/python.c.diff?cvsroot=src&r1=1.78&r2=1.79
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/ChangeLog.diff?cvsroot=src&r1=1.2966&r2=1.2967
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/Makefile.in.diff?cvsroot=src&r1=1.39&r2=1.40
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/configure.diff?cvsroot=src&r1=1.37&r2=1.38
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/configure.ac.diff?cvsroot=src&r1=1.20&r2=1.21
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.ada/fullname_bp.exp.diff?cvsroot=src&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.ada/homonym.exp.diff?cvsroot=src&r1=1.6&r2=1.7
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.base/break.exp.diff?cvsroot=src&r1=1.48&r2=1.49
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.base/list.exp.diff?cvsroot=src&r1=1.25&r2=1.26
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.base/sepdebug.exp.diff?cvsroot=src&r1=1.29&r2=1.30
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.base/solib-symbol.exp.diff?cvsroot=src&r1=1.8&r2=1.9
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.base/solib-weak.exp.diff?cvsroot=src&r1=1.11&r2=1.12
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.cp/mb-ctor.exp.diff?cvsroot=src&r1=1.9&r2=1.10
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.cp/mb-inline.exp.diff?cvsroot=src&r1=1.9&r2=1.10
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.cp/mb-templates.exp.diff?cvsroot=src&r1=1.12&r2=1.13
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.cp/method2.exp.diff?cvsroot=src&r1=1.9&r2=1.10
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.cp/ovldbreak.exp.diff?cvsroot=src&r1=1.17&r2=1.18
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.cp/ovsrch.exp.diff?cvsroot=src&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.cp/ovsrch.h.diff?cvsroot=src&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.cp/ovsrch3.cc.diff?cvsroot=src&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.cp/ovsrch4.cc.diff?cvsroot=src&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.cp/re-set-overloaded.exp.diff?cvsroot=src&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.cp/templates.exp.diff?cvsroot=src&r1=1.29&r2=1.30
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.linespec/Makefile.in.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.linespec/body.h.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.linespec/linespec.exp.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.linespec/lspec.cc.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.linespec/lspec.h.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.linespec/base/one/thefile.cc.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.linespec/base/two/thefile.cc.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.objc/objcdecode.exp.diff?cvsroot=src&r1=1.10&r2=1.11
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.trace/tracecmd.exp.diff?cvsroot=src&r1=1.21&r2=1.22
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/tui/tui-winsource.c.diff?cvsroot=src&r1=1.42&r2=1.43
Comment 3 Tom Tromey 2011-12-06 19:05:47 UTC
Fixed.