call_function_by_hand doesn't restore target async?
Pedro Alves
pedro@codesourcery.com
Thu Dec 4 21:33:00 GMT 2008
On Thursday 04 December 2008 21:23:16, Pedro Alves wrote:
> Right, it doesn't. inf-loop.c:inferior_event_handler has a
> drastic attitude about exceptions --- it always pops the target, which
> means that a cleanup will would most of the times set the async mask
> in the wrong target, and thus say, e.g., remote_async_mask_value
> will still be left dangling... I think that adjusting the
> target_wait interface like described above would be the best way
> to fix this.
Hmmm, sorry, that's a thinko. When doing an infcall, of course you
don't go through fetch_inferior_event... So a cleanup would indeed
fix most cases, although a few times, like when remote.c pops the
target due to losing the connection, a cleanup wil still set the
async mask in the wrong target. (The parameter to target_wait
would solve this 100%).
Don't you love having two ways to do the same thing?
--
Pedro Alves
More information about the Gdb
mailing list