From a816ba1897ae6939518d628cb58d6281c9b64a4f Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 8 Apr 2020 14:33:35 -0600 Subject: [PATCH] Share handle_load_dll and handle_unload_dll declarations This changes nat/windows-nat.h to declare handle_load_dll and handle_unload_dll. The embedding application is required to implement these -- while the actual code was difficult to share due to some other differences between the two programs, sharing the declaration lets a subsequent patch share more code that uses these as callbacks. gdb/ChangeLog 2020-04-08 Tom Tromey * windows-nat.c (windows_nat::handle_load_dll) (windows_nat::handle_unload_dll): Rename. No longer static. * nat/windows-nat.h (handle_load_dll, handle_unload_dll): Declare. gdbserver/ChangeLog 2020-04-08 Tom Tromey * win32-low.c (windows_nat::handle_load_dll): Rename from handle_load_dll. No longer static. (windows_nat::handle_unload_dll): Rename from handle_unload_dll. No longer static. --- gdb/ChangeLog | 7 +++++++ gdb/nat/windows-nat.h | 19 +++++++++++++++++++ gdb/windows-nat.c | 23 ++++++----------------- gdbserver/ChangeLog | 7 +++++++ gdbserver/win32-low.cc | 22 ++++++---------------- 5 files changed, 45 insertions(+), 33 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0c288344af6..9a5e4168b1f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2020-04-08 Tom Tromey + + * windows-nat.c (windows_nat::handle_load_dll) + (windows_nat::handle_unload_dll): Rename. No longer static. + * nat/windows-nat.h (handle_load_dll, handle_unload_dll): + Declare. + 2020-04-08 Tom Tromey * complaints.h (stop_whining): Declare at top-level. diff --git a/gdb/nat/windows-nat.h b/gdb/nat/windows-nat.h index f438befbc94..2b2fd116269 100644 --- a/gdb/nat/windows-nat.h +++ b/gdb/nat/windows-nat.h @@ -125,6 +125,25 @@ extern windows_thread_info *thread_rec (ptid_t ptid, This function must be supplied by the embedding application. */ extern int handle_output_debug_string (struct target_waitstatus *ourstatus); +/* Handle a DLL load event. + + This function assumes that the current event did not occur during + inferior initialization. + + This function must be supplied by the embedding application. */ + +extern void handle_load_dll (); + +/* Handle a DLL unload event. + + This function assumes that this event did not occur during inferior + initialization. + + This function must be supplied by the embedding application. */ + +extern void handle_unload_dll (); + + /* Currently executing process */ extern HANDLE current_process_handle; extern DWORD current_process_id; diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c index 7ccd124ac29..81811681ef6 100644 --- a/gdb/windows-nat.c +++ b/gdb/windows-nat.c @@ -870,15 +870,10 @@ windows_make_so (const char *name, LPVOID load_addr) return so; } -/* Handle a DLL load event, and return 1. - - This function assumes that this event did not occur during inferior - initialization, where their event info may be incomplete (see - do_initial_windows_stuff and windows_add_all_dlls for more info - on how we handle DLL loading during that phase). */ +/* See nat/windows-nat.h. */ -static void -handle_load_dll () +void +windows_nat::handle_load_dll () { LOAD_DLL_DEBUG_INFO *event = ¤t_event.u.LoadDll; const char *dll_name; @@ -911,16 +906,10 @@ windows_free_so (struct so_list *so) xfree (so); } -/* Handle a DLL unload event. - Return 1 if successful, or zero otherwise. - - This function assumes that this event did not occur during inferior - initialization, where their event info may be incomplete (see - do_initial_windows_stuff and windows_add_all_dlls for more info - on how we handle DLL loading during that phase). */ +/* See nat/windows-nat.h. */ -static void -handle_unload_dll () +void +windows_nat::handle_unload_dll () { LPVOID lpBaseOfDll = current_event.u.UnloadDll.lpBaseOfDll; struct so_list *so; diff --git a/gdbserver/ChangeLog b/gdbserver/ChangeLog index c6aceced191..e6213adf0fe 100644 --- a/gdbserver/ChangeLog +++ b/gdbserver/ChangeLog @@ -1,3 +1,10 @@ +2020-04-08 Tom Tromey + + * win32-low.c (windows_nat::handle_load_dll): Rename from + handle_load_dll. No longer static. + (windows_nat::handle_unload_dll): Rename from handle_unload_dll. + No longer static. + 2020-04-08 Tom Tromey * win32-low.c (handle_output_debug_string): Add parameter. Change diff --git a/gdbserver/win32-low.cc b/gdbserver/win32-low.cc index 2130366747c..73d4a6a2d8a 100644 --- a/gdbserver/win32-low.cc +++ b/gdbserver/win32-low.cc @@ -1123,15 +1123,10 @@ typedef HANDLE (WINAPI *winapi_CreateToolhelp32Snapshot) (DWORD, DWORD); typedef BOOL (WINAPI *winapi_Module32First) (HANDLE, LPMODULEENTRY32); typedef BOOL (WINAPI *winapi_Module32Next) (HANDLE, LPMODULEENTRY32); -/* Handle a DLL load event. - - This function assumes that this event did not occur during inferior - initialization, where their event info may be incomplete (see - do_initial_child_stuff and win32_add_all_dlls for more info on - how we handle DLL loading during that phase). */ +/* See nat/windows-nat.h. */ -static void -handle_load_dll (void) +void +windows_nat::handle_load_dll () { LOAD_DLL_DEBUG_INFO *event = ¤t_event.u.LoadDll; const char *dll_name; @@ -1144,15 +1139,10 @@ handle_load_dll (void) win32_add_one_solib (dll_name, (CORE_ADDR) (uintptr_t) event->lpBaseOfDll); } -/* Handle a DLL unload event. - - This function assumes that this event did not occur during inferior - initialization, where their event info may be incomplete (see - do_initial_child_stuff and win32_add_one_solib for more info - on how we handle DLL loading during that phase). */ +/* See nat/windows-nat.h. */ -static void -handle_unload_dll (void) +void +windows_nat::handle_unload_dll () { CORE_ADDR load_addr = (CORE_ADDR) (uintptr_t) current_event.u.UnloadDll.lpBaseOfDll; -- 2.30.2