* remote.c (remote_get_thread_local_address): Throw a more

meaningful exception when remote target doesn't have support
	for the qGetTLSAddr packet.
This commit is contained in:
Kevin Buettner 2005-04-15 20:55:56 +00:00
parent 3869131802
commit 571dd61707
2 changed files with 16 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2005-04-15 Kevin Buettner <kevinb@redhat.com>
* remote.c (remote_get_thread_local_address): Throw a more
meaningful exception when remote target doesn't have support
for the qGetTLSAddr packet.
2005-04-15 Kevin Buettner <kevinb@redhat.com>
* remote.c (remote_protocol_qGetTLSAddr): New static global variable.

View File

@ -5344,6 +5344,7 @@ remote_get_thread_local_address (ptid_t ptid, CORE_ADDR lm, CORE_ADDR offset)
struct remote_state *rs = get_remote_state ();
char *buf = alloca (rs->remote_packet_size);
char *p = buf;
enum packet_result result;
strcpy (p, "qGetTLSAddr:");
p += strlen (p);
@ -5356,13 +5357,21 @@ remote_get_thread_local_address (ptid_t ptid, CORE_ADDR lm, CORE_ADDR offset)
putpkt (buf);
getpkt (buf, rs->remote_packet_size, 0);
if (packet_ok (buf, &remote_protocol_qGetTLSAddr) == PACKET_OK)
result = packet_ok (buf, &remote_protocol_qGetTLSAddr);
if (result == PACKET_OK)
{
ULONGEST result;
unpack_varlen_hex (buf, &result);
return result;
}
else if (result == PACKET_UNKNOWN)
{
struct exception e
= { RETURN_ERROR, TLS_GENERIC_ERROR,
"Remote target doesn't support qGetTLSAddr packet" };
throw_exception (e);
}
else
{
struct exception e