GDBserver

Classes | Macros | Functions | Variables
gdbthread.h File Reference
`#include "common-gdbthread.h"`
`#include "inferiors.h"`
`#include <list>`

Go to the source code of this file.

## Classes
struct | thread_info

## Macros
#define | current_ptid (current_thread->id)

## Functions
void | remove_thread (struct thread_info *thread)
struct thread_info * | add_thread (ptid_t ptid, void *target_data)
struct thread_info * | get_first_thread (void)
struct thread_info * | find_thread_ptid (ptid_t ptid)
struct thread_info * | find_any_thread_of_pid (int pid)
template<typename Func >
static thread_info * | find_thread (Func func)
template<typename Func >
static thread_info * | find_thread (int pid, Func func)
template<typename Func >
static thread_info * | find_thread (ptid_t filter, Func func)
template<typename Func >
static void | for_each_thread (Func func)
template<typename Func >
static void | for_each_thread (int pid, Func func)
template<typename Func >
static thread_info * | find_thread_in_random (Func func)
static ptid_t | ptid_of (const thread_info *thread)
static int | pid_of (const thread_info *thread)
static long | lwpid_of (const thread_info *thread)
struct cleanup * | make_cleanup_restore_current_thread (void)

## Variables
std::list< thread_info * > | all_threads

## Macro Definition Documentation

## ◆ current_ptid

#define current_ptid (current_thread->id)

Definition at line 201 of file gdbthread.h.

Referenced by current_thread_ptid(), fetch_ppc_memory(), fetch_ppc_register(), handle_detach(), install_software_single_step_breakpoints(), myresume(), run_inferior_command(), set_single_step_breakpoint(), spu_proc_xfer_spu(), spu_thread_alive(), store_ppc_memory(), and thread_db_find_new_threads().

## Function Documentation

## ◆ add_thread()

struct thread_info* add_thread | ( | ptid_t | ptid,
|  | void * | target_data
| ) |  |

Definition at line 34 of file inferiors.c.

References all_threads, current_thread, thread_info::id, thread_info::last_resume_kind, thread_info::last_status, thread_info::target_data, and XCNEW.

Referenced by add_lwp(), child_add_thread(), lynx_add_threads_after_attach(), lynx_wait_1(), nto_find_new_threads(), spu_attach(), and spu_create_inferior().

## ◆ find_any_thread_of_pid()

struct thread_info* find_any_thread_of_pid | ( | int | pid | ) |

Definition at line 83 of file inferiors.c.

References find_thread().

Referenced by find_thread_process(), gdb_agent_about_to_close(), handle_query(), process_serial_event(), switch_to_process(), and x86_linux_update_xmltarget().

## ◆ find_thread() [1/3]

template<typename Func >

static thread_info* find_thread | ( | Func | func | ) |
| static

Definition at line 96 of file gdbthread.h.

References all_threads.

Referenced by find_any_thread_of_pid(), find_lwp_pid(), find_thread(), find_thread_in_random(), find_thread_ptid(), handle_status(), iterate_over_lwps(), last_thread_of_process_p(), linux_resume(), linux_stabilize_threads(), linux_wait_1(), linux_wait_for_event_filtered(), proceed_all_lwps(), resume(), and select_event_lwp().

## ◆ find_thread() [2/3]

template<typename Func >

static thread_info* find_thread | ( | int | pid,
|  | Func | func
| ) |  |
| static

Definition at line 118 of file gdbthread.h.

References find_thread(), thread_info::id, and ptid_t::pid().

## ◆ find_thread() [3/3]

template<typename Func >

static thread_info* find_thread | ( | ptid_t | filter,
|  | Func | func
| ) |  |
| static

Definition at line 131 of file gdbthread.h.

References find_thread(), thread_info::id, and ptid_t::matches().

## ◆ find_thread_in_random()

template<typename Func >

static thread_info* find_thread_in_random | ( | Func | func | ) |
| static

Definition at line 173 of file gdbthread.h.

References find_thread(), for_each_thread(), and gdb_assert.

Referenced by linux_wait_for_event_filtered().

## ◆ find_thread_ptid()

struct thread_info* find_thread_ptid | ( | ptid_t | ptid | ) |

Definition at line 64 of file inferiors.c.

References find_thread(), and thread_info::id.

Referenced by attach_proc_task_lwp_callback(), child_delete_thread(), find_one_thread(), get_child_debug_event(), get_thread_regcache_for_ptid(), handle_btrace_conf_general_set(), handle_btrace_general_set(), handle_query(), handle_qxfer_btrace(), handle_qxfer_btrace_conf(), handle_status(), linux_attach(), lynx_add_threads_after_attach(), lynx_thread_alive(), lynx_wait_1(), nto_find_new_threads(), process_serial_event(), set_desired_thread(), switch_to_thread(), thread_db_thread_handle(), thread_rec(), and win32_thread_alive().

## ◆ for_each_thread() [1/2]

template<typename Func >

static void for_each_thread | ( | Func | func | ) |
| static

Definition at line 142 of file gdbthread.h.

References all_threads.

Referenced by arm_insert_point(), arm_remove_point(), captured_main(), child_continue(), child_init_thread_list(), clear_inferiors(), fake_breakpoint_event(), find_thread_in_random(), for_each_thread(), gdb_wants_all_threads_stopped(), handle_qxfer_threads_proper(), handle_status(), linux_detach(), linux_handle_new_gdb_connection(), linux_kill(), linux_mourn(), linux_resume(), linux_stabilize_threads(), linux_wait_1(), linux_wait_for_event_filtered(), lynx_mourn(), mips_insert_point(), mips_remove_point(), num_lwps(), prepare_to_access_memory(), proceed_all_lwps(), regcache_invalidate_pid(), regcache_release(), select_event_lwp(), stop_all_lwps(), unstop_all_lwps(), unsuspend_all_lwps(), win32_clear_inferiors(), x86_dr_low_set_addr(), and x86_dr_low_set_control().

## ◆ for_each_thread() [2/2]

template<typename Func >

static void for_each_thread | ( | int | pid,
|  | Func | func
| ) |  |
| static

Definition at line 159 of file gdbthread.h.

References for_each_thread(), thread_info::id, and ptid_t::pid().

## ◆ get_first_thread()

struct thread_info* get_first_thread | ( | void |  | ) |

Definition at line 55 of file inferiors.c.

References all_threads.

Referenced by get_child_debug_event(), handle_status(), lynx_request_interrupt(), process_serial_event(), spu_request_interrupt(), spu_resume(), and target_running().

## ◆ lwpid_of()

static long lwpid_of | ( | const thread_info * | thread | ) |
| inline static

Definition at line 222 of file gdbthread.h.

References thread_info::id, and ptid_t::lwp().

Referenced by aarch64_arch_setup(), aarch64_stopped_data_address(), arm_arch_setup(), arm_prepare_to_resume(), arm_read_description(), arm_stopped_by_watchpoint(), check_ptrace_stopped_lwp_gone(), delete_lwp(), dequeue_one_deferred_signal(), enqueue_one_deferred_signal(), handle_extended_wait(), kill_one_lwp_callback(), linux_detach_one_lwp(), linux_fast_tracepoint_collecting(), linux_handle_new_gdb_connection(), linux_kill_one_lwp(), linux_post_create_inferior(), linux_qxfer_libraries_svr4(), linux_qxfer_spu(), linux_read_auxv(), linux_read_memory(), linux_resume_one_lwp_throw(), linux_resume_one_thread(), linux_set_resume_request(), linux_stabilize_threads(), linux_wait_1(), linux_wait_for_event_filtered(), linux_write_memory(), linux_xfer_siginfo(), lwp_suspended_decr(), lwp_suspended_inc(), maybe_move_out_of_jump_pad(), mips_insert_point(), mips_read_description(), mips_stopped_by_watchpoint(), mips_stopped_data_address(), move_out_of_jump_pad_callback(), need_step_over_p(), proceed_all_lwps(), proceed_one_lwp(), save_stop_reason(), send_sigstop(), spu_request_interrupt(), start_step_over(), stuck_in_jump_pad_callback(), thread_still_has_status_pending_p(), unstop_all_lwps(), x86_fill_gregset(), x86_get_thread_area(), x86_linux_read_description(), x86_siginfo_fixup(), and x86_store_gregset().

## ◆ make_cleanup_restore_current_thread()

struct cleanup* make_cleanup_restore_current_thread | ( | void |  | ) |

Definition at line 223 of file inferiors.c.

References current_thread, do_restore_current_thread_cleanup(), and make_cleanup().

Referenced by install_software_single_step_breakpoints().

## ◆ pid_of()

static int pid_of | ( | const thread_info * | thread | ) |
| inline static

Definition at line 214 of file gdbthread.h.

References thread_info::id, and ptid_t::pid().

Referenced by aarch64_insert_point(), aarch64_remove_point(), aarch64_stopped_data_address(), arm_prepare_to_resume(), attach_thread(), check_zombie_leaders(), filter_exit_event(), handle_extended_wait(), handle_qxfer_exec_file(), linux_handle_new_gdb_connection(), linux_low_filter_event(), linux_set_resume_request(), ps_getpid(), read_ptid(), s390_arch_setup(), switch_to_process(), thread_db_init(), and tile_arch_setup().

## ◆ ptid_of()

static ptid_t ptid_of | ( | const thread_info * | thread | ) |
| inline static

Definition at line 206 of file gdbthread.h.

References thread_info::id.

Referenced by clone_all_breakpoints(), current_lwp_ptid(), delete_single_step_breakpoints(), filter_exit_event(), get_detach_signal(), handle_extended_wait(), handle_qxfer_threads_worker(), has_single_step_breakpoints(), kill_wait_lwp(), linux_detach_one_lwp(), linux_kill_one_lwp(), linux_low_filter_event(), linux_wait_1(), lynx_fetch_registers(), lynx_read_memory(), lynx_request_interrupt(), lynx_resume(), lynx_store_registers(), lynx_wait_1(), lynx_write_memory(), mips_linux_prepare_to_resume(), nto_fetch_registers(), nto_stopped_by_watchpoint(), nto_stopped_data_address(), nto_store_registers(), prepare_to_access_memory(), ptid_of_lwp(), reinsert_single_step_breakpoints(), remove_thread(), resume_stopped_resumed_lwps(), save_stop_reason(), select_event_lwp(), spu_resume(), stop_all_lwps(), and uninsert_single_step_breakpoints().

## ◆ remove_thread()

void remove_thread | ( | struct thread_info * | thread | ) |

Definition at line 98 of file inferiors.c.

References all_threads, thread_info::btrace, current_thread, discard_queued_stop_replies(), free_one_thread(), ptid_of(), and target_disable_btrace.

Referenced by delete_lwp(), delete_thread_info(), lynx_mourn(), lynx_wait_1(), and nto_find_new_threads().

## Variable Documentation

## ◆ all_threads

std::list<thread_info *> all_threads

Definition at line 26 of file inferiors.c.

Referenced by add_thread(), child_delete_thread(), clear_inferiors(), find_thread(), for_each_thread(), get_first_thread(), handle_query(), and remove_thread().