Blame SOURCES/gdb-btrobust.patch

e1d87d
This should fix the error  with glib.  An error message will still be
e1d87d
printed, but a default backtrace will occur in this case.
e1d87d
e1d87d
--
e1d87d
e1d87d
Index: gdb-7.12.50.20170226/gdb/python/py-framefilter.c
e1d87d
===================================================================
e1d87d
--- gdb-7.12.50.20170226.orig/gdb/python/py-framefilter.c	2017-02-26 21:33:23.150618708 +0100
e1d87d
+++ gdb-7.12.50.20170226/gdb/python/py-framefilter.c	2017-02-26 21:33:29.993667179 +0100
e1d87d
@@ -1388,6 +1388,7 @@
e1d87d
 				       htab_eq_pointer,
e1d87d
 				       NULL));
e1d87d
 
e1d87d
+  int count_printed = 0;
e1d87d
   while (true)
e1d87d
     {
e1d87d
       gdbpy_ref<> item (PyIter_Next (iterable.get ()));
e1d87d
@@ -1397,7 +1398,7 @@
e1d87d
 	  if (PyErr_Occurred ())
e1d87d
 	    {
e1d87d
 	      gdbpy_print_stack ();
e1d87d
-	      return EXT_LANG_BT_ERROR;
e1d87d
+	      return count_printed > 0 ? EXT_LANG_BT_ERROR : EXT_LANG_BT_NO_FILTERS;
e1d87d
 	    }
e1d87d
 	  break;
e1d87d
 	}
e1d87d
@@ -1409,6 +1410,7 @@
e1d87d
 	 error and continue with other frames.  */
e1d87d
       if (success == EXT_LANG_BT_ERROR)
e1d87d
 	gdbpy_print_stack ();
e1d87d
+      count_printed++;
e1d87d
     }
e1d87d
 
e1d87d
   return success;