/* 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.
/* Creates an iterator that iterates over all threads that match
FILTER_PTID. */
- explicit all_matching_threads_iterator (ptid_t filter_ptid);
+ all_matching_threads_iterator (process_stratum_target *filter_target,
+ ptid_t filter_ptid);
/* Create a one-past-end iterator. */
all_matching_threads_iterator ()
: m_inf (nullptr),
m_thr (nullptr),
+ m_filter_target (nullptr),
m_filter_ptid (minus_one_ptid)
{}
thread_info *m_thr;
/* The filter. */
+ process_stratum_target *m_filter_target;
ptid_t m_filter_ptid;
};
struct all_matching_threads_range
{
public:
- explicit all_matching_threads_range (ptid_t filter_ptid)
- : m_filter_ptid (filter_ptid)
+ all_matching_threads_range (process_stratum_target *filter_target,
+ ptid_t filter_ptid)
+ : m_filter_target (filter_target), m_filter_ptid (filter_ptid)
{}
all_matching_threads_range ()
- : m_filter_ptid (minus_one_ptid)
+ : m_filter_target (nullptr), m_filter_ptid (minus_one_ptid)
{}
all_matching_threads_iterator begin () const
- { return all_matching_threads_iterator (m_filter_ptid); }
+ { return all_matching_threads_iterator (m_filter_target, m_filter_ptid); }
all_matching_threads_iterator end () const
{ return all_matching_threads_iterator (); }
private:
/* The filter. */
+ process_stratum_target *m_filter_target;
ptid_t m_filter_ptid;
};
class all_non_exited_threads_range
{
public:
- explicit all_non_exited_threads_range (ptid_t filter_ptid)
- : m_filter_ptid (filter_ptid)
+ all_non_exited_threads_range (process_stratum_target *filter_target,
+ ptid_t filter_ptid)
+ : m_filter_target (filter_target), m_filter_ptid (filter_ptid)
{}
all_non_exited_threads_range ()
- : m_filter_ptid (minus_one_ptid)
+ : m_filter_target (nullptr), m_filter_ptid (minus_one_ptid)
{}
all_non_exited_threads_iterator begin () const
- { return all_non_exited_threads_iterator (m_filter_ptid); }
+ { return all_non_exited_threads_iterator (m_filter_target, m_filter_ptid); }
all_non_exited_threads_iterator end () const
{ return all_non_exited_threads_iterator (); }
private:
+ process_stratum_target *m_filter_target;
ptid_t m_filter_ptid;
};