This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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
 	{

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]