diff options
author | Pedro Alves <palves@redhat.com> | 2012-02-27 16:22:16 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2012-02-27 16:22:16 +0000 |
commit | 644cebc98ce121ef7e6a8c0d1867ae01e936b41b (patch) | |
tree | f4eee5e5d107abfb51774b8dabae8706ad8232a1 /gdb/gdbserver | |
parent | c14d7ab2b61d410e10380fcdc21985cdcd88f810 (diff) | |
download | gdb-644cebc98ce121ef7e6a8c0d1867ae01e936b41b.zip gdb-644cebc98ce121ef7e6a8c0d1867ae01e936b41b.tar.gz gdb-644cebc98ce121ef7e6a8c0d1867ae01e936b41b.tar.bz2 |
2012-02-27 Pedro Alves <palves@redhat.com>
gdb/gdbserver/
* linux-low.c (pid_is_stopped): Delete, moved to common/.
(linux_attach_lwp_1): Adjust to use linux_proc_pid_is_stopped.
gdb/
* linux-nat.c (pid_is_stopped): Delete, moved to common/.
(linux_nat_post_attach_wait): Adjust to use
linux_proc_pid_is_stopped.
* common/linux-procfs.h (linux_proc_pid_is_stopped): Declare.
* common/linux-procfs.c (linux_proc_pid_is_stopped): New function,
based on pid_is_stopped from both linux-nat.c and
gdbserver/linux-low.c, and renamed.
Diffstat (limited to 'gdb/gdbserver')
-rw-r--r-- | gdb/gdbserver/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/gdbserver/linux-low.c | 33 |
2 files changed, 6 insertions, 32 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index b6d9ce9..fed95bf 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,5 +1,10 @@ 2012-02-27 Pedro Alves <palves@redhat.com> + * linux-low.c (pid_is_stopped): Delete, moved to common/. + (linux_attach_lwp_1): Adjust to use linux_proc_pid_is_stopped. + +2012-02-27 Pedro Alves <palves@redhat.com> + PR server/9684 * linux-low.c (pid_is_stopped): New. (linux_attach_lwp_1): Handle attaching to 'T (stopped)' processes. diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index f2887e6..8f57ee3 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -598,37 +598,6 @@ linux_create_inferior (char *program, char **allargs) return pid; } -/* Detect `T (stopped)' in `/proc/PID/status'. - Other states including `T (tracing stop)' are reported as false. */ - -static int -pid_is_stopped (pid_t pid) -{ - FILE *status_file; - char buf[100]; - int retval = 0; - - snprintf (buf, sizeof (buf), "/proc/%d/status", (int) pid); - status_file = fopen (buf, "r"); - if (status_file != NULL) - { - int have_state = 0; - - while (fgets (buf, sizeof (buf), status_file)) - { - if (strncmp (buf, "State:", 6) == 0) - { - have_state = 1; - break; - } - } - if (have_state && strstr (buf, "T (stopped)") != NULL) - retval = 1; - fclose (status_file); - } - return retval; -} - /* Attach to an inferior process. */ static void @@ -674,7 +643,7 @@ linux_attach_lwp_1 (unsigned long lwpid, int initial) ptrace call on this LWP. */ new_lwp->must_set_ptrace_flags = 1; - if (pid_is_stopped (lwpid)) + if (linux_proc_pid_is_stopped (lwpid)) { if (debug_threads) fprintf (stderr, |