/* Remote target communications for serial-line targets in custom GDB protocol
- Copyright (C) 1988-2017 Free Software Foundation, Inc.
+ Copyright (C) 1988-2018 Free Software Foundation, Inc.
This file is part of GDB.
static void
start_thread (struct gdb_xml_parser *parser,
const struct gdb_xml_element *element,
- void *user_data, VEC(gdb_xml_value_s) *attributes)
+ void *user_data,
+ std::vector<gdb_xml_value> &attributes)
{
struct threads_listing_context *data
= (struct threads_listing_context *) user_data;
struct gdb_xml_value *attr;
- char *id = (char *) xml_find_attribute (attributes, "id")->value;
+ char *id = (char *) xml_find_attribute (attributes, "id")->value.get ();
ptid_t ptid = read_ptid (id, NULL);
data->items.emplace_back (ptid);
attr = xml_find_attribute (attributes, "core");
if (attr != NULL)
- item.core = *(ULONGEST *) attr->value;
+ item.core = *(ULONGEST *) attr->value.get ();
attr = xml_find_attribute (attributes, "name");
if (attr != NULL)
- item.name = (const char *) attr->value;
+ item.name = (const char *) attr->value.get ();
attr = xml_find_attribute (attributes, "handle");
if (attr != NULL)
- item.thread_handle = hex2bin ((const char *) attr->value);
+ item.thread_handle = hex2bin ((const char *) attr->value.get ());
}
static void
one. */
static void
-remote_detach_1 (const char *args, int from_tty)
+remote_detach_1 (int from_tty)
{
int pid = ptid_get_pid (inferior_ptid);
struct remote_state *rs = get_remote_state ();
struct thread_info *tp = find_thread_ptid (inferior_ptid);
int is_fork_parent;
- if (args)
- error (_("Argument given to \"detach\" when remotely debugging."));
-
if (!target_has_execution)
error (_("No process to detach from."));
}
static void
-remote_detach (struct target_ops *ops, const char *args, int from_tty)
+remote_detach (struct target_ops *ops, int from_tty)
{
- remote_detach_1 (args, from_tty);
+ remote_detach_1 (from_tty);
}
static void
-extended_remote_detach (struct target_ops *ops, const char *args, int from_tty)
+extended_remote_detach (struct target_ops *ops, int from_tty)
{
- remote_detach_1 (args, from_tty);
+ remote_detach_1 (from_tty);
}
/* Target follow-fork function for remote targets. On entry, and
event->ptid = read_ptid (thr + strlen (";thread:"),
NULL);
else
- event->ptid = magic_null_ptid;
+ {
+ /* Either the current thread hasn't changed,
+ or the inferior is not multi-threaded.
+ The event must be for the thread we last
+ set as (or learned as being) current. */
+ event->ptid = event->rs->general_thread;
+ }
}
if (rsa == NULL)