mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 01:07:52 +00:00
gdbserver: make thread_target_data a method of thread_info
Make the field private, change the free function to be a method. Change-Id: I05010e7d1bd58ce3895802eb263c029528427758 Approved-By: Tom Tromey <tom@tromey.com>
This commit is contained in:
@@ -28,7 +28,7 @@ struct regcache;
|
|||||||
struct thread_info : public intrusive_list_node<thread_info>
|
struct thread_info : public intrusive_list_node<thread_info>
|
||||||
{
|
{
|
||||||
thread_info (ptid_t id, process_info *process, void *target_data)
|
thread_info (ptid_t id, process_info *process, void *target_data)
|
||||||
: id (id), target_data (target_data), m_process (process)
|
: id (id), m_process (process), m_target_data (target_data)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
~thread_info ()
|
~thread_info ()
|
||||||
@@ -46,11 +46,12 @@ struct thread_info : public intrusive_list_node<thread_info>
|
|||||||
void set_regcache (struct regcache *regcache)
|
void set_regcache (struct regcache *regcache)
|
||||||
{ m_regcache = regcache; }
|
{ m_regcache = regcache; }
|
||||||
|
|
||||||
|
void *target_data ()
|
||||||
|
{ return m_target_data; }
|
||||||
|
|
||||||
/* The id of this thread. */
|
/* The id of this thread. */
|
||||||
ptid_t id;
|
ptid_t id;
|
||||||
|
|
||||||
void *target_data;
|
|
||||||
|
|
||||||
/* The last resume GDB requested on this thread. */
|
/* The last resume GDB requested on this thread. */
|
||||||
enum resume_kind last_resume_kind = resume_continue;
|
enum resume_kind last_resume_kind = resume_continue;
|
||||||
|
|
||||||
@@ -94,6 +95,7 @@ struct thread_info : public intrusive_list_node<thread_info>
|
|||||||
private:
|
private:
|
||||||
process_info *m_process;
|
process_info *m_process;
|
||||||
struct regcache *m_regcache = nullptr;
|
struct regcache *m_regcache = nullptr;
|
||||||
|
void *m_target_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Return a pointer to the first thread, or NULL if there isn't one. */
|
/* Return a pointer to the first thread, or NULL if there isn't one. */
|
||||||
|
|||||||
@@ -118,12 +118,6 @@ process_info::remove_thread (thread_info *thread)
|
|||||||
m_thread_list.erase (m_thread_list.iterator_to (*thread));
|
m_thread_list.erase (m_thread_list.iterator_to (*thread));
|
||||||
}
|
}
|
||||||
|
|
||||||
void *
|
|
||||||
thread_target_data (struct thread_info *thread)
|
|
||||||
{
|
|
||||||
return thread->target_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
clear_inferiors (void)
|
clear_inferiors (void)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -154,8 +154,6 @@ void switch_to_process (process_info *proc);
|
|||||||
|
|
||||||
void clear_inferiors (void);
|
void clear_inferiors (void);
|
||||||
|
|
||||||
void *thread_target_data (struct thread_info *);
|
|
||||||
|
|
||||||
/* Set the inferior current working directory. If CWD is empty, unset
|
/* Set the inferior current working directory. If CWD is empty, unset
|
||||||
the directory. */
|
the directory. */
|
||||||
void set_inferior_cwd (std::string cwd);
|
void set_inferior_cwd (std::string cwd);
|
||||||
|
|||||||
@@ -715,7 +715,7 @@ extern linux_process_target *the_linux_target;
|
|||||||
static inline lwp_info *
|
static inline lwp_info *
|
||||||
get_thread_lwp (thread_info *thr)
|
get_thread_lwp (thread_info *thr)
|
||||||
{
|
{
|
||||||
return static_cast<lwp_info *> (thread_target_data (thr));
|
return static_cast<lwp_info *> (thr->target_data ());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Information about a signal that is to be delivered to a thread. */
|
/* Information about a signal that is to be delivered to a thread. */
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ static struct x86_debug_reg_state debug_reg_state;
|
|||||||
static void
|
static void
|
||||||
update_debug_registers (thread_info *thread)
|
update_debug_registers (thread_info *thread)
|
||||||
{
|
{
|
||||||
windows_thread_info *th = (windows_thread_info *) thread_target_data (thread);
|
auto th = static_cast<windows_thread_info *> (thread->target_data ());
|
||||||
|
|
||||||
/* The actual update is done later just before resuming the lwp,
|
/* The actual update is done later just before resuming the lwp,
|
||||||
we just mark that the registers need updating. */
|
we just mark that the registers need updating. */
|
||||||
@@ -83,8 +83,8 @@ x86_dr_low_set_control (unsigned long control)
|
|||||||
static DWORD64
|
static DWORD64
|
||||||
win32_get_current_dr (int dr)
|
win32_get_current_dr (int dr)
|
||||||
{
|
{
|
||||||
windows_thread_info *th
|
auto th
|
||||||
= (windows_thread_info *) thread_target_data (current_thread);
|
= static_cast<windows_thread_info *> (current_thread->target_data ());
|
||||||
|
|
||||||
win32_require_context (th);
|
win32_require_context (th);
|
||||||
|
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ gdbserver_windows_process::thread_rec
|
|||||||
if (thread == NULL)
|
if (thread == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
windows_thread_info *th = (windows_thread_info *) thread_target_data (thread);
|
auto th = static_cast<windows_thread_info *> (thread->target_data ());
|
||||||
if (disposition != DONT_INVALIDATE_CONTEXT)
|
if (disposition != DONT_INVALIDATE_CONTEXT)
|
||||||
win32_require_context (th);
|
win32_require_context (th);
|
||||||
return th;
|
return th;
|
||||||
@@ -178,7 +178,7 @@ child_add_thread (DWORD pid, DWORD tid, HANDLE h, void *tlb)
|
|||||||
static void
|
static void
|
||||||
delete_thread_info (thread_info *thread)
|
delete_thread_info (thread_info *thread)
|
||||||
{
|
{
|
||||||
windows_thread_info *th = (windows_thread_info *) thread_target_data (thread);
|
auto th = static_cast<windows_thread_info *> (thread->target_data ());
|
||||||
|
|
||||||
thread->process ()->remove_thread (thread);
|
thread->process ()->remove_thread (thread);
|
||||||
delete th;
|
delete th;
|
||||||
@@ -394,7 +394,7 @@ do_initial_child_stuff (HANDLE proch, DWORD pid, int attached)
|
|||||||
static void
|
static void
|
||||||
continue_one_thread (thread_info *thread, int thread_id)
|
continue_one_thread (thread_info *thread, int thread_id)
|
||||||
{
|
{
|
||||||
windows_thread_info *th = (windows_thread_info *) thread_target_data (thread);
|
auto th = static_cast<windows_thread_info *> (thread->target_data ());
|
||||||
|
|
||||||
if (thread_id == -1 || thread_id == th->tid)
|
if (thread_id == -1 || thread_id == th->tid)
|
||||||
{
|
{
|
||||||
@@ -923,7 +923,7 @@ gdbserver_windows_process::handle_unload_dll ()
|
|||||||
static void
|
static void
|
||||||
suspend_one_thread (thread_info *thread)
|
suspend_one_thread (thread_info *thread)
|
||||||
{
|
{
|
||||||
windows_thread_info *th = (windows_thread_info *) thread_target_data (thread);
|
auto th = static_cast<windows_thread_info *> (thread->target_data ());
|
||||||
|
|
||||||
th->suspend ();
|
th->suspend ();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user