gdb_bfd_unref failed assertion on AIX.
Trying to run any program on AIX triggers a failed assertion: (gdb) run Starting program: /[...]/simple_main /[...]/gdb_bfd.c:288: internal-error: gdb_bfd_unref: Assertion `gdata->refc >= 1' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) What happens is that we have a loop where we forgot to update the value of "last", resulting in the loop unref'ing the same BFD over and over again. We bomb the second time around, when triggering an assertion on the ref counter. gdb/ChangeLog: * rs6000-nat.c (add_vmap): Set "last" to "next" after having unref'ed it.
This commit is contained in:
parent
547c8182c5
commit
8f0ee2eb7c
|
@ -1,3 +1,8 @@
|
||||||
|
2012-10-02 Joel Brobecker <brobecker@adacore.com>
|
||||||
|
|
||||||
|
* rs6000-nat.c (add_vmap): Set "last" to "next" after having
|
||||||
|
unref'ed it.
|
||||||
|
|
||||||
2012-10-01 Andrew Burgess <aburgess@broadcom.com>
|
2012-10-01 Andrew Burgess <aburgess@broadcom.com>
|
||||||
|
|
||||||
* target.c (simple_search_memory): Include access length in
|
* target.c (simple_search_memory): Include access length in
|
||||||
|
|
|
@ -771,6 +771,7 @@ add_vmap (LdInfo *ldi)
|
||||||
|
|
||||||
next = gdb_bfd_openr_next_archived_file (abfd, last);
|
next = gdb_bfd_openr_next_archived_file (abfd, last);
|
||||||
gdb_bfd_unref (last);
|
gdb_bfd_unref (last);
|
||||||
|
last = next;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!last)
|
if (!last)
|
||||||
|
|
Loading…
Reference in New Issue