Fix normal_stop latent bug
authorPedro Alves <palves@redhat.com>
Thu, 7 Mar 2019 16:35:06 +0000 (16:35 +0000)
committerPedro Alves <palves@redhat.com>
Thu, 7 Mar 2019 16:35:06 +0000 (16:35 +0000)
commitfe7266674110f34eacf2e9d2b308f76d33ce50ed
tree3fbd535992b05f1586534c519f0989c48e7d857a
parent7584bb30cf380cff9cc3914b1b523c5a1a5b4302
Fix normal_stop latent bug

TARGET_WAITKIND_NO_RESUMED doesn't have an associated event thread, so
we shouldn't be referring to inferior_thread() assuming it points to
one.

This was caught on the multi-target branch, where we always switch to
no-thread-selected whenever we start handling an event, exactly to
catch places that incorrectly use "inferior_ptid/inferior_thread()"
without switching to the right event thread / target.

Here, on the branch, we assert in inferior_thread() because
TARGET_WAITKIND_NO_RESUMED doesn't have an associated event thread, so
inferior_ptid is still null_ptid.

gdb/ChangeLog:
2019-03-07  Pedro Alves  <palves@redhat.com>

* infrun.c (normal_stop): Also check for
TARGET_WAITKIND_NO_RESUMED before referring to inferior_thread().
gdb/ChangeLog
gdb/infrun.c