OSDN Git Service

* win32-low.c (win32-attach): Fix return value.
authorpalves <palves>
Thu, 10 May 2007 20:48:41 +0000 (20:48 +0000)
committerpalves <palves>
Thu, 10 May 2007 20:48:41 +0000 (20:48 +0000)
* target.h (target_ops): Describe ATTACH return values.

gdb/gdbserver/ChangeLog
gdb/gdbserver/target.h
gdb/gdbserver/win32-low.c

index b36dcfb..f949954 100644 (file)
@@ -1,5 +1,10 @@
 2007-05-10  Pedro Alves  <pedro_alves@portugalmail.pt>
 
+       * win32-low.c (win32-attach): Fix return value.
+       * target.h (target_ops): Describe ATTACH return values.
+
+2007-05-10  Pedro Alves  <pedro_alves@portugalmail.pt>
+
        * win32-low.c (GETPROCADDRESS): Define.
        (winapi_DebugActiveProcessStop): Add WINAPI.  typedef as pointer.
        (winapi_DebugSetProcessKillOnExit): Likewise.
index 6f88b49..36cc69a 100644 (file)
@@ -58,7 +58,10 @@ struct target_ops
   /* Attach to a running process.
 
      PID is the process ID to attach to, specified by the user
-     or a higher layer.  */
+     or a higher layer.
+
+     Returns -1 if attaching is unsupported, 0 on success, and calls
+     error() otherwise.  */
 
   int (*attach) (unsigned long pid);
 
index 680cafe..265c916 100644 (file)
@@ -580,7 +580,6 @@ win32_create_inferior (char *program, char **program_args)
 static int
 win32_attach (unsigned long pid)
 {
-  int res = 0;
   winapi_DebugActiveProcessStop DebugActiveProcessStop = NULL;
   winapi_DebugSetProcessKillOnExit DebugSetProcessKillOnExit = NULL;
 #ifdef _WIN32_WCE
@@ -591,28 +590,24 @@ win32_attach (unsigned long pid)
   DebugActiveProcessStop = GETPROCADDRESS (dll, DebugActiveProcessStop);
   DebugSetProcessKillOnExit = GETPROCADDRESS (dll, DebugSetProcessKillOnExit);
 
-  res = DebugActiveProcess (pid) ? 1 : 0;
-
-  if (!res)
-    error ("Attach to process failed.");
-
-  if (DebugSetProcessKillOnExit != NULL)
-    DebugSetProcessKillOnExit (FALSE);
+  if (DebugActiveProcess (pid))
+    {
+      if (DebugSetProcessKillOnExit != NULL)
+       DebugSetProcessKillOnExit (FALSE);
 
-  current_process_id = pid;
-  current_process_handle = OpenProcess (PROCESS_ALL_ACCESS, FALSE, pid);
+      current_process_handle = OpenProcess (PROCESS_ALL_ACCESS, FALSE, pid);
 
-  if (current_process_handle == NULL)
-    {
-      res = 0;
+      if (current_process_handle != NULL)
+       {
+         current_process_id = pid;
+         do_initial_child_stuff (pid);
+         return 0;
+       }
       if (DebugActiveProcessStop != NULL)
        DebugActiveProcessStop (current_process_id);
     }
 
-  if (res)
-    do_initial_child_stuff (pid);
-
-  return res;
+  error ("Attach to process failed.");
 }
 
 /* Handle OUTPUT_DEBUG_STRING_EVENT from child process.  */