[PATCH 5/6] linux-nat: Add function lwp_is_stepping

Andreas Arnez
2016-09-15T12:01:57Z

Add the function lwp_is_stepping which indicates whether the given LWP
is currently single-stepping. This is a common interface, usable from
native GDB as well as from gdbserver.

gdb/gdbserver/ChangeLog:

* linux-low.c (lwp_is_stepping): New function.

gdb/ChangeLog:

* nat/linux-nat.h (lwp_is_stepping): New declaration.
* linux-nat.c (lwp_is_stepping): New function.
---
gdb/gdbserver/linux-low.c | 8 ++++++++
gdb/linux-nat.c | 8 ++++++++
gdb/nat/linux-nat.h | 4 ++++
3 files changed, 20 insertions(+)

diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index fb70715..4203b92 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -176,6 +176,14 @@ lwp_stop_reason (struct lwp_info *lwp)
return lwp->stop_reason;
}

+/* See nat/linux-nat.h. */
+
+int
+lwp_is_stepping (struct lwp_info *lwp)
+{
+ return lwp->stepping;
+}
+
/* A list of all unknown processes which receive stop signals. Some
other process will presumably claim each of these as forked
children momentarily. */
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
index 7410f8e..8e9eb0b 100644
--- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c
@@ -355,6 +355,14 @@ lwp_stop_reason (struct lwp_info *lwp)
return lwp->stop_reason;
}

+/* See nat/linux-nat.h. */
+
+int
+lwp_is_stepping (struct lwp_info *lwp)
+{
+ return lwp->step;
+}
+
\f
/* Trivial list manipulation functions to keep track of a list of
new stopped processes. */
diff --git a/gdb/nat/linux-nat.h b/gdb/nat/linux-nat.h
index 2b485db..f7d1c63 100644
--- a/gdb/nat/linux-nat.h
+++ b/gdb/nat/linux-nat.h
@@ -85,4 +85,8 @@ extern enum target_stop_reason lwp_stop_reason (struct lwp_info *lwp);

extern void linux_stop_lwp (struct lwp_info *lwp);

+/* Return nonzero if we are single-stepping this LWP. */
+
+extern int lwp_is_stepping (struct lwp_info *lwp);
+
#endif /* LINUX_NAT_H */
--
2.5.0