From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from rock.gnat.com (rock.gnat.com [205.232.38.15]) by sourceware.org (Postfix) with ESMTP id 460CB3AAA081 for ; Fri, 13 Mar 2020 19:09:03 +0000 (GMT) Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 3FC2C561B8; Fri, 13 Mar 2020 15:09:03 -0400 (EDT) X-Virus-Scanned: Debian amavisd-new at gnat.com Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id nuoY2VxEpC-M; Fri, 13 Mar 2020 15:09:03 -0400 (EDT) Received: from murgatroyd.Home (184-96-250-69.hlrn.qwest.net [184.96.250.69]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by rock.gnat.com (Postfix) with ESMTPSA id F11DA561B5; Fri, 13 Mar 2020 15:09:02 -0400 (EDT) From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH v3 19/29] Share handle_load_dll and handle_unload_dll declarations Date: Fri, 13 Mar 2020 13:08:45 -0600 Message-Id: <20200313190855.28662-20-tromey@adacore.com> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200313190855.28662-1-tromey@adacore.com> References: <20200313190855.28662-1-tromey@adacore.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-25.0 required=5.0 tests=GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Mar 2020 19:09:04 -0000 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-03-13 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-03-13 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/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 370e7bc1ae5..7a68f2d355b 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/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.21.1