public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
* gdb-7.3 blocker(s) - breakpoint/linespec
@ 2011-06-08 18:12 Jan Kratochvil
  2011-07-02 20:51 ` Jan Kratochvil
  0 siblings, 1 reply; 2+ messages in thread
From: Jan Kratochvil @ 2011-06-08 18:12 UTC (permalink / raw)
  To: gdb; +Cc: Keith Seitz

Hi,

I was asked to restate the pending patches which IMO block the gdb-7.3
release:
	http://sourceware.org/gdb/wiki/GDB_7.3_Release

Particularly the part:
	DWARF2/physname regression PR c++/12506: 

which I consider rather as a general catch-all of the physname regressions:
gdb-7.1: some baseline
42284fd: physname applied
gdb-7.2: some regressions like PR c++/12506 can be seen
gdb-7.3: There should be no regressions against either gdb-7.1 or gdb-7.2.

The last point is tricky as physname brought in some new features so one
cannot even revert it if one would want to.  One such new gdb-7.2 feature was
tab-completable name `name(params)' for template functions with demangled name
`int name(params)'.

There was patch by Keith:
	[RFA] c++/12506
	http://sourceware.org/ml/gdb-patches/2011-03/msg00189.html
but that one is concluded as invalid.  (The testcase may be applicable.)

There is now patch by Keith:
	[RFA] 12266 (typedef'd parameters) revisited again
	http://sourceware.org/ml/gdb-patches/2011-06/msg00062.html
which I already commented in
	Re: [RFA] 12266 (typedef'd parameters) revisited again - what should go for gdb-7.3?
	http://sourceware.org/ml/gdb-patches/2011-06/msg00101.html
as a summary:
 * also fixes PR 12506 - but the DW_TAG_linkage_name reader of mine is a more
        complete fix - as long as gcc still produces DW_TAG_MIPS_linkage_name.
 * implements new feature to: break funcname(typedefparam1,typedefparam2)
   But such specification never worked in any GDB before so I do not find it
   a gdb-7.3 blocker.  It may be an important enough feature to land it on the
   branch (IMO not - 7.3 is very late now, let the other maintainers decide).

Then there are patches by me which try to catch any regressions since gdb-7.1
by gdb-breakpoint*.pl test scripts crafted for this purpose and posted in:
	Re: [RFA] 12266 (typedef'd parameters) revisited again
	http://sourceware.org/ml/gdb-patches/2011-06/msg00067.html

One test run takes 4 hours on my box which is a bit inconvenient.  I have
tested everything only on libstdc++.so and libwebkitgtk.so and only one
particular `break' type in GDB.  I do not say the fixes I push for fix all the
regressions but it is at least the first step, IMO sufficient to be able to at
least place a breakpoint some way - like people want to in various bugreports.


Mandatory patches to fix physname regressions (=against FSF gdb-7.1).  They
are in no particular order but with one-line fix ups they are all applicable:

[patch] Remove DMGL_VERBOSE
http://sourceware.org/ml/gdb-patches/2011-06/msg00036.html
 - Unreplied, I find it mostly [obv]ious.

Re: [patch] Follow DW_AT_linkage_name for methods #2
http://sourceware.org/ml/gdb-patches/2011-06/msg00040.html
 - Already approved but it waits on GCC approval of its libiberty/ part:
	[gcc patch 0/3] libiberty: New DMGL_RET_DROP
	http://gcc.gnu.org/ml/gcc-patches/2011-06/msg00150.html

[patch 1/2] physname reg.: linespec minsym fallback
http://sourceware.org/ml/gdb-patches/2011-06/msg00079.html
 - In fact unreplied.

[patch 2/2] physname reg.: linespec eager keep_name_info
http://sourceware.org/ml/gdb-patches/2011-06/msg00080.html
 - Unreplied.

Re: [patch] physname regression: Non-matching type false breakpoint
http://sourceware.org/ml/gdb-patches/2011-06/msg00089.html
 - Replied (possibly approved) by Pedro.

The patches above give me zero gdb-breakpoint*.pl regressions as stated in
that mail referenced above:
	Re: [RFA] 12266 (typedef'd parameters) revisited again
	http://sourceware.org/ml/gdb-patches/2011-06/msg00067.html


Additionally related to this patches:

Re: [patch] Fix C++ demangling of minsyms with symver
http://sourceware.org/ml/gdb-patches/2011-06/msg00045.html
 - Looks like approved but this has never been a regressions and the fix IMO
   does not affect real world users, planning to check it only in gdb-7.4+.

Related Bugs I have opened which are not fixed but they are not regressions:

Assertion `found' failed.
http://sourceware.org/bugzilla/show_bug.cgi?id=12822
 - My fix of PR 12573 was incomplete waiting on gcc -frecord-gcc-switches
   (GCC PR 32998), not sure if it the reason here or not.

physname: discrepancies between DW_AT_name and demangler
http://sourceware.org/bugzilla/show_bug.cgi?id=12823
 - It is more an item to check for future DW_AT_linkage_name-less
   size-optimized .debug files depending on correct physname computation.

Too slow break on -O2 -g code
http://sourceware.org/bugzilla/show_bug.cgi?id=12828
 - GDB hangs expanding CUs, it is strongly interdependent with PR 10738
   (Cannot set breakpoint on inlined function).


Thanks,
Jan

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: gdb-7.3 blocker(s) - breakpoint/linespec
  2011-06-08 18:12 gdb-7.3 blocker(s) - breakpoint/linespec Jan Kratochvil
@ 2011-07-02 20:51 ` Jan Kratochvil
  0 siblings, 0 replies; 2+ messages in thread
From: Jan Kratochvil @ 2011-07-02 20:51 UTC (permalink / raw)
  To: gdb; +Cc: Keith Seitz, Joel Brobecker

On Wed, 08 Jun 2011 20:12:20 +0200, Jan Kratochvil wrote:
> I was asked to restate the pending patches which IMO block the gdb-7.3
> release:
> 	http://sourceware.org/gdb/wiki/GDB_7.3_Release
> 
> Particularly the part:
> 	DWARF2/physname regression PR c++/12506: 
[...]
> Mandatory patches to fix physname regressions (=against FSF gdb-7.1).  They
> are in no particular order but with one-line fix ups they are all applicable:
> 
> [patch] Remove DMGL_VERBOSE
> http://sourceware.org/ml/gdb-patches/2011-06/msg00036.html
>  - Unreplied, I find it mostly [obv]ious.
> 
> Re: [patch] Follow DW_AT_linkage_name for methods #2
> http://sourceware.org/ml/gdb-patches/2011-06/msg00040.html
>  - Already approved but it waits on GCC approval of its libiberty/ part:
> 	[gcc patch 0/3] libiberty: New DMGL_RET_DROP
> 	http://gcc.gnu.org/ml/gcc-patches/2011-06/msg00150.html
> 
> [patch 1/2] physname reg.: linespec minsym fallback
> http://sourceware.org/ml/gdb-patches/2011-06/msg00079.html
>  - In fact unreplied.
> 
> [patch 2/2] physname reg.: linespec eager keep_name_info
> http://sourceware.org/ml/gdb-patches/2011-06/msg00080.html
>  - Unreplied.
> 
> Re: [patch] physname regression: Non-matching type false breakpoint
> http://sourceware.org/ml/gdb-patches/2011-06/msg00089.html
>  - Replied (possibly approved) by Pedro.
> 
> The patches above give me zero gdb-breakpoint*.pl regressions as stated in
> that mail referenced above:
> 	Re: [RFA] 12266 (typedef'd parameters) revisited again
> 	http://sourceware.org/ml/gdb-patches/2011-06/msg00067.html

Checked in HEAD and in 7.3.

The 7.3 backport was larger as there were some prerequisite patches, not
posting each commit to gdb-patches, only my working notes below for the
backported list.  There were about two very minor backports.


Thanks,
Jan


commit c0cfd78e8522c5ef61f77d5c613a0a0d7d6635fd
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Sat Jul 2 15:13:12 2011 +0000
 - merge with below

    gdb/testsuite/
    	* gdb.cp/m-static.exp: Call get_compiler_info.
    	(static const int initialized nowhere): Call setup_xfail for gcc <= 4.4.
    	* gdb.cp/pr9167.exp (p b): Likewise.
    	* gdb.cp/temargs.exp: Do not set have_pr_45024_fixed for gcc 4.6.
    	(test value of P in inner_m, test type of Z in inner_m): Call
    	setup_xfail for gcc <= 4.5.
    
    Conflicts:
    
    	gdb/testsuite/gdb.cp/temargs.exp

commit 4dc5b0e7836af7594fdb47061122a5655e5d4a82
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Sat Jul 2 12:08:44 2011 +0000
 - merge with above

    gdb/testsuite/
    	* gdb.cp/m-static.exp: Call get_compiler_info.
    	(static const int initialized nowhere): Call setup_xfail for gcc<=4.4.

commit c92bdb809c286916b2ee6c267dad6a58a5706a62
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Fri Jul 1 20:27:58 2011 +0000

    gdb/
    	* linespec.c (find_method): Accept the function type automatically only
    	if it was specified with parameter types.
    
    gdb/testsuite/
    	* gdb.cp/paren-type.cc: New files.
    	* gdb.cp/paren-type.exp: New files.

commit 67e102403d7a0b16395389587713e703b0267ab3
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Fri Jul 1 20:18:59 2011 +0000

    gdb/
    	Stop on first linespec terminator instead of eating what we can.
    	* linespec.c (is_linespec_boundary): New function.
    	(name_end): Remove function.
    	(keep_name_info): New parameter on_boundary, replace the body.
    	(decode_line_1): Provide the parameter to keep_name_info.
    	(decode_compound): Likewise.  Drop the trailing java return type
    	handling.  Twice.
    
    gdb/testsuite/
    	Stop on first linespec terminator instead of eating what we can.
    	* gdb.cp/minsym-fallback-main.cc (main): Call also C::operator ().
    	* gdb.cp/minsym-fallback.cc (C::operator ()): Define.
    	* gdb.cp/minsym-fallback.exp (break 'C::f()'): Change to ...
    	(break C::f()): ... this one.
    	(break C::operator()()): New test.
    	* gdb.cp/minsym-fallback.h (C::operator ()): Declare.
    	* gdb.java/jmisc.exp (break jmisc.main(java.lang.String[])int): New
    	test.

commit 2daaa790297294478cb724dbec677879580bb2cf
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Fri Jul 1 20:16:38 2011 +0000

    gdb/
    	Fall back linespec to minimal symbols.
    	* linespec.c (decode_line_1): New variable ex, saved_argptr.  Protect
    	decode_compound by TRY_CATCH, fall back on minsyms if it failed.
    	(find_method, symbol_found): Change error to cplusplus_error.
    
    gdb/testsuite/
    	Fall back linespec to minimal symbols.
    	* gdb.base/psymtab.exp (Don't search past end of psymtab.): Update the
    	error message.
    	* gdb.cp/cplusfuncs.exp (list foo::operator int*): Likewise.
    	* gdb.cp/minsym-fallback-main.cc: New file.
    	* gdb.cp/minsym-fallback.cc: New file.
    	* gdb.cp/minsym-fallback.exp: New file.
    	* gdb.cp/minsym-fallback.h: New file.

commit ff0f68a9f81b51cdfa2110af91cdcaa27d3dc746
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Fri Jul 1 19:19:13 2011 +0000
 - merge with below

    gdb/Changelog fix:
    	* symtab.c (symbol_find_demangled_name): Remove DMGL_VERBOSE.

commit 21c4d3196c52ae3cf2c65d1eb42b9b70fc9da374
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Fri Jul 1 19:18:35 2011 +0000
 - merge with above

    gdb/
    	* symtab.c (symbol_find_demangled_name): Likewise.
    
    gdb/testsuite/
    	* gdb.cp/no-dmgl-verbose.cc: New file.
    	* gdb.cp/no-dmgl-verbose.exp: New file.
    
    Conflicts:
    
    	gdb/testsuite/ChangeLog

commit 9e7800188627afaf57ab34bc74615c36baaf68d2
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Fri Jul 1 19:12:09 2011 +0000

    gdb/
    	* dwarf2read.c (check_physname): New variable.
    	(dwarf2_physname): Prefer DW_AT_linkage_name over dwarf2_compute_name.
    	(show_check_physname): New function.
    	(_initialize_dwarf2_read): Add `check-physname' for check_physname.
    
    gdb/doc/
    	* gdb.texinfo (Debugging Output): Document set debug
    	check-physname.
    
    gdb/testsuite/
    	* gdb.base/break-interp.exp (reach_1, test_ld): Allow also the prefix
    	__GI_.
    	* gdb.cp/psymtab-parameter.cc (func): Make it a template function.
    	(f): New function.
    	* gdb.cp/psymtab-parameter.exp (complete break 'func(): Rename to ...
    	(complete p 'func<short>(): ... here.
    	* gdb.dwarf2/dw2-linkage-name-trust-main.cc: New file.
    	* gdb.dwarf2/dw2-linkage-name-trust.S: New file.
    	* gdb.dwarf2/dw2-linkage-name-trust.exp: New file.
    	* gdb.cp/temargs.exp (test type of F in k3_m, test value of F in k3_m):
    	Make them KFAIL gcc/49546.
    
    Conflicts:
    
    	gdb/ChangeLog
    	gdb/doc/ChangeLog
    	gdb/testsuite/ChangeLog

commit 3c8211c0eb27b1490ebef317c8bedd2eff783c7d
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Fri Jul 1 18:32:06 2011 +0000
-+gdb_test "break $srcfile:$line" "Breakpoint 7.*" \
++gdb_test "break $srcfile:$line" "Breakpoint 6.*" \

    gdb/testsuite/
    	Test GCC PR debug/49546.
    	* gdb.cp/temargs.exp (set sixth breakpoint for temargs)
    	(test type of F in k3_m, test value of F in k3_m): New.
    	* gdb.cp/temargs.cc (struct S3, struct K3): New.
    	(main): New variable k3.  Call k3.k3_m.
    
    Conflicts:
    
    	gdb/testsuite/ChangeLog
    	gdb/testsuite/gdb.cp/temargs.cc
    	gdb/testsuite/gdb.cp/temargs.exp

commit f0c376c93cceeffce3e7b879c20a1ab9787e102d
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Fri Jul 1 17:30:47 2011 +0000

    merge from gcc
    
    libiberty/
    	PR debug/49408
    	* cp-demangle.c (d_print_comp): Suppress argument list for function
    	references by the '&' unary operator.  Keep also already processed
    	variant without the argument list.  Suppress argument list types for
    	function call used in an expression.
    	* testsuite/demangle-expected: Fix excessive argument list types in
    	`test for typed function in decltype'.  New testcase for no argument
    	list types printed.  3 new testcases for function references by the
    	'&' unary operator..
    
    Conflicts:
    
    	libiberty/ChangeLog

commit d5b397191d6242fa1b0941cdb328c421bf2b09a0
Author: DJ Delorie <dj@delorie.com>
Date:   Mon Jun 13 23:01:42 2011 +0000

    merge from gcc
    
    Conflicts:
    
    	include/ChangeLog
    	libiberty/ChangeLog

commit e19080df1d502deede4535c302971847b699da2c
Author: Keith Seitz <keiths@redhat.com>
Date:   Thu Jun 2 18:43:59 2011 +0000

    	* objc-lang.c (find_methods): Increment objfile_csym earlier.
    
    Conflicts:
    
    	gdb/ChangeLog

commit 835cf7647bf08d33e2c7286b45658cc58704b363
Author: Keith Seitz <keiths@redhat.com>
Date:   Tue May 31 22:13:51 2011 +0000

    	PR c++/12750
    	* linespec.c (get_search_block): New function.
    	(find_methods): Add FILE_SYMTATB parameter and use it and
    	get_search_block to pass an appropriate block to
    	lookup_symbol_in_namespace.
    	(decode_line_1): Record if *ARGPTR is single-quote enclosed.
    	Check if *ARGPTR starts with a filename first.
    	If it does, call locate_first_half again to locate the next
    	"first half" of the linespec.
    	Pass FILE_SYMTATB to decode_objc and decode_compound.
    	Swallow the trailing single-quote if IS_SQUOTE_ENCLOSED.
    	(locate_first_half): Stop on the first colon seen.
    	(decode_compound): Add FILE_SYMTAB parameter.
    	Pass FILE_SYMTAB to lookup_prefix_sym and find_method.
    	(lookup_prefix_sym): Add FILE_SYMTAB parameter and use
    	get_search_block with lookup_symbol.
    	(find_method): Add FILE_SYMTAB parameter and pass it to
    	find_methods.
    	(decode_objc): Use get_search_block.

commit f658463559c9f03672b0fd226e4941f159e65bc0
Author: Keith Seitz <keiths@redhat.com>
Date:   Tue May 31 21:54:06 2011 +0000

    	PR symtab/12704
    	* cp-namespace.c (ANONYMOUS_NAMESPACE_LEN): Remove.
    	(cp_scan_for_anonymous_namespaces): Use CP_ANONYMOUS_NAMESPACE_STR
    	and CP_ANONYMOUS_NAMESPACE_LEN.
    	(cp_is_anonymous): Likewise.
    	* cp-support.h (CP_ANONYMOUS_NAMESPACE_STR): Define.
    	(CP_ANONYMOUS_NAMESPACE_LEN): Define.
    	* dwarf2read.c (namespace_name): Likewise.
    	(fixup_partial_die): Likewise.
    	* linespec.c (decode_compound): If CP_ANONYMOUS_NAMESPACE_STR is
    	seen in the input, keep it.
    
    Conflicts:
    
    	gdb/ChangeLog

commit 2bdc820adfead6aa7fdb16242280473af1040d4e
Author: Keith Seitz <keiths@redhat.com>
Date:   Tue May 24 21:00:04 2011 +0000

    	PR breakpoint/12803
    	* linespec.c (keep_name_info): Add handling for "volatile" keyword.
    	(decode_compound): Unconditionally call	keep_name_info.
    
    Conflicts:
    
    	gdb/ChangeLog

commit 7f71565092a430e0a7509868b7279497db6f7cbe
Author: Tom Tromey <tromey@redhat.com>
Date:   Mon Apr 4 17:41:05 2011 +0000
+@@ -6071,7 +6071,6 @@ struct captured_parse_breakpoint_args
+     char **arg_p;
+     struct symtabs_and_lines *sals_p;
+     struct linespec_result *canonical_p;
+-    int *not_found_ptr;
+   };
+ 
+ struct lang_and_radix

    	* tracepoint.c (scope_info): Update.
    	* symtab.c (decode_line_spec): Update.
    	* python/python.c (gdbpy_decode_line): Update.
    	* linespec.h (decode_line_1): Update.
    	* linespec.c (decode_line_1): Remove 'not_found_ptr' argument.
    	(decode_compound, find_method, symtab_from_filename)
    	(decode_variable): Likewise.
    	* cli/cli-cmds.c (edit_command): Update.
    	(list_command): Update.
    	* breakpoint.c (parse_breakpoint_sals): Remove 'not_found_ptr'
    	argument.
    	(create_breakpoint): Update.
    	(until_break_command): Update.
    	(addr_string_to_sals): Update.
    	(decode_line_spec_1): Update.
    
    Conflicts:
    
    	gdb/ChangeLog
    	gdb/breakpoint.c

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-07-02 20:51 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-08 18:12 gdb-7.3 blocker(s) - breakpoint/linespec Jan Kratochvil
2011-07-02 20:51 ` Jan Kratochvil

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).