This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: call_function_by_hand doesn't restore target async?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]