Use subclasses of windows_process_info
authorTom Tromey <tromey@adacore.com>
Tue, 5 Apr 2022 19:22:16 +0000 (13:22 -0600)
committerTom Tromey <tromey@adacore.com>
Tue, 7 Jun 2022 17:44:53 +0000 (11:44 -0600)
commit20489cca9058f4823ee1c913ab1fbaabea4d4f8d
tree4a6f7c55a3f6ade63f3a9834600a83ae1c65fa0c
parent551765020680c23de7641577e72d88083c50194d
Use subclasses of windows_process_info

This changes windows_process_info to use virtual methods for its
callbacks, and then changes the two clients of this code to subclass
this class to implement the methods.

I considered using CRTP here, but that would require making the new
structures visible to the compilation of of nat/windows-nat.c.  This
seemed like a bit of a pain, so I didn't do it.

This change then lets us change all the per-inferior globals to be
members of the new subclass.  Note that there can still only be a
single inferior -- currently there's a single global of the new type.
This is just another step toward possibly implementing multi-inferior
for Windows.

It's possible this could be cleaned up further... ideally I'd like to
move more of the data into the base class.  However, because gdb
supports Cygwin and gdbserver does not, and because I don't have a way
to build or test Cygwin, larger refactorings are difficult.
gdb/nat/windows-nat.h
gdb/windows-nat.c
gdbserver/win32-low.cc
gdbserver/win32-low.h