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