Node: General Query Packets, Next: Register Packet Format, Previous: Stop Reply Packets, Up: Remote Protocol
The following set and query packets have already been defined.
q
C
-- current thread
Reply:
QC
pid
*
q
fThreadInfo
- all thread ids
q
sThreadInfo
Obtain a list of active thread ids from the target (OS). Since there
may be too many active threads to fit into one reply packet, this query
works iteratively: it may require more than one query/reply sequence to
obtain the entire list of threads. The first query of the sequence will
be the qf
ThreadInfo
query; subsequent queries in the
sequence will be the qs
ThreadInfo
query.
NOTE: replaces the qL
query (see below).
Reply:
m
id
m
id,
id...
l
In response to each query, the target will reply with a list of one or
more thread ids, in big-endian hex, separated by commas. GDB
will respond to each reply with a request for more thread ids (using the
qs
form of the query), until the target responds with l
(lower-case el, for 'last'
).
q
ThreadExtraInfo
,
id -- extra thread info
info threads
display. Some examples of
possible thread extra info strings are "Runnable", or "Blocked on
Mutex".
Reply:
XX...
q
L
startflagthreadcountnextthread -- query LIST or threadLIST (deprecated)
NOTE: this query is replaced by the q
fThreadInfo
query
(see above).
Reply:
qM
count
done
argthread
thread...
remote.c:parse_threadlist_response()
.
q
CRC:
addr,
length -- compute CRC of memory block
E
NN
C
CRC32
q
Offsets
-- query sect offs
Bss
offset is included in the
response, GDB ignores this and instead applies the Data
offset to the Bss
section.
Reply:
Text=
xxx;Data=
yyy;Bss=
zzz
q
P
modethreadid -- thread info request
Reply:
*
See remote.c:remote_unpack_thread_info_response()
.
q
Rcmd,
command -- remote command
O
output console output packets.
Implementors should note that providing access to a stubs's
interpreter may have security implications.
Reply:
OK
OUTPUT
E
NN
q
Rcmd
is not recognized.
qSymbol::
-- symbol lookup
Reply:
OK
qSymbol:
sym_name
qSymbol:
sym_value:sym_name message, described below.
qSymbol:
sym_value:sym_name -- symbol value
sym_name (hex encoded) is the name of a symbol whose value the target has previously requested.
sym_value (hex) is the value for symbol sym_name. If GDB cannot supply a value for sym_name, then this field will be empty.
Reply:
OK
qSymbol:
sym_name