Call debug_exit in linux_wait_1

Message ID 1474554735-368-1-git-send-email-yao.qi@linaro.org
State New, archived
Headers

Commit Message

Yao Qi Sept. 22, 2016, 2:32 p.m. UTC
  When I read the GDBserver debug message, I find the "entering" of
linux_wait_1 doesn't match the "existing" of linux_wait_1.  Looks
we don't call debug_exit somewhere in linux_wait_1 on return.

gdb/gdbserver:

2016-09-22  Yao Qi  <yao.qi@linaro.org>

	* linux-low.c (linux_wait_1): Call debug_exit.
---
 gdb/gdbserver/linux-low.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)
  

Comments

Yao Qi Sept. 26, 2016, 3:02 a.m. UTC | #1
On Thu, Sep 22, 2016 at 3:32 PM, Yao Qi <qiyaoltc@gmail.com> wrote:
> When I read the GDBserver debug message, I find the "entering" of
> linux_wait_1 doesn't match the "existing" of linux_wait_1.  Looks
> we don't call debug_exit somewhere in linux_wait_1 on return.
>
> gdb/gdbserver:
>
> 2016-09-22  Yao Qi  <yao.qi@linaro.org>
>
>         * linux-low.c (linux_wait_1): Call debug_exit.

Patch is pushed in.
  

Patch

diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index 785f0c2..dd71b59 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -3452,6 +3452,8 @@  linux_wait_1 (ptid_t ptid,
 
 	  linux_resume_one_lwp (event_child, 0, 0, NULL);
 
+	  if (debug_threads)
+	    debug_exit ();
 	  return ignore_event (ourstatus);
 	}
     }
@@ -3547,6 +3549,9 @@  linux_wait_1 (ptid_t ptid,
 
       linux_resume_one_lwp (event_child, event_child->stepping,
 			    0, NULL);
+
+      if (debug_threads)
+	debug_exit ();
       return ignore_event (ourstatus);
     }
 
@@ -3602,6 +3607,10 @@  linux_wait_1 (ptid_t ptid,
 	  linux_resume_one_lwp (event_child, event_child->stepping,
 				WSTOPSIG (w), info_p);
 	}
+
+      if (debug_threads)
+	debug_exit ();
+
       return ignore_event (ourstatus);
     }
 
@@ -3696,6 +3705,10 @@  linux_wait_1 (ptid_t ptid,
       if (debug_threads)
 	debug_printf ("proceeding all threads.\n");
       proceed_all_lwps ();
+
+      if (debug_threads)
+	debug_exit ();
+
       return ignore_event (ourstatus);
     }