[5/8] Refactor start_inferior

Message ID 1437392126-29503-6-git-send-email-yao.qi@linaro.org
State New, archived
Headers

Commit Message

Yao Qi July 20, 2015, 11:35 a.m. UTC
  This patch is to refactor function start_inferior that signal_pid
is returned in one place.

gdb/gdbserver:

2015-07-16  Yao Qi  <yao.qi@linaro.org>

	* server.c (start_inferior): Code refactor.
---
 gdb/gdbserver/server.c | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)
  

Comments

Pedro Alves July 23, 2015, 11:27 p.m. UTC | #1
On 07/20/2015 12:35 PM, Yao Qi wrote:
> This patch is to refactor function start_inferior that signal_pid
> is returned in one place.
> 

LGTM.

> gdb/gdbserver:
> 
> 2015-07-16  Yao Qi  <yao.qi@linaro.org>
> 
> 	* server.c (start_inferior): Code refactor.

Thanks,
Pedro Alves
  

Patch

diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index 53befc7..497c5fe 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -257,22 +257,21 @@  start_inferior (char **argv)
 
       last_ptid = mywait (pid_to_ptid (signal_pid), &last_status, 0, 0);
 
-      if (last_status.kind != TARGET_WAITKIND_STOPPED)
-	return signal_pid;
-
-      do
+      if (last_status.kind == TARGET_WAITKIND_STOPPED)
 	{
-	  (*the_target->resume) (&resume_info, 1);
+	  do
+	    {
+	      (*the_target->resume) (&resume_info, 1);
 
- 	  last_ptid = mywait (pid_to_ptid (signal_pid), &last_status, 0, 0);
-	  if (last_status.kind != TARGET_WAITKIND_STOPPED)
-	    return signal_pid;
+	      last_ptid = mywait (pid_to_ptid (signal_pid), &last_status, 0, 0);
+	      if (last_status.kind != TARGET_WAITKIND_STOPPED)
+		break;
 
-	  current_thread->last_resume_kind = resume_stop;
-	  current_thread->last_status = last_status;
+	      current_thread->last_resume_kind = resume_stop;
+	      current_thread->last_status = last_status;
+	    }
+	  while (last_status.value.sig != GDB_SIGNAL_TRAP);
 	}
-      while (last_status.value.sig != GDB_SIGNAL_TRAP);
-
       return signal_pid;
     }