[RFC 0/2, gdbserver] Set linux target in async mode in default

Yao Qi yao@codesourcery.com
Tue Sep 18 14:36:00 GMT 2012


On 09/18/2012 10:12 PM, Marc Khouzam wrote:
> To clarify, after this patch we can still use "-gdb-set target-async off"
> to turn off async mode right?
>

This patch doesn't change the behaviour from the GDB's and Eclipse's 
perspective.  We can still set target-async on or off in GDB side as needed.

IIUC, the term "async mode" in GDBserver is different from its 
counterpart in GDB.  In GDBserver, "async mode" means an "async event 
loop" which is used for non-stop and notification.  If we look at RSP,
there is no command to turn "async mode" on or off directly in GDBserver 
(QNonStop can start async mode on linux target), the state of "async 
mode" of GDBserver is unknown to GDB, and vice versa.

In current GDBserver/linux, we have only two modes, 'non-stop with 
async-event-loop' and 'all-stop without async-event-loop'.  This patch 
only changes the latter to 'all-stop with async-event-loop', so that 
async notification can work on top it.  At the same time, GDB still 
works in both "target-async on" and "target-async off" with this patched 
GDbserver.

> Eclipse currently uses non-async mode for all-stop and some code
> is based on that assumption (e.g., interrupting the target)
> so we need to keep non-async available.

Forgot to mention in my mail that I run testsuite with 
{native-gdbserver, native-extended-gdbserver} x {async, sync} (in GDB 
side), and no regression.

-- 
Yao



More information about the Gdb-patches mailing list