X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fthread-iter.c;h=a6bbc50185a8f4ab45ced0fed307260821462f28;hb=9a6d629ccf328e3f041c3fcb7e91f49a5d72d0fb;hp=9a41a46aa66bae9e94a1bb7ea2034e022084dc5e;hpb=42a4f53d2bf8938c2aeda9f52be7a20534b214a9;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/thread-iter.c b/gdb/thread-iter.c index 9a41a46aa6..a6bbc50185 100644 --- a/gdb/thread-iter.c +++ b/gdb/thread-iter.c @@ -1,6 +1,6 @@ /* Thread iterators and ranges for GDB, the GNU debugger. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -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 ())