[RFA] dwarf2read.c: Call QUIT before reading debug info

Doug Evans dje@google.com
Sun Jun 16 05:56:00 GMT 2013


Hi.

gdb can hang and be uninterruptible for a long time if it's
in the midst of expanding a lot of debug info.
This patch adds some QUIT calls to fix that.

[We still have lots of problems with reading too much debug info,
but that's a separate problem.]

Ok to check in?

2013-06-15  Doug Evans  <dje@google.com>

	* dwarf2read.c (dw2_instantiate_symtab): Call QUIT.
	(dwarf2_read_symtab): Call QUIT.

Index: dwarf2read.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
retrieving revision 1.804
diff -u -p -r1.804 dwarf2read.c
--- dwarf2read.c	13 Jun 2013 23:01:37 -0000	1.804
+++ dwarf2read.c	16 Jun 2013 04:16:08 -0000
@@ -2346,6 +2346,7 @@ static struct symtab *
 dw2_instantiate_symtab (struct dwarf2_per_cu_data *per_cu)
 {
   gdb_assert (dwarf2_per_objfile->using_index);
+  QUIT;
   if (!per_cu->v.quick->symtab)
     {
       struct cleanup *back_to = make_cleanup (free_cached_comp_units, NULL);
@@ -6870,6 +6871,7 @@ static void
 dwarf2_read_symtab (struct partial_symtab *self,
 		    struct objfile *objfile)
 {
+  QUIT;
   if (self->readin)
     {
       warning (_("bug: psymtab for %s is already read in."),



More information about the Gdb-patches mailing list