+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.
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);
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