diff options
author | Tom Tromey <tromey@adacore.com> | 2020-04-08 14:33:35 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2020-04-08 14:47:58 -0600 |
commit | d41b524f45fa1f02716bc41f64fb85a42dcec164 (patch) | |
tree | 374299debc39ae26eb70f40e5c5ca076d4b6ceb3 /gdbserver | |
parent | 3c76026df83bed7d97ed45e5b906b679a154b076 (diff) | |
download | binutils-d41b524f45fa1f02716bc41f64fb85a42dcec164.zip binutils-d41b524f45fa1f02716bc41f64fb85a42dcec164.tar.gz binutils-d41b524f45fa1f02716bc41f64fb85a42dcec164.tar.bz2 |
Normalize handle_output_debug_string API
This changes gdbserver's implementation of handle_output_debug_string
to have the same calling convention as that of gdb. This allows for
sharing some more code in a subsequent patch.
gdb/ChangeLog
2020-04-08 Tom Tromey <tromey@adacore.com>
* windows-nat.c (windows_nat::handle_output_debug_string):
Rename. No longer static.
* nat/windows-nat.h (handle_output_debug_string): Declare.
gdbserver/ChangeLog
2020-04-08 Tom Tromey <tromey@adacore.com>
* win32-low.c (handle_output_debug_string): Add parameter. Change
return type.
(win32_kill, get_child_debug_event): Update.
Diffstat (limited to 'gdbserver')
-rw-r--r-- | gdbserver/ChangeLog | 6 | ||||
-rw-r--r-- | gdbserver/win32-low.cc | 21 |
2 files changed, 18 insertions, 9 deletions
diff --git a/gdbserver/ChangeLog b/gdbserver/ChangeLog index ce547c1..c6acece 100644 --- a/gdbserver/ChangeLog +++ b/gdbserver/ChangeLog @@ -1,5 +1,11 @@ 2020-04-08 Tom Tromey <tromey@adacore.com> + * win32-low.c (handle_output_debug_string): Add parameter. Change + return type. + (win32_kill, get_child_debug_event): Update. + +2020-04-08 Tom Tromey <tromey@adacore.com> + * win32-low.c (current_process_handle, current_process_id) (main_thread_id, last_sig, current_event, siginfo_er): Move to nat/windows-nat.c. diff --git a/gdbserver/win32-low.cc b/gdbserver/win32-low.cc index 7060b6d..2130366 100644 --- a/gdbserver/win32-low.cc +++ b/gdbserver/win32-low.cc @@ -733,9 +733,10 @@ win32_process_target::attach (unsigned long pid) (int) err, strwinerror (err)); } -/* Handle OUTPUT_DEBUG_STRING_EVENT from child process. */ -static void -handle_output_debug_string (void) +/* See nat/windows-nat.h. */ + +int +windows_nat::handle_output_debug_string (struct target_waitstatus *ourstatus) { #define READ_BUFFER_LEN 1024 CORE_ADDR addr; @@ -743,7 +744,7 @@ handle_output_debug_string (void) DWORD nbytes = current_event.u.DebugString.nDebugStringLength; if (nbytes == 0) - return; + return 0; if (nbytes > READ_BUFFER_LEN) nbytes = READ_BUFFER_LEN; @@ -756,13 +757,13 @@ handle_output_debug_string (void) in Unicode. */ WCHAR buffer[(READ_BUFFER_LEN + 1) / sizeof (WCHAR)] = { 0 }; if (read_inferior_memory (addr, (unsigned char *) buffer, nbytes) != 0) - return; + return 0; wcstombs (s, buffer, (nbytes + 1) / sizeof (WCHAR)); } else { if (read_inferior_memory (addr, (unsigned char *) s, nbytes) != 0) - return; + return 0; } if (!startswith (s, "cYg")) @@ -770,12 +771,14 @@ handle_output_debug_string (void) if (!server_waiting) { OUTMSG2(("%s", s)); - return; + return 0; } monitor_output (s); } #undef READ_BUFFER_LEN + + return 0; } static void @@ -804,7 +807,7 @@ win32_process_target::kill (process_info *process) if (current_event.dwDebugEventCode == EXIT_PROCESS_DEBUG_EVENT) break; else if (current_event.dwDebugEventCode == OUTPUT_DEBUG_STRING_EVENT) - handle_output_debug_string (); + handle_output_debug_string (nullptr); } win32_clear_inferiors (); @@ -1504,7 +1507,7 @@ get_child_debug_event (struct target_waitstatus *ourstatus) "for pid=%u tid=%x\n", (unsigned) current_event.dwProcessId, (unsigned) current_event.dwThreadId)); - handle_output_debug_string (); + handle_output_debug_string (nullptr); break; default: |