summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2013-12-17 10:37:29 +0100
committerMark Wielaard <mjw@redhat.com>2013-12-17 10:37:29 +0100
commitc76b2ff3eebc04c628ea7475c7ea0abb6cf0ff0d (patch)
treed625280c743da316d4b925aa9ce6137aa46c9e99
parent14c2d9e614cb0e3fd50ad757eaba686b37699580 (diff)
downloadelfutils-c76b2ff3eebc04c628ea7475c7ea0abb6cf0ff0d.tar.gz
libdwfl: linux-pid-attach.c (pid_next_thread): Use rewinddir on first call.
dwfl_getthreads would otherwise fail to report any threads after it was called once. Reported-by: Masatake YAMATO <yamato@redhat.com> Signed-off-by: Mark Wielaard <mjw@redhat.com>
-rw-r--r--libdwfl/ChangeLog5
-rw-r--r--libdwfl/linux-pid-attach.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index 67f1fcff..76538e64 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,3 +1,8 @@
+2013-12-17 Mark Wielaard <mjw@redhat.com>
+
+ * linux-pid-attach.c (pid_next_thread): Call rewinddir on first
+ traversal.
+
2013-12-16 Mark Wielaard <mjw@redhat.com>
* libdwfl.h (dwfl_module_getsymtab_first_global): New function
diff --git a/libdwfl/linux-pid-attach.c b/libdwfl/linux-pid-attach.c
index 45a0732d..3d0716ab 100644
--- a/libdwfl/linux-pid-attach.c
+++ b/libdwfl/linux-pid-attach.c
@@ -164,6 +164,9 @@ pid_next_thread (Dwfl *dwfl __attribute__ ((unused)), void *dwfl_arg,
{
struct pid_arg *pid_arg = dwfl_arg;
struct dirent *dirent;
+ /* Start fresh on first traversal. */
+ if (*thread_argp == NULL)
+ rewinddir (pid_arg->dir);
do
{
errno = 0;