Proposal: qGetTLSAddr remote protocol packet
Kevin Buettner
kevinb@redhat.com
Fri Nov 5 22:44:00 GMT 2004
Below is a proposal for a new remote protocol packet for fetching a
thread local storage address. It is written it in a form (sans markup)
that is compatible with the rest of the remote protocol documentation.
Comments / suggestions?
-------------------
qGetTLSAddr:thread-id:offset:other-param1:other-param2:...:other-paramN
-- get thread local storage address
Fetch the address associated with thread local storage specified
by thread-id, offset, and other-param1 thru other-paramN.
thread-id is the (big endian, hex encoded) thread id associated with the
thread for which to fetch the TLS address.
offset is the (big endian, hex encoded) offset associated with the
thread local variable. (This offset is obtained from the debug
information associated with the variable.)
other-param1 .. other-paramN are (big endian, hex encoded) OS/ABI
specific data required for fetching the TLS address. For example, a
GNU/Linux system will pass (as other-param1) the link map address of
the shared object associated with the thread local storage under
consideration. Other operating environments may require different
data, so the precise meaning of these fields will vary.
Reply:
XX...
Hex encoded (big endian) bytes representing the address of the thread
local storage requested.
E01
The stub-side thread library does not have the required thread local
storage support.
E02
GDB sent a malformed qGetTLSAddr packet to the stub.
E03
The stub was unable to find the thread associated with thread-id.
E04
The stub-side thread library was unable to find the TLS address
associated with thread-id, offset, and the OS/ABI specific
parameters.
Enn (where nn are hex digits and not specfied above)
Some other error occurred.
"" (empty)
An empty reply indicates that qGetTLSAddr is not supported by the stub.
More information about the Gdb
mailing list