request/reply nature of the RSP. We only cache data for a single
file descriptor at a time. */
struct readahead_cache readahead_cache;
-
- /* gdbserver < 7.7 (before its fix from 2013-12-11) did reply to any
- unknown 'v' packet with string "OK". "OK" gets interpreted by GDB
- as a reply to known packet. For packet "vFile:setfs:" it is an
- invalid reply and GDB would return error in
- remote_hostio_set_filesystem, making remote files access impossible.
- If this variable is non-zero it means the remote gdbserver is buggy
- and any not yet detected packets are assumed as unsupported. */
- int unknown_v_replies_ok;
};
/* Private data that we'll store in (struct thread_info)->private. */
case AUTO_BOOLEAN_FALSE:
return PACKET_DISABLE;
case AUTO_BOOLEAN_AUTO:
- {
- struct remote_state *rs = get_remote_state ();
-
- if (rs->unknown_v_replies_ok && config->name != NULL
- && config->name[0] == 'v')
- return PACKET_DISABLE;
- }
return config->support;
default:
gdb_assert_not_reached (_("bad switch"));
if (packet_support (PACKET_QAllow) != PACKET_DISABLE)
remote_set_permissions (target);
- /* See unknown_v_replies_ok description. */
- {
- const char v_mustreplyempty[] = "vMustReplyEmpty";
-
- putpkt (v_mustreplyempty);
- getpkt (&rs->buf, &rs->buf_size, 0);
- if (strcmp (rs->buf, "OK") == 0)
- rs->unknown_v_replies_ok = 1;
- else if (strcmp (rs->buf, "") == 0)
- rs->unknown_v_replies_ok = 0;
- else
- error (_("Remote replied unexpectedly to '%s': %s"), v_mustreplyempty,
- rs->buf);
- }
-
/* Next, we possibly activate noack mode.
If the QStartNoAckMode packet configuration is set to AUTO,