forked from Imagelibrary/binutils-gdb
Add backpointer from windows_thread_info to windows_process_info
The next patch will move some duplicated code in gdb and gdbserver to gdb/nat/windows-nat.c, where it would be convenient to get at the Windows process info of a given Windows thread info, from within a windows_thread_info method. I first thought of passing down the windows_process_info pointer as argument to the windows_thread_info method, but that looked a bit odd. I think it looks better to just add a back pointer, so that's what this patch does. The following patch will then add a use of it. I suspect this will help moving more duplicated code to gdb/nat/windows-nat.c in the future, too. Change-Id: I47fc0d3323be5b6f6fcfe912b768051a41910666
This commit is contained in:
@@ -42,13 +42,16 @@ struct pending_stop
|
||||
target_waitstatus status;
|
||||
};
|
||||
|
||||
struct windows_process_info;
|
||||
|
||||
/* Thread information structure used to track extra information about
|
||||
each thread. */
|
||||
struct windows_thread_info
|
||||
{
|
||||
windows_thread_info (DWORD tid_, HANDLE h_, CORE_ADDR tlb)
|
||||
: tid (tid_),
|
||||
windows_thread_info (windows_process_info *proc_,
|
||||
DWORD tid_, HANDLE h_, CORE_ADDR tlb)
|
||||
: proc (proc_),
|
||||
tid (tid_),
|
||||
h (h_),
|
||||
thread_local_base (tlb)
|
||||
{
|
||||
@@ -67,6 +70,9 @@ struct windows_thread_info
|
||||
the next call. */
|
||||
const char *thread_name ();
|
||||
|
||||
/* The process this thread belongs to. */
|
||||
windows_process_info *proc;
|
||||
|
||||
/* The Win32 thread identifier. */
|
||||
DWORD tid;
|
||||
|
||||
|
||||
@@ -613,7 +613,7 @@ windows_nat_target::add_thread (ptid_t ptid, HANDLE h, void *tlb,
|
||||
if (windows_process.wow64_process)
|
||||
base += 0x2000;
|
||||
#endif
|
||||
th = new windows_thread_info (ptid.lwp (), h, base);
|
||||
th = new windows_thread_info (&windows_process, ptid.lwp (), h, base);
|
||||
windows_process.thread_list.emplace_back (th);
|
||||
|
||||
/* Add this new thread to the list of threads.
|
||||
|
||||
@@ -167,7 +167,7 @@ child_add_thread (DWORD pid, DWORD tid, HANDLE h, void *tlb)
|
||||
if (windows_process.wow64_process)
|
||||
base += 2 * 4096; /* page size = 4096 */
|
||||
#endif
|
||||
th = new windows_thread_info (tid, h, base);
|
||||
th = new windows_thread_info (&windows_process, tid, h, base);
|
||||
|
||||
add_thread (ptid, th);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user