Share windows_thread_info between gdb and gdbserver

This introduces a new file, nat/windows-nat.h, which holds the
definition of windows_thread_info.  This is now shared between gdb and
gdbserver.

Note that the two implementations different slightly.  gdb had a
couple of fields ("name" and "reload_context") that gdbserver did not;
while gdbserver had one field ("base_context") that gdb did not, plus
better comments.  The new file preserves all the fields, and the
comments.

gdb/ChangeLog
2020-04-08  Tom Tromey  <tromey@adacore.com>

	* windows-nat.c (struct windows_thread_info): Remove.
	* nat/windows-nat.h: New file.

gdbserver/ChangeLog
2020-04-08  Tom Tromey  <tromey@adacore.com>

	* win32-low.h (struct windows_thread_info): Remove.
This commit is contained in:
Tom Tromey
2020-04-08 14:33:35 -06:00
parent 55a1e039f9
commit ae1f888075
5 changed files with 77 additions and 48 deletions

View File

@@ -20,6 +20,7 @@
#define GDBSERVER_WIN32_LOW_H
#include <windows.h>
#include "nat/windows-nat.h"
struct target_desc;
@@ -27,35 +28,6 @@ struct target_desc;
Windows ports support neither bi-arch nor multi-process. */
extern const struct target_desc *win32_tdesc;
/* Thread information structure used to track extra information about
each thread. */
struct windows_thread_info
{
/* The Win32 thread identifier. */
DWORD tid;
/* The handle to the thread. */
HANDLE h;
/* Thread Information Block address. */
CORE_ADDR thread_local_base;
/* Non zero if SuspendThread was called on this thread. */
int suspended;
#ifdef _WIN32_WCE
/* The context as retrieved right after suspending the thread. */
CONTEXT base_context;
#endif
/* The context of the thread, including any manipulations. */
CONTEXT context;
/* Whether debug registers changed since we last set CONTEXT back to
the thread. */
int debug_registers_changed;
};
struct win32_target_ops
{
/* Architecture-specific setup. */