[review] Share handle_load_dll and handle_unload_dll declarations
Commit Message
Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/423
......................................................................
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.
Change-Id: I25741fca7402182e069d536e032f1c468d65a68e
gdb/ChangeLog
2019-10-29 Tom Tromey <tromey@adacore.com>
* 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.
gdb/gdbserver/ChangeLog
2019-10-29 Tom Tromey <tromey@adacore.com>
* 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.
Change-Id: I3ef08b0696174d281cca225e0f7dc237c10b7b32
---
M gdb/ChangeLog
M gdb/gdbserver/ChangeLog
M gdb/gdbserver/win32-low.c
M gdb/nat/windows-nat.h
M gdb/windows-nat.c
5 files changed, 45 insertions(+), 33 deletions(-)
Comments
Luis Machado has posted comments on this change.
Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/423
......................................................................
Patch Set 1:
(2 comments)
| --- gdb/gdbserver/win32-low.c
| +++ gdb/gdbserver/win32-low.c
| @@ -1138,15 +1130,13 @@ /* Handle a DLL unload event.
| - 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). */
| -
| -static void
| -handle_unload_dll (void)
| +/* See nat/windows-nat.h. */
| +
| +void
| +windows_nat::handle_unload_dll ()
PS1, Line 1133:
For both handle_load_dll and handle_unload_dll, is it ok to drop the
rest of the function documentation? Does it not have anything
meaningful to convey?
| {
| CORE_ADDR load_addr =
| (CORE_ADDR) (uintptr_t) current_event.u.UnloadDll.lpBaseOfDll;
|
| /* The symbols in a dll are offset by 0x1000, which is the
| offset from 0 of the first byte in an image - because
| of the file header and the section alignment. */
| load_addr += 0x1000;
| unloaded_dll (NULL, load_addr);
| --- gdb/nat/windows-nat.h
| +++ gdb/nat/windows-nat.h
| @@ -114,9 +123,19 @@ 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 ();
| +
| +
PS1, Line 132:
Spurious newline?
| /* Currently executing process */
| extern HANDLE current_process_handle;
| extern DWORD current_process_id;
| extern DWORD main_thread_id;
| extern enum gdb_signal last_sig;
|
| /* The current debug event from WaitForDebugEvent or from a pending
| stop. */
| extern DEBUG_EVENT current_event;
@@ -1,5 +1,12 @@
2019-10-29 Tom Tromey <tromey@adacore.com>
+ * 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.
+
+2019-10-29 Tom Tromey <tromey@adacore.com>
+
* complaints.h (stop_whining): Declare at top-level.
(complaint): Don't declare stop_whining.
@@ -1,5 +1,12 @@
2019-10-29 Tom Tromey <tromey@adacore.com>
+ * 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.
+
+2019-10-29 Tom Tromey <tromey@adacore.com>
+
* win32-low.c (handle_output_debug_string): Add parameter. Change
return type.
(win32_kill, get_child_debug_event): Update.
@@ -1111,15 +1111,10 @@
typedef BOOL (WINAPI *winapi_Module32First) (HANDLE, LPMODULEENTRY32);
typedef BOOL (WINAPI *winapi_Module32Next) (HANDLE, LPMODULEENTRY32);
-/* Handle a DLL load event.
+/* See nat/windows-nat.h. */
- 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). */
-
-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;
@@ -1132,15 +1127,10 @@
win32_add_one_solib (dll_name, (CORE_ADDR) (uintptr_t) event->lpBaseOfDll);
}
-/* Handle a DLL unload event.
+/* See nat/windows-nat.h. */
- 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). */
-
-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;
@@ -111,6 +111,25 @@
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;
@@ -748,15 +748,10 @@
return so;
}
-/* Handle a DLL load event, and return 1.
+/* See nat/windows-nat.h. */
- 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). */
-
-static void
-handle_load_dll ()
+void
+windows_nat::handle_load_dll ()
{
LOAD_DLL_DEBUG_INFO *event = ¤t_event.u.LoadDll;
const char *dll_name;
@@ -789,16 +784,10 @@
xfree (so);
}
-/* Handle a DLL unload event.
- Return 1 if successful, or zero otherwise.
+/* See nat/windows-nat.h. */
- 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). */
-
-static void
-handle_unload_dll ()
+void
+windows_nat::handle_unload_dll ()
{
LPVOID lpBaseOfDll = current_event.u.UnloadDll.lpBaseOfDll;
struct so_list *so;