www.delorie.com/gnu/docs/gdb/gdb_276.html   search  
 
Buy the book!


Debugging with GDB

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

D.4 General Query Packets

The following set and query packets have already been defined.

qC -- current thread

Return the current thread id.

Reply:

`QCpid'
Where pid is a HEX encoded 16 bit process id.
`*'
Any other reply implies the old pid.

qfThreadInfo -- all thread ids

qsThreadInfo

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 qfThreadInfo query; subsequent queries in the sequence will be the qsThreadInfo query.

NOTE: replaces the qL query (see below).

Reply:

`mid'
A single thread id
`mid,id...'
a comma-separated list of thread ids
`l'
(lower case 'el') denotes end of list.

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').

qThreadExtraInfo,id -- extra thread info

Where id is a thread-id in big-endian hex. Obtain a printable string description of a thread's attributes from the target OS. This string may contain anything that the target OS thinks is interesting for GDB to tell the user about the thread. The string is displayed in GDB's `info threads' display. Some examples of possible thread extra info strings are "Runnable", or "Blocked on Mutex".

Reply:

`XX...'
Where XX... is a hex encoding of ASCII data, comprising the printable string containing the extra information about the thread's attributes.

qLstartflagthreadcountnextthread -- query LIST or threadLIST (deprecated)

Obtain thread information from RTOS. Where: startflag (one hex digit) is one to indicate the first query and zero to indicate a subsequent query; threadcount (two hex digits) is the maximum number of threads the response packet can contain; and nextthread (eight hex digits), for subsequent queries (startflag is zero), is returned in the response as argthread.

NOTE: this query is replaced by the qfThreadInfo query (see above).

Reply:

`qMcountdoneargthreadthread...'
Where: count (two hex digits) is the number of threads being returned; done (one hex digit) is zero to indicate more threads and one indicates no further threads; argthreadid (eight hex digits) is nextthread from the request packet; thread... is a sequence of thread IDs from the target. threadid (eight hex digits). See remote.c:parse_threadlist_response().

qCRC:addr,length -- compute CRC of memory block

Reply:

`ENN'
An error (such as memory fault)
`CCRC32'
A 32 bit cyclic redundancy check of the specified memory region.

qOffsets -- query sect offs

Get section offsets that the target used when re-locating the downloaded image. Note: while a 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'

qPmodethreadid -- thread info request

Returns information on threadid. Where: mode is a hex encoded 32 bit mode; threadid is a hex encoded 64 bit thread ID.

Reply:

`*'

See remote.c:remote_unpack_thread_info_response().

qRcmd,command -- remote command

command (hex encoded) is passed to the local interpreter for execution. Invalid commands should be reported using the output string. Before the final result packet, the target may also respond with a number of intermediate Ooutput console output packets. Implementors should note that providing access to a stubs's interpreter may have security implications.

Reply:

`OK'
A command response with no output.
`OUTPUT'
A command response with the hex encoded output string OUTPUT.
`ENN'
Indicate a badly formed request.
``''
When `q'`Rcmd' is not recognized.

qSymbol:: -- symbol lookup

Notify the target that GDB is prepared to serve symbol lookup requests. Accept requests from the target for the values of symbols.

Reply:

`OK'
The target does not need to look up any (more) symbols.
`qSymbol:sym_name'
The target requests the value of symbol sym_name (hex encoded). GDB may provide the value by using the qSymbol:sym_value:sym_name message, described below.

qSymbol:sym_value:sym_name -- symbol value

Set the value of sym_name to sym_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'
The target does not need to look up any (more) symbols.
`qSymbol:sym_name'
The target requests the value of a new symbol sym_name (hex encoded). GDB will continue to supply the values of symbols (if available), until the target ceases to request them.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

  webmaster     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003