forked from Imagelibrary/binutils-gdb
Default getpkt 'forever' parameter to 'false'
This patch changes remote.c so that the getpkt 'forever' parameter now defaults to 'false' and fixes up all the callers. Reviewed-by: John Baldwin <jhb@FreeBSD.org>
This commit is contained in:
161
gdb/remote.c
161
gdb/remote.c
@@ -1213,7 +1213,8 @@ public: /* Remote specific methods. */
|
|||||||
|
|
||||||
void skip_frame ();
|
void skip_frame ();
|
||||||
long read_frame (gdb::char_vector *buf_p);
|
long read_frame (gdb::char_vector *buf_p);
|
||||||
int getpkt (gdb::char_vector *buf, bool forever, bool *is_notif = nullptr);
|
int getpkt (gdb::char_vector *buf, bool forever = false,
|
||||||
|
bool *is_notif = nullptr);
|
||||||
int remote_vkill (int pid);
|
int remote_vkill (int pid);
|
||||||
void remote_kill_k ();
|
void remote_kill_k ();
|
||||||
|
|
||||||
@@ -1557,7 +1558,7 @@ remote_target::remote_get_noisy_reply ()
|
|||||||
char *buf;
|
char *buf;
|
||||||
|
|
||||||
QUIT; /* Allow user to bail out with ^C. */
|
QUIT; /* Allow user to bail out with ^C. */
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
buf = rs->buf.data ();
|
buf = rs->buf.data ();
|
||||||
if (buf[0] == 'E')
|
if (buf[0] == 'E')
|
||||||
trace_error (buf);
|
trace_error (buf);
|
||||||
@@ -2623,7 +2624,7 @@ remote_target::remote_query_attached (int pid)
|
|||||||
xsnprintf (rs->buf.data (), size, "qAttached");
|
xsnprintf (rs->buf.data (), size, "qAttached");
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
switch (m_features.packet_ok (rs->buf, PACKET_qAttached))
|
switch (m_features.packet_ok (rs->buf, PACKET_qAttached))
|
||||||
{
|
{
|
||||||
@@ -2921,7 +2922,7 @@ remote_target::pass_signals (gdb::array_view<const unsigned char> pass_signals)
|
|||||||
if (!rs->last_pass_packet || strcmp (rs->last_pass_packet, pass_packet))
|
if (!rs->last_pass_packet || strcmp (rs->last_pass_packet, pass_packet))
|
||||||
{
|
{
|
||||||
putpkt (pass_packet);
|
putpkt (pass_packet);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
m_features.packet_ok (rs->buf, PACKET_QPassSignals);
|
m_features.packet_ok (rs->buf, PACKET_QPassSignals);
|
||||||
xfree (rs->last_pass_packet);
|
xfree (rs->last_pass_packet);
|
||||||
rs->last_pass_packet = pass_packet;
|
rs->last_pass_packet = pass_packet;
|
||||||
@@ -2994,7 +2995,7 @@ remote_target::set_syscall_catchpoint (int pid, bool needed, int any_count,
|
|||||||
struct remote_state *rs = get_remote_state ();
|
struct remote_state *rs = get_remote_state ();
|
||||||
|
|
||||||
putpkt (catch_packet);
|
putpkt (catch_packet);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
result = m_features.packet_ok (rs->buf, PACKET_QCatchSyscalls);
|
result = m_features.packet_ok (rs->buf, PACKET_QCatchSyscalls);
|
||||||
if (result == PACKET_OK)
|
if (result == PACKET_OK)
|
||||||
return 0;
|
return 0;
|
||||||
@@ -3042,7 +3043,7 @@ remote_target::program_signals (gdb::array_view<const unsigned char> signals)
|
|||||||
|| strcmp (rs->last_program_signals_packet, packet) != 0)
|
|| strcmp (rs->last_program_signals_packet, packet) != 0)
|
||||||
{
|
{
|
||||||
putpkt (packet);
|
putpkt (packet);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
m_features.packet_ok (rs->buf, PACKET_QProgramSignals);
|
m_features.packet_ok (rs->buf, PACKET_QProgramSignals);
|
||||||
xfree (rs->last_program_signals_packet);
|
xfree (rs->last_program_signals_packet);
|
||||||
rs->last_program_signals_packet = packet;
|
rs->last_program_signals_packet = packet;
|
||||||
@@ -3078,7 +3079,7 @@ remote_target::set_thread (ptid_t ptid, int gen)
|
|||||||
else
|
else
|
||||||
write_ptid (buf, endbuf, ptid);
|
write_ptid (buf, endbuf, ptid);
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (gen)
|
if (gen)
|
||||||
rs->general_thread = ptid;
|
rs->general_thread = ptid;
|
||||||
else
|
else
|
||||||
@@ -3162,7 +3163,7 @@ remote_target::thread_alive (ptid_t ptid)
|
|||||||
write_ptid (p, endp, ptid);
|
write_ptid (p, endp, ptid);
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
return (rs->buf[0] == 'O' && rs->buf[1] == 'K');
|
return (rs->buf[0] == 'O' && rs->buf[1] == 'K');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3662,7 +3663,7 @@ remote_target::remote_get_threadinfo (threadref *threadid,
|
|||||||
|
|
||||||
pack_threadinfo_request (rs->buf.data (), fieldset, threadid);
|
pack_threadinfo_request (rs->buf.data (), fieldset, threadid);
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
if (rs->buf[0] == '\0')
|
if (rs->buf[0] == '\0')
|
||||||
return 0;
|
return 0;
|
||||||
@@ -3736,7 +3737,7 @@ remote_target::remote_get_threadlist (int startflag, threadref *nextthread,
|
|||||||
pack_threadlist_request (rs->buf.data (), startflag, result_limit,
|
pack_threadlist_request (rs->buf.data (), startflag, result_limit,
|
||||||
nextthread);
|
nextthread);
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (rs->buf[0] == '\0')
|
if (rs->buf[0] == '\0')
|
||||||
{
|
{
|
||||||
/* Packet not supported. */
|
/* Packet not supported. */
|
||||||
@@ -3923,7 +3924,7 @@ remote_target::remote_current_thread (ptid_t oldpid)
|
|||||||
struct remote_state *rs = get_remote_state ();
|
struct remote_state *rs = get_remote_state ();
|
||||||
|
|
||||||
putpkt ("qC");
|
putpkt ("qC");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (rs->buf[0] == 'Q' && rs->buf[1] == 'C')
|
if (rs->buf[0] == 'Q' && rs->buf[1] == 'C')
|
||||||
{
|
{
|
||||||
const char *obuf;
|
const char *obuf;
|
||||||
@@ -4057,7 +4058,7 @@ remote_target::remote_get_threads_with_qthreadinfo (threads_listing_context *con
|
|||||||
const char *bufp;
|
const char *bufp;
|
||||||
|
|
||||||
putpkt ("qfThreadInfo");
|
putpkt ("qfThreadInfo");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
bufp = rs->buf.data ();
|
bufp = rs->buf.data ();
|
||||||
if (bufp[0] != '\0') /* q packet recognized */
|
if (bufp[0] != '\0') /* q packet recognized */
|
||||||
{
|
{
|
||||||
@@ -4070,7 +4071,7 @@ remote_target::remote_get_threads_with_qthreadinfo (threads_listing_context *con
|
|||||||
}
|
}
|
||||||
while (*bufp++ == ','); /* comma-separated list */
|
while (*bufp++ == ','); /* comma-separated list */
|
||||||
putpkt ("qsThreadInfo");
|
putpkt ("qsThreadInfo");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
bufp = rs->buf.data ();
|
bufp = rs->buf.data ();
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
@@ -4237,7 +4238,7 @@ remote_target::extra_thread_info (thread_info *tp)
|
|||||||
write_ptid (b, endb, tp->ptid);
|
write_ptid (b, endb, tp->ptid);
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (rs->buf[0] != 0)
|
if (rs->buf[0] != 0)
|
||||||
{
|
{
|
||||||
extra.resize (strlen (rs->buf.data ()) / 2);
|
extra.resize (strlen (rs->buf.data ()) / 2);
|
||||||
@@ -4285,7 +4286,7 @@ remote_target::static_tracepoint_marker_at (CORE_ADDR addr,
|
|||||||
p += strlen (p);
|
p += strlen (p);
|
||||||
p += hexnumstr (p, addr);
|
p += hexnumstr (p, addr);
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
p = rs->buf.data ();
|
p = rs->buf.data ();
|
||||||
|
|
||||||
if (*p == 'E')
|
if (*p == 'E')
|
||||||
@@ -4311,7 +4312,7 @@ remote_target::static_tracepoint_markers_by_strid (const char *strid)
|
|||||||
/* Ask for a first packet of static tracepoint marker
|
/* Ask for a first packet of static tracepoint marker
|
||||||
definition. */
|
definition. */
|
||||||
putpkt ("qTfSTM");
|
putpkt ("qTfSTM");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
p = rs->buf.data ();
|
p = rs->buf.data ();
|
||||||
if (*p == 'E')
|
if (*p == 'E')
|
||||||
error (_("Remote failure reply: %s"), p);
|
error (_("Remote failure reply: %s"), p);
|
||||||
@@ -4328,7 +4329,7 @@ remote_target::static_tracepoint_markers_by_strid (const char *strid)
|
|||||||
while (*p++ == ','); /* comma-separated list */
|
while (*p++ == ','); /* comma-separated list */
|
||||||
/* Ask for another packet of static tracepoint definition. */
|
/* Ask for another packet of static tracepoint definition. */
|
||||||
putpkt ("qTsSTM");
|
putpkt ("qTsSTM");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
p = rs->buf.data ();
|
p = rs->buf.data ();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4409,7 +4410,7 @@ remote_target::get_offsets ()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
putpkt ("qOffsets");
|
putpkt ("qOffsets");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
buf = rs->buf.data ();
|
buf = rs->buf.data ();
|
||||||
|
|
||||||
if (buf[0] == '\000')
|
if (buf[0] == '\000')
|
||||||
@@ -4958,7 +4959,7 @@ remote_target::start_remote_1 (int from_tty, int extended_p)
|
|||||||
const char v_mustreplyempty[] = "vMustReplyEmpty";
|
const char v_mustreplyempty[] = "vMustReplyEmpty";
|
||||||
|
|
||||||
putpkt (v_mustreplyempty);
|
putpkt (v_mustreplyempty);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (strcmp (rs->buf.data (), "OK") == 0)
|
if (strcmp (rs->buf.data (), "OK") == 0)
|
||||||
{
|
{
|
||||||
m_features.m_protocol_packets[PACKET_vFile_setfs].support
|
m_features.m_protocol_packets[PACKET_vFile_setfs].support
|
||||||
@@ -4985,7 +4986,7 @@ remote_target::start_remote_1 (int from_tty, int extended_p)
|
|||||||
if (m_features.packet_support (PACKET_QStartNoAckMode) != PACKET_DISABLE)
|
if (m_features.packet_support (PACKET_QStartNoAckMode) != PACKET_DISABLE)
|
||||||
{
|
{
|
||||||
putpkt ("QStartNoAckMode");
|
putpkt ("QStartNoAckMode");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (m_features.packet_ok (rs->buf, PACKET_QStartNoAckMode) == PACKET_OK)
|
if (m_features.packet_ok (rs->buf, PACKET_QStartNoAckMode) == PACKET_OK)
|
||||||
rs->noack_mode = 1;
|
rs->noack_mode = 1;
|
||||||
}
|
}
|
||||||
@@ -4994,7 +4995,7 @@ remote_target::start_remote_1 (int from_tty, int extended_p)
|
|||||||
{
|
{
|
||||||
/* Tell the remote that we are using the extended protocol. */
|
/* Tell the remote that we are using the extended protocol. */
|
||||||
putpkt ("!");
|
putpkt ("!");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Let the target know which signals it is allowed to pass down to
|
/* Let the target know which signals it is allowed to pass down to
|
||||||
@@ -5021,7 +5022,7 @@ remote_target::start_remote_1 (int from_tty, int extended_p)
|
|||||||
"does not support non-stop"));
|
"does not support non-stop"));
|
||||||
|
|
||||||
putpkt ("QNonStop:1");
|
putpkt ("QNonStop:1");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
if (strcmp (rs->buf.data (), "OK") != 0)
|
if (strcmp (rs->buf.data (), "OK") != 0)
|
||||||
error (_("Remote refused setting non-stop mode with: %s"),
|
error (_("Remote refused setting non-stop mode with: %s"),
|
||||||
@@ -5038,7 +5039,7 @@ remote_target::start_remote_1 (int from_tty, int extended_p)
|
|||||||
/* Don't assume that the stub can operate in all-stop mode.
|
/* Don't assume that the stub can operate in all-stop mode.
|
||||||
Request it explicitly. */
|
Request it explicitly. */
|
||||||
putpkt ("QNonStop:0");
|
putpkt ("QNonStop:0");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
if (strcmp (rs->buf.data (), "OK") != 0)
|
if (strcmp (rs->buf.data (), "OK") != 0)
|
||||||
error (_("Remote refused setting all-stop mode with: %s"),
|
error (_("Remote refused setting all-stop mode with: %s"),
|
||||||
@@ -5058,7 +5059,7 @@ remote_target::start_remote_1 (int from_tty, int extended_p)
|
|||||||
|
|
||||||
/* Check whether the target is running now. */
|
/* Check whether the target is running now. */
|
||||||
putpkt ("?");
|
putpkt ("?");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
if (!target_is_non_stop_p ())
|
if (!target_is_non_stop_p ())
|
||||||
{
|
{
|
||||||
@@ -5325,7 +5326,7 @@ remote_target::remote_check_symbols ()
|
|||||||
/* Invite target to request symbol lookups. */
|
/* Invite target to request symbol lookups. */
|
||||||
|
|
||||||
putpkt ("qSymbol::");
|
putpkt ("qSymbol::");
|
||||||
getpkt (&reply, false);
|
getpkt (&reply);
|
||||||
m_features.packet_ok (reply, PACKET_qSymbol);
|
m_features.packet_ok (reply, PACKET_qSymbol);
|
||||||
|
|
||||||
while (startswith (reply.data (), "qSymbol:"))
|
while (startswith (reply.data (), "qSymbol:"))
|
||||||
@@ -5355,7 +5356,7 @@ remote_target::remote_check_symbols ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
putpkt (msg.data ());
|
putpkt (msg.data ());
|
||||||
getpkt (&reply, false);
|
getpkt (&reply);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5401,7 +5402,7 @@ remote_target::set_permissions ()
|
|||||||
may_insert_breakpoints, may_insert_tracepoints,
|
may_insert_breakpoints, may_insert_tracepoints,
|
||||||
may_insert_fast_tracepoints, may_stop);
|
may_insert_fast_tracepoints, may_stop);
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
/* If the target didn't like the packet, warn the user. Do not try
|
/* If the target didn't like the packet, warn the user. Do not try
|
||||||
to undo the user's settings, that would just be maddening. */
|
to undo the user's settings, that would just be maddening. */
|
||||||
@@ -5714,7 +5715,7 @@ remote_target::remote_query_supported ()
|
|||||||
q = "qSupported:" + q;
|
q = "qSupported:" + q;
|
||||||
putpkt (q.c_str ());
|
putpkt (q.c_str ());
|
||||||
|
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
/* If an error occurred, warn, but do not return - just reset the
|
/* If an error occurred, warn, but do not return - just reset the
|
||||||
buffer to empty and go on to disable features. */
|
buffer to empty and go on to disable features. */
|
||||||
@@ -6114,7 +6115,7 @@ remote_target::remote_detach_pid (int pid)
|
|||||||
strcpy (rs->buf.data (), "D");
|
strcpy (rs->buf.data (), "D");
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
if (rs->buf[0] == 'O' && rs->buf[1] == 'K')
|
if (rs->buf[0] == 'O' && rs->buf[1] == 'K')
|
||||||
;
|
;
|
||||||
@@ -6315,7 +6316,7 @@ extended_remote_target::attach (const char *args, int from_tty)
|
|||||||
|
|
||||||
xsnprintf (rs->buf.data (), get_remote_packet_size (), "vAttach;%x", pid);
|
xsnprintf (rs->buf.data (), get_remote_packet_size (), "vAttach;%x", pid);
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
switch (m_features.packet_ok (rs->buf, PACKET_vAttach))
|
switch (m_features.packet_ok (rs->buf, PACKET_vAttach))
|
||||||
{
|
{
|
||||||
@@ -6418,7 +6419,7 @@ remote_target::remote_vcont_probe ()
|
|||||||
|
|
||||||
strcpy (rs->buf.data (), "vCont?");
|
strcpy (rs->buf.data (), "vCont?");
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
buf = rs->buf.data ();
|
buf = rs->buf.data ();
|
||||||
|
|
||||||
/* Make sure that the features we assume are supported. */
|
/* Make sure that the features we assume are supported. */
|
||||||
@@ -6697,7 +6698,7 @@ remote_target::remote_resume_with_vcont (ptid_t scope_ptid, int step,
|
|||||||
/* In non-stop, the stub replies to vCont with "OK". The stop
|
/* In non-stop, the stub replies to vCont with "OK". The stop
|
||||||
reply will be reported asynchronously by means of a `%Stop'
|
reply will be reported asynchronously by means of a `%Stop'
|
||||||
notification. */
|
notification. */
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (strcmp (rs->buf.data (), "OK") != 0)
|
if (strcmp (rs->buf.data (), "OK") != 0)
|
||||||
error (_("Unexpected vCont reply in non-stop mode: %s"),
|
error (_("Unexpected vCont reply in non-stop mode: %s"),
|
||||||
rs->buf.data ());
|
rs->buf.data ());
|
||||||
@@ -6847,7 +6848,7 @@ vcont_builder::flush ()
|
|||||||
|
|
||||||
rs = m_remote->get_remote_state ();
|
rs = m_remote->get_remote_state ();
|
||||||
m_remote->putpkt (rs->buf);
|
m_remote->putpkt (rs->buf);
|
||||||
m_remote->getpkt (&rs->buf, false);
|
m_remote->getpkt (&rs->buf);
|
||||||
if (strcmp (rs->buf.data (), "OK") != 0)
|
if (strcmp (rs->buf.data (), "OK") != 0)
|
||||||
error (_("Unexpected vCont reply in non-stop mode: %s"), rs->buf.data ());
|
error (_("Unexpected vCont reply in non-stop mode: %s"), rs->buf.data ());
|
||||||
}
|
}
|
||||||
@@ -7209,7 +7210,7 @@ remote_target::remote_stop_ns (ptid_t ptid)
|
|||||||
/* In non-stop, we get an immediate OK reply. The stop reply will
|
/* In non-stop, we get an immediate OK reply. The stop reply will
|
||||||
come in asynchronously by notification. */
|
come in asynchronously by notification. */
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (strcmp (rs->buf.data (), "OK") != 0)
|
if (strcmp (rs->buf.data (), "OK") != 0)
|
||||||
error (_("Stopping %s failed: %s"), target_pid_to_str (ptid).c_str (),
|
error (_("Stopping %s failed: %s"), target_pid_to_str (ptid).c_str (),
|
||||||
rs->buf.data ());
|
rs->buf.data ());
|
||||||
@@ -7253,7 +7254,7 @@ remote_target::remote_interrupt_ns ()
|
|||||||
/* In non-stop, we get an immediate OK reply. The stop reply will
|
/* In non-stop, we get an immediate OK reply. The stop reply will
|
||||||
come in asynchronously by notification. */
|
come in asynchronously by notification. */
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
switch (m_features.packet_ok (rs->buf, PACKET_vCtrlC))
|
switch (m_features.packet_ok (rs->buf, PACKET_vCtrlC))
|
||||||
{
|
{
|
||||||
@@ -8083,7 +8084,7 @@ remote_target::remote_notif_get_pending_events (const notif_client *nc)
|
|||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (strcmp (rs->buf.data (), "OK") == 0)
|
if (strcmp (rs->buf.data (), "OK") == 0)
|
||||||
break;
|
break;
|
||||||
else
|
else
|
||||||
@@ -8561,7 +8562,7 @@ remote_target::fetch_register_using_p (struct regcache *regcache,
|
|||||||
p += hexnumstr (p, reg->pnum);
|
p += hexnumstr (p, reg->pnum);
|
||||||
*p++ = '\0';
|
*p++ = '\0';
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
buf = rs->buf.data ();
|
buf = rs->buf.data ();
|
||||||
|
|
||||||
@@ -8610,7 +8611,7 @@ remote_target::send_g_packet ()
|
|||||||
|
|
||||||
xsnprintf (rs->buf.data (), get_remote_packet_size (), "g");
|
xsnprintf (rs->buf.data (), get_remote_packet_size (), "g");
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (packet_check_result (rs->buf) == PACKET_ERROR)
|
if (packet_check_result (rs->buf) == PACKET_ERROR)
|
||||||
error (_("Could not read registers; remote failure reply '%s'"),
|
error (_("Could not read registers; remote failure reply '%s'"),
|
||||||
rs->buf.data ());
|
rs->buf.data ());
|
||||||
@@ -8624,7 +8625,7 @@ remote_target::send_g_packet ()
|
|||||||
&& rs->buf[0] != 'x') /* New: unavailable register value. */
|
&& rs->buf[0] != 'x') /* New: unavailable register value. */
|
||||||
{
|
{
|
||||||
remote_debug_printf ("Bad register packet; fetching a new packet");
|
remote_debug_printf ("Bad register packet; fetching a new packet");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
buf_len = strlen (rs->buf.data ());
|
buf_len = strlen (rs->buf.data ());
|
||||||
@@ -8869,7 +8870,7 @@ remote_target::store_register_using_P (const struct regcache *regcache,
|
|||||||
regcache->raw_collect (reg->regnum, regp);
|
regcache->raw_collect (reg->regnum, regp);
|
||||||
bin2hex (regp, p, register_size (gdbarch, reg->regnum));
|
bin2hex (regp, p, register_size (gdbarch, reg->regnum));
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
switch (m_features.packet_ok (rs->buf, PACKET_P))
|
switch (m_features.packet_ok (rs->buf, PACKET_P))
|
||||||
{
|
{
|
||||||
@@ -8918,7 +8919,7 @@ remote_target::store_registers_using_G (const struct regcache *regcache)
|
|||||||
*p++ = 'G';
|
*p++ = 'G';
|
||||||
bin2hex (regs, p, rsa->sizeof_g_packet);
|
bin2hex (regs, p, rsa->sizeof_g_packet);
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (packet_check_result (rs->buf) == PACKET_ERROR)
|
if (packet_check_result (rs->buf) == PACKET_ERROR)
|
||||||
error (_("Could not write registers; remote failure reply '%s'"),
|
error (_("Could not write registers; remote failure reply '%s'"),
|
||||||
rs->buf.data ());
|
rs->buf.data ());
|
||||||
@@ -9073,7 +9074,7 @@ remote_target::check_binary_download (CORE_ADDR addr)
|
|||||||
*p = '\0';
|
*p = '\0';
|
||||||
|
|
||||||
putpkt_binary (rs->buf.data (), (int) (p - rs->buf.data ()));
|
putpkt_binary (rs->buf.data (), (int) (p - rs->buf.data ()));
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
if (rs->buf[0] == '\0')
|
if (rs->buf[0] == '\0')
|
||||||
{
|
{
|
||||||
@@ -9277,7 +9278,7 @@ remote_target::remote_write_bytes_aux (const char *header, CORE_ADDR memaddr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
putpkt_binary (rs->buf.data (), (int) (p - rs->buf.data ()));
|
putpkt_binary (rs->buf.data (), (int) (p - rs->buf.data ()));
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
if (rs->buf[0] == 'E')
|
if (rs->buf[0] == 'E')
|
||||||
return TARGET_XFER_E_IO;
|
return TARGET_XFER_E_IO;
|
||||||
@@ -9369,7 +9370,7 @@ remote_target::remote_read_bytes_1 (CORE_ADDR memaddr, gdb_byte *myaddr,
|
|||||||
p += hexnumstr (p, (ULONGEST) todo_units);
|
p += hexnumstr (p, (ULONGEST) todo_units);
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (rs->buf[0] == 'E'
|
if (rs->buf[0] == 'E'
|
||||||
&& isxdigit (rs->buf[1]) && isxdigit (rs->buf[2])
|
&& isxdigit (rs->buf[1]) && isxdigit (rs->buf[2])
|
||||||
&& rs->buf[3] == '\0')
|
&& rs->buf[3] == '\0')
|
||||||
@@ -9523,7 +9524,7 @@ remote_target::remote_send_printf (const char *format, ...)
|
|||||||
error (_("Communication problem with target."));
|
error (_("Communication problem with target."));
|
||||||
|
|
||||||
rs->buf[0] = '\0';
|
rs->buf[0] = '\0';
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
return packet_check_result (rs->buf);
|
return packet_check_result (rs->buf);
|
||||||
}
|
}
|
||||||
@@ -10293,7 +10294,7 @@ remote_target::remote_vkill (int pid)
|
|||||||
/* Tell the remote target to detach. */
|
/* Tell the remote target to detach. */
|
||||||
xsnprintf (rs->buf.data (), get_remote_packet_size (), "vKill;%x", pid);
|
xsnprintf (rs->buf.data (), get_remote_packet_size (), "vKill;%x", pid);
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
switch (m_features.packet_ok (rs->buf, PACKET_vKill))
|
switch (m_features.packet_ok (rs->buf, PACKET_vKill))
|
||||||
{
|
{
|
||||||
@@ -10449,7 +10450,7 @@ remote_target::extended_remote_run (const std::string &args)
|
|||||||
rs->buf[len++] = '\0';
|
rs->buf[len++] = '\0';
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
switch (m_features.packet_ok (rs->buf, PACKET_vRun))
|
switch (m_features.packet_ok (rs->buf, PACKET_vRun))
|
||||||
{
|
{
|
||||||
@@ -10491,7 +10492,7 @@ remote_target::send_environment_packet (const char *action,
|
|||||||
"%s:%s", packet, encoded_value.c_str ());
|
"%s:%s", packet, encoded_value.c_str ());
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (strcmp (rs->buf.data (), "OK") != 0)
|
if (strcmp (rs->buf.data (), "OK") != 0)
|
||||||
warning (_("Unable to %s environment variable '%s' on remote."),
|
warning (_("Unable to %s environment variable '%s' on remote."),
|
||||||
action, value);
|
action, value);
|
||||||
@@ -10507,7 +10508,7 @@ remote_target::extended_remote_environment_support ()
|
|||||||
if (m_features.packet_support (PACKET_QEnvironmentReset) != PACKET_DISABLE)
|
if (m_features.packet_support (PACKET_QEnvironmentReset) != PACKET_DISABLE)
|
||||||
{
|
{
|
||||||
putpkt ("QEnvironmentReset");
|
putpkt ("QEnvironmentReset");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (strcmp (rs->buf.data (), "OK") != 0)
|
if (strcmp (rs->buf.data (), "OK") != 0)
|
||||||
warning (_("Unable to reset environment on remote."));
|
warning (_("Unable to reset environment on remote."));
|
||||||
}
|
}
|
||||||
@@ -10557,7 +10558,7 @@ remote_target::extended_remote_set_inferior_cwd ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (m_features.packet_ok (rs->buf, PACKET_QSetWorkingDir) != PACKET_OK)
|
if (m_features.packet_ok (rs->buf, PACKET_QSetWorkingDir) != PACKET_OK)
|
||||||
error (_("\
|
error (_("\
|
||||||
Remote replied unexpectedly while setting the inferior's working\n\
|
Remote replied unexpectedly while setting the inferior's working\n\
|
||||||
@@ -10599,7 +10600,7 @@ extended_remote_target::create_inferior (const char *exec_file,
|
|||||||
xsnprintf (rs->buf.data (), get_remote_packet_size (),
|
xsnprintf (rs->buf.data (), get_remote_packet_size (),
|
||||||
"QStartupWithShell:%d", startup_with_shell ? 1 : 0);
|
"QStartupWithShell:%d", startup_with_shell ? 1 : 0);
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
if (strcmp (rs->buf.data (), "OK") != 0)
|
if (strcmp (rs->buf.data (), "OK") != 0)
|
||||||
error (_("\
|
error (_("\
|
||||||
Remote replied unexpectedly while setting startup-with-shell: %s"),
|
Remote replied unexpectedly while setting startup-with-shell: %s"),
|
||||||
@@ -10729,7 +10730,7 @@ remote_target::insert_breakpoint (struct gdbarch *gdbarch,
|
|||||||
remote_add_target_side_commands (gdbarch, bp_tgt, p);
|
remote_add_target_side_commands (gdbarch, bp_tgt, p);
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
switch (m_features.packet_ok (rs->buf, PACKET_Z0))
|
switch (m_features.packet_ok (rs->buf, PACKET_Z0))
|
||||||
{
|
{
|
||||||
@@ -10778,7 +10779,7 @@ remote_target::remove_breakpoint (struct gdbarch *gdbarch,
|
|||||||
xsnprintf (p, endbuf - p, ",%d", bp_tgt->kind);
|
xsnprintf (p, endbuf - p, ",%d", bp_tgt->kind);
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
return (rs->buf[0] == 'E');
|
return (rs->buf[0] == 'E');
|
||||||
}
|
}
|
||||||
@@ -10830,7 +10831,7 @@ remote_target::insert_watchpoint (CORE_ADDR addr, int len,
|
|||||||
xsnprintf (p, endbuf - p, ",%x", len);
|
xsnprintf (p, endbuf - p, ",%x", len);
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
switch (m_features.packet_ok (rs->buf, (to_underlying (PACKET_Z0)
|
switch (m_features.packet_ok (rs->buf, (to_underlying (PACKET_Z0)
|
||||||
+ to_underlying (packet))))
|
+ to_underlying (packet))))
|
||||||
@@ -10879,7 +10880,7 @@ remote_target::remove_watchpoint (CORE_ADDR addr, int len,
|
|||||||
p += hexnumstr (p, (ULONGEST) addr);
|
p += hexnumstr (p, (ULONGEST) addr);
|
||||||
xsnprintf (p, endbuf - p, ",%x", len);
|
xsnprintf (p, endbuf - p, ",%x", len);
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
switch (m_features.packet_ok (rs->buf, (to_underlying (PACKET_Z0)
|
switch (m_features.packet_ok (rs->buf, (to_underlying (PACKET_Z0)
|
||||||
+ to_underlying (packet))))
|
+ to_underlying (packet))))
|
||||||
@@ -11042,7 +11043,7 @@ remote_target::insert_hw_breakpoint (struct gdbarch *gdbarch,
|
|||||||
remote_add_target_side_commands (gdbarch, bp_tgt, p);
|
remote_add_target_side_commands (gdbarch, bp_tgt, p);
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
switch (m_features.packet_ok (rs->buf, PACKET_Z1))
|
switch (m_features.packet_ok (rs->buf, PACKET_Z1))
|
||||||
{
|
{
|
||||||
@@ -11089,7 +11090,7 @@ remote_target::remove_hw_breakpoint (struct gdbarch *gdbarch,
|
|||||||
xsnprintf (p, endbuf - p, ",%x", bp_tgt->kind);
|
xsnprintf (p, endbuf - p, ",%x", bp_tgt->kind);
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
switch (m_features.packet_ok (rs->buf, PACKET_Z1))
|
switch (m_features.packet_ok (rs->buf, PACKET_Z1))
|
||||||
{
|
{
|
||||||
@@ -11130,7 +11131,7 @@ remote_target::verify_memory (const gdb_byte *data, CORE_ADDR lma, ULONGEST size
|
|||||||
reply. */
|
reply. */
|
||||||
host_crc = xcrc32 (data, size, 0xffffffff);
|
host_crc = xcrc32 (data, size, 0xffffffff);
|
||||||
|
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
result = m_features.packet_ok (rs->buf, PACKET_qCRC);
|
result = m_features.packet_ok (rs->buf, PACKET_qCRC);
|
||||||
if (result == PACKET_ERROR)
|
if (result == PACKET_ERROR)
|
||||||
@@ -11253,7 +11254,7 @@ remote_target::remote_write_qxfer (const char *object_name,
|
|||||||
(writebuf, len, 1, (gdb_byte *) rs->buf.data () + i, &max_size, max_size);
|
(writebuf, len, 1, (gdb_byte *) rs->buf.data () + i, &max_size, max_size);
|
||||||
|
|
||||||
if (putpkt_binary (rs->buf.data (), i + buf_len) < 0
|
if (putpkt_binary (rs->buf.data (), i + buf_len) < 0
|
||||||
|| getpkt (&rs->buf, false) < 0
|
|| getpkt (&rs->buf) < 0
|
||||||
|| m_features.packet_ok (rs->buf, which_packet) != PACKET_OK)
|
|| m_features.packet_ok (rs->buf, which_packet) != PACKET_OK)
|
||||||
return TARGET_XFER_E_IO;
|
return TARGET_XFER_E_IO;
|
||||||
|
|
||||||
@@ -11317,7 +11318,7 @@ remote_target::remote_read_qxfer (const char *object_name,
|
|||||||
return TARGET_XFER_E_IO;
|
return TARGET_XFER_E_IO;
|
||||||
|
|
||||||
rs->buf[0] = '\0';
|
rs->buf[0] = '\0';
|
||||||
packet_len = getpkt (&rs->buf, false);
|
packet_len = getpkt (&rs->buf);
|
||||||
if (packet_len < 0
|
if (packet_len < 0
|
||||||
|| m_features.packet_ok (rs->buf, which_packet) != PACKET_OK)
|
|| m_features.packet_ok (rs->buf, which_packet) != PACKET_OK)
|
||||||
return TARGET_XFER_E_IO;
|
return TARGET_XFER_E_IO;
|
||||||
@@ -11540,7 +11541,7 @@ remote_target::xfer_partial (enum target_object object,
|
|||||||
if (i < 0)
|
if (i < 0)
|
||||||
return TARGET_XFER_E_IO;
|
return TARGET_XFER_E_IO;
|
||||||
|
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
strcpy ((char *) readbuf, rs->buf.data ());
|
strcpy ((char *) readbuf, rs->buf.data ());
|
||||||
|
|
||||||
*xfered_len = strlen ((char *) readbuf);
|
*xfered_len = strlen ((char *) readbuf);
|
||||||
@@ -11622,7 +11623,7 @@ remote_target::search_memory (CORE_ADDR start_addr, ULONGEST search_space_len,
|
|||||||
error (_("Pattern is too large to transmit to remote target."));
|
error (_("Pattern is too large to transmit to remote target."));
|
||||||
|
|
||||||
if (putpkt_binary (rs->buf.data (), i + escaped_pattern_len) < 0
|
if (putpkt_binary (rs->buf.data (), i + escaped_pattern_len) < 0
|
||||||
|| getpkt (&rs->buf, false) < 0
|
|| getpkt (&rs->buf) < 0
|
||||||
|| m_features.packet_ok (rs->buf, PACKET_qSearch_memory) != PACKET_OK)
|
|| m_features.packet_ok (rs->buf, PACKET_qSearch_memory) != PACKET_OK)
|
||||||
{
|
{
|
||||||
/* The request may not have worked because the command is not
|
/* The request may not have worked because the command is not
|
||||||
@@ -11686,7 +11687,7 @@ remote_target::rcmd (const char *command, struct ui_file *outbuf)
|
|||||||
/* XXX - see also remote_get_noisy_reply(). */
|
/* XXX - see also remote_get_noisy_reply(). */
|
||||||
QUIT; /* Allow user to bail out with ^C. */
|
QUIT; /* Allow user to bail out with ^C. */
|
||||||
rs->buf[0] = '\0';
|
rs->buf[0] = '\0';
|
||||||
if (getpkt (&rs->buf, false) == -1)
|
if (getpkt (&rs->buf) == -1)
|
||||||
{
|
{
|
||||||
/* Timeout. Continue to (try to) read responses.
|
/* Timeout. Continue to (try to) read responses.
|
||||||
This is better than stopping with an error, assuming the stub
|
This is better than stopping with an error, assuming the stub
|
||||||
@@ -11797,7 +11798,7 @@ send_remote_packet (gdb::array_view<const char> &buf,
|
|||||||
|
|
||||||
remote->putpkt_binary (buf.data (), buf.size ());
|
remote->putpkt_binary (buf.data (), buf.size ());
|
||||||
remote_state *rs = remote->get_remote_state ();
|
remote_state *rs = remote->get_remote_state ();
|
||||||
int bytes = remote->getpkt (&rs->buf, false);
|
int bytes = remote->getpkt (&rs->buf);
|
||||||
|
|
||||||
if (bytes < 0)
|
if (bytes < 0)
|
||||||
error (_("error while fetching packet from remote target"));
|
error (_("error while fetching packet from remote target"));
|
||||||
@@ -12029,7 +12030,7 @@ remote_target::get_thread_local_address (ptid_t ptid, CORE_ADDR lm,
|
|||||||
*p++ = '\0';
|
*p++ = '\0';
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
result = m_features.packet_ok (rs->buf, PACKET_qGetTLSAddr);
|
result = m_features.packet_ok (rs->buf, PACKET_qGetTLSAddr);
|
||||||
if (result == PACKET_OK)
|
if (result == PACKET_OK)
|
||||||
{
|
{
|
||||||
@@ -12071,7 +12072,7 @@ remote_target::get_tib_address (ptid_t ptid, CORE_ADDR *addr)
|
|||||||
*p++ = '\0';
|
*p++ = '\0';
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
result = m_features.packet_ok (rs->buf, PACKET_qGetTIBAddr);
|
result = m_features.packet_ok (rs->buf, PACKET_qGetTIBAddr);
|
||||||
if (result == PACKET_OK)
|
if (result == PACKET_OK)
|
||||||
{
|
{
|
||||||
@@ -12330,7 +12331,7 @@ remote_target::remote_hostio_send_command (int command_bytes, int which_packet,
|
|||||||
}
|
}
|
||||||
|
|
||||||
putpkt_binary (rs->buf.data (), command_bytes);
|
putpkt_binary (rs->buf.data (), command_bytes);
|
||||||
bytes_read = getpkt (&rs->buf, false);
|
bytes_read = getpkt (&rs->buf);
|
||||||
|
|
||||||
/* If it timed out, something is wrong. Don't try to parse the
|
/* If it timed out, something is wrong. Don't try to parse the
|
||||||
buffer. */
|
buffer. */
|
||||||
@@ -13606,7 +13607,7 @@ Too many sections for read-only sections definition packet."));
|
|||||||
if (anysecs)
|
if (anysecs)
|
||||||
{
|
{
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -14087,7 +14088,7 @@ remote_target::use_agent (bool use)
|
|||||||
/* If the stub supports QAgent. */
|
/* If the stub supports QAgent. */
|
||||||
xsnprintf (rs->buf.data (), get_remote_packet_size (), "QAgent:%d", use);
|
xsnprintf (rs->buf.data (), get_remote_packet_size (), "QAgent:%d", use);
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
if (strcmp (rs->buf.data (), "OK") == 0)
|
if (strcmp (rs->buf.data (), "OK") == 0)
|
||||||
{
|
{
|
||||||
@@ -14143,7 +14144,7 @@ remote_target::btrace_sync_conf (const btrace_config *conf)
|
|||||||
conf->bts.size);
|
conf->bts.size);
|
||||||
|
|
||||||
putpkt (buf);
|
putpkt (buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
if (m_features.packet_ok (buf, PACKET_Qbtrace_conf_bts_size)
|
if (m_features.packet_ok (buf, PACKET_Qbtrace_conf_bts_size)
|
||||||
== PACKET_ERROR)
|
== PACKET_ERROR)
|
||||||
@@ -14166,7 +14167,7 @@ remote_target::btrace_sync_conf (const btrace_config *conf)
|
|||||||
conf->pt.size);
|
conf->pt.size);
|
||||||
|
|
||||||
putpkt (buf);
|
putpkt (buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
if (m_features.packet_ok (buf, PACKET_Qbtrace_conf_pt_size)
|
if (m_features.packet_ok (buf, PACKET_Qbtrace_conf_pt_size)
|
||||||
== PACKET_ERROR)
|
== PACKET_ERROR)
|
||||||
@@ -14290,7 +14291,7 @@ remote_target::enable_btrace (thread_info *tp,
|
|||||||
buf += xsnprintf (buf, endbuf - buf, "%s",
|
buf += xsnprintf (buf, endbuf - buf, "%s",
|
||||||
packets_descriptions[which_packet].name);
|
packets_descriptions[which_packet].name);
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
if (m_features.packet_ok (rs->buf, which_packet) == PACKET_ERROR)
|
if (m_features.packet_ok (rs->buf, which_packet) == PACKET_ERROR)
|
||||||
{
|
{
|
||||||
@@ -14337,7 +14338,7 @@ remote_target::disable_btrace (struct btrace_target_info *tinfo)
|
|||||||
buf += xsnprintf (buf, endbuf - buf, "%s",
|
buf += xsnprintf (buf, endbuf - buf, "%s",
|
||||||
packets_descriptions[PACKET_Qbtrace_off].name);
|
packets_descriptions[PACKET_Qbtrace_off].name);
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
if (m_features.packet_ok (rs->buf, PACKET_Qbtrace_off) == PACKET_ERROR)
|
if (m_features.packet_ok (rs->buf, PACKET_Qbtrace_off) == PACKET_ERROR)
|
||||||
{
|
{
|
||||||
@@ -14613,7 +14614,7 @@ remote_target::thread_events (int enable)
|
|||||||
|
|
||||||
xsnprintf (rs->buf.data (), size, "QThreadEvents:%x", enable ? 1 : 0);
|
xsnprintf (rs->buf.data (), size, "QThreadEvents:%x", enable ? 1 : 0);
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
switch (m_features.packet_ok (rs->buf, PACKET_QThreadEvents))
|
switch (m_features.packet_ok (rs->buf, PACKET_QThreadEvents))
|
||||||
{
|
{
|
||||||
@@ -14727,14 +14728,14 @@ remote_target::upload_tracepoints (struct uploaded_tp **utpp)
|
|||||||
|
|
||||||
/* Ask for a first packet of tracepoint definition. */
|
/* Ask for a first packet of tracepoint definition. */
|
||||||
putpkt ("qTfP");
|
putpkt ("qTfP");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
p = rs->buf.data ();
|
p = rs->buf.data ();
|
||||||
while (*p && *p != 'l')
|
while (*p && *p != 'l')
|
||||||
{
|
{
|
||||||
parse_tracepoint_definition (p, utpp);
|
parse_tracepoint_definition (p, utpp);
|
||||||
/* Ask for another packet of tracepoint definition. */
|
/* Ask for another packet of tracepoint definition. */
|
||||||
putpkt ("qTsP");
|
putpkt ("qTsP");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
p = rs->buf.data ();
|
p = rs->buf.data ();
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@@ -14748,14 +14749,14 @@ remote_target::upload_trace_state_variables (struct uploaded_tsv **utsvp)
|
|||||||
|
|
||||||
/* Ask for a first packet of variable definition. */
|
/* Ask for a first packet of variable definition. */
|
||||||
putpkt ("qTfV");
|
putpkt ("qTfV");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
p = rs->buf.data ();
|
p = rs->buf.data ();
|
||||||
while (*p && *p != 'l')
|
while (*p && *p != 'l')
|
||||||
{
|
{
|
||||||
parse_tsv_definition (p, utsvp);
|
parse_tsv_definition (p, utsvp);
|
||||||
/* Ask for another packet of variable definition. */
|
/* Ask for another packet of variable definition. */
|
||||||
putpkt ("qTsV");
|
putpkt ("qTsV");
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
p = rs->buf.data ();
|
p = rs->buf.data ();
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@@ -14896,7 +14897,7 @@ remote_target::fetch_memtags (CORE_ADDR address, size_t len,
|
|||||||
create_fetch_memtags_request (rs->buf, address, len, type);
|
create_fetch_memtags_request (rs->buf, address, len, type);
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
return parse_fetch_memtags_reply (rs->buf, tags);
|
return parse_fetch_memtags_reply (rs->buf, tags);
|
||||||
}
|
}
|
||||||
@@ -14916,7 +14917,7 @@ remote_target::store_memtags (CORE_ADDR address, size_t len,
|
|||||||
create_store_memtags_request (rs->buf, address, len, type, tags);
|
create_store_memtags_request (rs->buf, address, len, type, tags);
|
||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, false);
|
getpkt (&rs->buf);
|
||||||
|
|
||||||
/* Verify if the request was successful. */
|
/* Verify if the request was successful. */
|
||||||
return packet_check_result (rs->buf.data ()) == PACKET_OK;
|
return packet_check_result (rs->buf.data ()) == PACKET_OK;
|
||||||
|
|||||||
Reference in New Issue
Block a user