gdb: Run INF_EXEC_COMPLETE handler for additional cases
authorAndrew Burgess <andrew.burgess@embecosm.com>
Wed, 23 May 2018 16:06:02 +0000 (17:06 +0100)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Tue, 12 Jun 2018 20:15:33 +0000 (21:15 +0100)
commit1840d81a201932a2d5ad5b089aad85943a5a0a82
tree6ca4da94d4907f27d462b52ad5ae42e46e4696e2
parent9516f85aea1d9a34d1cd3f59b7b9eeb590e58c70
gdb: Run INF_EXEC_COMPLETE handler for additional cases

When making an inferior call, and non-stop mode is off, then, once the
inferior call is complete all threads will be stopped, and we should
run the INF_EXEC_COMPLETE handler.  This will result in a call to
'target_async(0)' to remove the event handlers for the target.

This was discussed by Yao Qi in this mailing list thread:

    https://sourceware.org/ml/gdb/2017-10/msg00032.html

Without this then the target event handlers are left in place even
when the target is stopped, which is different to what happens during
a standard stop proceedure (for example when one thread hits a
breakpoint).

gdb/ChangeLog:

PR gdb/22882
* infrun.c (fetch_inferior_event): If GDB is not proceeding then
run INF_EXEC_COMPLETE handler, even when not calling normal_stop.
Move should_notify_stop local into more inner scope.
gdb/ChangeLog
gdb/infrun.c