/* BSD user-level threads support.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of GDB.
struct bsd_uthread_target final : public target_ops
{
- bsd_uthread_target ()
- { to_stratum = thread_stratum; }
-
const target_info &info () const override
{ return bsd_uthread_target_info; }
+ strata stratum () const override { return thread_stratum; }
+
void close () override;
void mourn_inferior () override;
const char *extra_thread_info (struct thread_info *) override;
- const char *pid_to_str (ptid_t) override;
+ std::string pid_to_str (ptid_t) override;
};
static bsd_uthread_target bsd_uthread_ops;
struct bsd_uthread_ops *uthread_ops
= (struct bsd_uthread_ops *) gdbarch_data (gdbarch, bsd_uthread_data);
ptid_t ptid = regcache->ptid ();
- CORE_ADDR addr = ptid_get_tid (ptid);
+ CORE_ADDR addr = ptid.tid ();
CORE_ADDR active_addr;
scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
struct bsd_uthread_ops *uthread_ops
= (struct bsd_uthread_ops *) gdbarch_data (gdbarch, bsd_uthread_data);
ptid_t ptid = regcache->ptid ();
- CORE_ADDR addr = ptid_get_tid (ptid);
+ CORE_ADDR addr = ptid.tid ();
CORE_ADDR active_addr;
scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
/* If INFERIOR_PTID doesn't have a tid member yet, and we now have a
ptid with tid set, then ptid is still the initial thread of
the process. Notify GDB core about it. */
- if (ptid_get_tid (inferior_ptid) == 0
- && ptid_get_tid (ptid) != 0 && !in_thread_list (ptid))
+ if (inferior_ptid.tid () == 0
+ && ptid.tid () != 0 && !in_thread_list (ptid))
thread_change_ptid (inferior_ptid, ptid);
/* Don't let the core see a ptid without a corresponding thread. */
bsd_uthread_target::thread_alive (ptid_t ptid)
{
enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
- CORE_ADDR addr = ptid_get_tid (ptid);
+ CORE_ADDR addr = ptid.tid ();
if (addr != 0)
{
/* If INFERIOR_PTID doesn't have a tid member yet, then ptid
is still the initial thread of the process. Notify GDB
core about it. */
- if (ptid_get_tid (inferior_ptid) == 0)
+ if (inferior_ptid.tid () == 0)
thread_change_ptid (inferior_ptid, ptid);
else
add_thread (ptid);
bsd_uthread_target::extra_thread_info (thread_info *info)
{
enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
- CORE_ADDR addr = ptid_get_tid (info->ptid);
+ CORE_ADDR addr = info->ptid.tid ();
if (addr != 0)
{
return NULL;
}
-const char *
+std::string
bsd_uthread_target::pid_to_str (ptid_t ptid)
{
- if (ptid_get_tid (ptid) != 0)
- {
- static char buf[64];
-
- xsnprintf (buf, sizeof buf, "process %d, thread 0x%lx",
- ptid.pid (), ptid_get_tid (ptid));
- return buf;
- }
+ if (ptid.tid () != 0)
+ return string_printf ("process %d, thread 0x%lx",
+ ptid.pid (), ptid.tid ());
return normal_pid_to_str (ptid);
}