aboutsummaryrefslogtreecommitdiff
path: root/gdb/thread-iter.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/thread-iter.c')
-rw-r--r--gdb/thread-iter.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/gdb/thread-iter.c b/gdb/thread-iter.c
index 636d889..a6bbc50 100644
--- a/gdb/thread-iter.c
+++ b/gdb/thread-iter.c
@@ -58,16 +58,22 @@ all_threads_iterator::advance ()
bool
all_matching_threads_iterator::m_inf_matches ()
{
- return (m_filter_ptid == minus_one_ptid
- || m_filter_ptid.pid () == m_inf->pid);
+ return ((m_filter_target == nullptr
+ || m_filter_target == m_inf->process_target ())
+ && (m_filter_ptid == minus_one_ptid
+ || m_filter_ptid.pid () == m_inf->pid));
}
/* See thread-iter.h. */
all_matching_threads_iterator::all_matching_threads_iterator
- (ptid_t filter_ptid)
- : m_filter_ptid (filter_ptid)
+ (process_stratum_target *filter_target, ptid_t filter_ptid)
+ : m_filter_target (filter_target),
+ m_filter_ptid (filter_ptid)
{
+ gdb_assert ((filter_target == nullptr && filter_ptid == minus_one_ptid)
+ || filter_target->stratum () == process_stratum);
+
m_thr = nullptr;
for (m_inf = inferior_list; m_inf != NULL; m_inf = m_inf->next)
if (m_inf_matches ())