gdb_bfd_unref failed assertion on AIX.
authorJoel Brobecker <brobecker@gnat.com>
Tue, 2 Oct 2012 15:05:42 +0000 (15:05 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Tue, 2 Oct 2012 15:05:42 +0000 (15:05 +0000)
commit8f0ee2eb7cf9df1a173b72f1542a9b555d7b5cb8
tree0c0f339cb57aeaa6d9bee6b2df6e545dbac1a5c5
parent547c8182c5cb80c3c3eebf854fd77542bf401e6e
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.
gdb/ChangeLog
gdb/rs6000-nat.c