PR remote/18965: vforkdone stop reply should indicate parent PID
[deliverable/binutils-gdb.git] / gdb / gdbserver / remote-utils.c
index ac86dd52e18ea3870f394402f4c35a7b3b492b59..78fbfac9fe9a3ec935e209e5a8e8dcfcdbade25a 100644 (file)
@@ -1117,6 +1117,7 @@ prepare_resume_reply (char *buf, ptid_t ptid,
     case TARGET_WAITKIND_STOPPED:
     case TARGET_WAITKIND_FORKED:
     case TARGET_WAITKIND_VFORKED:
+    case TARGET_WAITKIND_VFORK_DONE:
     case TARGET_WAITKIND_EXECD:
       {
        struct thread_info *saved_thread;
@@ -1135,6 +1136,12 @@ prepare_resume_reply (char *buf, ptid_t ptid,
            buf = write_ptid (buf, status->value.related_pid);
            strcat (buf, ";");
          }
+       else if (status->kind == TARGET_WAITKIND_VFORK_DONE && report_vfork_events)
+         {
+           enum gdb_signal signal = GDB_SIGNAL_TRAP;
+
+           sprintf (buf, "T%02xvforkdone:;", signal);
+         }
        else if (status->kind == TARGET_WAITKIND_EXECD && multi_process)
          {
            enum gdb_signal signal = GDB_SIGNAL_TRAP;
@@ -1269,16 +1276,6 @@ prepare_resume_reply (char *buf, ptid_t ptid,
       else
        sprintf (buf, "X%02x", status->value.sig);
       break;
-    case TARGET_WAITKIND_VFORK_DONE:
-      if (report_vfork_events)
-       {
-         enum gdb_signal signal = GDB_SIGNAL_TRAP;
-
-         sprintf (buf, "T%02xvforkdone:;", signal);
-       }
-      else
-       sprintf (buf, "T%02x", GDB_SIGNAL_0);
-      break;
     default:
       error ("unhandled waitkind");
       break;
This page took 0.024376 seconds and 4 git commands to generate.