diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index dffd058..60452ba 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2011-07-12 Jan Kratochvil <jan.kratochvil@redhat.com> + + Fix occasional crash of CTRL-C during DWARF read in. + * dwarf2read.c (dwarf2_mark_helper): Return on NULL CU. + 2011-07-11 Tom Tromey <tromey@redhat.com> * regcache.c (struct regcache_descr): Fix typo. diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index a5bf1f7..fde5b6a 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -15455,6 +15455,13 @@ dwarf2_mark_helper (void **slot, void *data) struct dwarf2_per_cu_data *per_cu; per_cu = (struct dwarf2_per_cu_data *) *slot; + + /* cu->dependencies references may not yet have been ever read if QUIT aborts + reading of the chain. As such dependencies remain valid it is not much + useful to track and undo them during QUIT cleanups. */ + if (per_cu->cu == NULL) + return 1; + if (per_cu->cu->mark) return 1; per_cu->cu->mark = 1; |