This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[commit/branch] workaround for PR/10966
- From: Joel Brobecker <brobecker at adacore dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 18 Feb 2010 20:02:25 -0500
- Subject: [commit/branch] workaround for PR/10966
Hello,
As discussed previously, I just applied on the gdb-7.1 branch a patch
that works around an assertion failure:
(gdb) b Foo::Foo
../../src/gdb/breakpoint.c:4797: internal-error: set_raw_breakpoint: Assertion
`sal.pspace != NULL' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
gdb/ChangeLog:
Workaround for PR/10966:
* linespec.c (add_matching_methods): Only match methods that are
in the VAR_DOMAIN and whose class is LOC_BLOCK.
Tested on x86_64-linux, checked in. The actual fix will come as part
of another larger effort (the expr-cumulative branch).
--
Joel
Index: linespec.c
===================================================================
RCS file: /cvs/src/src/gdb/linespec.c,v
retrieving revision 1.96
diff -u -u -p -r1.96 linespec.c
--- linespec.c 16 Feb 2010 20:51:49 -0000 1.96
+++ linespec.c 19 Feb 2010 00:58:25 -0000
@@ -313,7 +313,10 @@ add_matching_methods (int method_counter
NULL, VAR_DOMAIN,
language,
(int *) NULL);
- if (sym_arr[i1])
+ /* See PR10966. Remove check on symbol domain and class when
+ we stop using (bad) linkage names on constructors. */
+ if (sym_arr[i1] && (SYMBOL_DOMAIN (sym_arr[i1]) == VAR_DOMAIN
+ && SYMBOL_CLASS (sym_arr[i1]) == LOC_BLOCK))
i1++;
else
{