GDBserver

Functions | Variables
inferiors.c File Reference
`#include "server.h"`
`#include "gdbthread.h"`
`#include "dll.h"`

Go to the source code of this file.

## Functions
struct thread_info * | add_thread (ptid_t thread_id, void *target_data)
struct thread_info * | get_first_thread (void)
struct thread_info * | find_thread_ptid (ptid_t ptid)
static struct thread_info * | find_thread_process (const struct process_info *const process)
struct thread_info * | find_any_thread_of_pid (int pid)
static void | free_one_thread (thread_info *thread)
void | remove_thread (struct thread_info *thread)
void * | thread_target_data (struct thread_info *thread)
struct regcache * | thread_regcache_data (struct thread_info *thread)
void | set_thread_regcache_data (struct thread_info *thread, struct regcache *data)
void | clear_inferiors (void)
struct process_info * | add_process (int pid, int attached)
void | remove_process (struct process_info *process)
process_info * | find_process_pid (int pid)
process_info * | get_first_process (void)
int | have_started_inferiors_p (void)
int | have_attached_inferiors_p (void)
struct process_info * | get_thread_process (const struct thread_info *thread)
struct process_info * | current_process (void)
static void | do_restore_current_thread_cleanup (void *arg)
struct cleanup * | make_cleanup_restore_current_thread (void)
void | switch_to_thread (ptid_t ptid)
const char * | get_inferior_cwd ()
void | set_inferior_cwd (const char *cwd)

## Variables
std::list< process_info * > | all_processes
std::list< thread_info * > | all_threads
struct thread_info * | current_thread
static const char * | current_inferior_cwd = NULL

## Function Documentation

## ◆ add_process()

struct process_info* add_process | ( | int | pid,
|  | int | attached
| ) |  |

Definition at line 140 of file inferiors.c.

References all_processes, process_info::attached, process_info::pid, and process_info::process_info().

Referenced by do_attach(), do_initial_child_stuff(), linux_add_process(), lynx_add_process(), spu_attach(), and spu_create_inferior().

## ◆ add_thread()

struct thread_info* add_thread | ( | ptid_t | thread_id,
|  | 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().

## ◆ clear_inferiors()

void clear_inferiors | ( | void |  | ) |

Definition at line 129 of file inferiors.c.

References all_threads, clear_dlls(), current_thread, for_each_thread(), and free_one_thread().

Referenced by spu_detach(), spu_kill(), spu_wait(), and win32_clear_inferiors().

## ◆ current_process()

struct process_info* current_process | ( | void |  | ) |

Definition at line 210 of file inferiors.c.

References current_thread, gdb_assert, and get_thread_process().

Referenced by aarch64_arch_setup(), any_persistent_commands(), arm_arch_setup(), arm_insert_point(), arm_regs_info(), arm_remove_point(), attach_thread(), bfin_arch_setup(), breakpoint_here(), breakpoint_inserted_here(), check_breakpoints(), check_mem_read(), check_mem_write(), cris_arch_setup(), current_target_desc(), delete_all_breakpoints(), delete_breakpoint(), delete_disabled_breakpoints(), delete_fast_tracepoint_jump(), find_enabled_raw_code_breakpoint_at(), find_fast_tracepoint_jump_at(), find_gdb_breakpoint(), find_new_threads_callback(), find_one_thread(), find_raw_breakpoint_at(), handle_general_set(), handle_query(), hardware_breakpoint_inserted_here(), ia64_arch_setup(), linux_look_up_symbols(), linux_post_create_inferior(), linux_qxfer_libraries_svr4(), linux_wait_1(), look_up_one_symbol(), lynx_resume(), m32r_arch_setup(), m68k_arch_setup(), mips_arch_setup(), mips_cannot_fetch_register(), mips_cannot_store_register(), mips_insert_point(), mips_remove_point(), mips_stopped_by_watchpoint(), mips_stopped_data_address(), nios2_arch_setup(), ppc_arch_setup(), ppc_cannot_store_register(), ppc_get_auxv(), reinsert_all_breakpoints(), reinsert_breakpoints_at(), s390_arch_setup(), s390_regs_info(), set_breakpoint(), set_fast_tracepoint_jump(), set_raw_breakpoint_at(), sh_arch_setup(), single_step_breakpoint_inserted_here(), software_breakpoint_inserted_here(), sparc_arch_setup(), thread_db_find_new_threads(), thread_db_init(), thread_db_look_up_one_symbol(), thread_db_look_up_symbols(), tic6x_arch_setup(), tile_arch_setup(), try_thread_db_load_1(), uninsert_all_breakpoints(), uninsert_breakpoints_at(), validate_breakpoints(), x86_arch_setup(), x86_insert_point(), x86_remove_point(), x86_stopped_by_watchpoint(), x86_stopped_data_address(), and xtensa_arch_setup().

## ◆ do_restore_current_thread_cleanup()

static void do_restore_current_thread_cleanup | ( | void * | arg | ) |
| static

Definition at line 217 of file inferiors.c.

References current_thread.

Referenced by make_cleanup_restore_current_thread().

## ◆ 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_process_pid()

process_info* find_process_pid | ( | int | pid | ) |

Definition at line 164 of file inferiors.c.

References find_process(), and process_info::pid.

Referenced by aarch64_get_debug_reg_state(), arm_prepare_to_resume(), get_thread_process(), handle_detach(), handle_query(), handle_target_event(), linux_detach(), linux_handle_new_gdb_connection(), linux_kill(), linux_low_filter_event(), lynx_detach(), lynx_kill(), lynx_wait_1(), mips_linux_prepare_to_resume(), spu_detach(), spu_kill(), target_mourn_inferior(), win32_detach(), win32_kill(), and x86_debug_reg_state().

## ◆ find_thread_process()

static struct thread_info* find_thread_process | ( | const struct process_info *const | process | ) |
| static

Definition at line 75 of file inferiors.c.

References find_any_thread_of_pid(), and process_info::pid.

Referenced by remove_process().

## ◆ 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().

## ◆ free_one_thread()

static void free_one_thread | ( | thread_info * | thread | ) |
| static

Definition at line 91 of file inferiors.c.

References free(), free_register_cache(), and thread_regcache_data().

Referenced by clear_inferiors(), and remove_thread().

## ◆ get_first_process()

process_info* get_first_process | ( | void |  | ) |

Definition at line 174 of file inferiors.c.

References all_processes.

Referenced by read_ptid().

## ◆ 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().

## ◆ get_inferior_cwd()

const char* get_inferior_cwd | ( |  | ) |

Definition at line 240 of file inferiors.c.

References current_inferior_cwd.

Referenced by create_process(), and fork_inferior().

## ◆ get_thread_process()

struct process_info* get_thread_process | ( | const struct thread_info * | thread | ) |

Definition at line 204 of file inferiors.c.

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

Referenced by clone_all_breakpoints(), current_process(), delete_single_step_breakpoints(), gdb_catch_this_syscall_p(), gdb_catching_syscalls_p(), get_thread_regcache(), handle_extended_wait(), has_single_step_breakpoints(), linux_resume_one_lwp_throw(), need_step_over_p(), reinsert_single_step_breakpoints(), thread_db_get_tls_address(), thread_db_notice_clone(), thread_db_thread_handle(), and uninsert_single_step_breakpoints().

## ◆ have_attached_inferiors_p()

int have_attached_inferiors_p | ( | void |  | ) |

Definition at line 196 of file inferiors.c.

References process_info::attached, and find_process().

Referenced by detach_or_kill_for_exit().

## ◆ have_started_inferiors_p()

int have_started_inferiors_p | ( | void |  | ) |

Definition at line 186 of file inferiors.c.

References process_info::attached, and find_process().

Referenced by detach_or_kill_for_exit().

## ◆ 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().

## ◆ remove_process()

void remove_process | ( | struct process_info * | process | ) |

Definition at line 154 of file inferiors.c.

References all_processes, clear_symbol_cache(), find_thread_process(), free_all_breakpoints(), gdb_assert, and process_info::symbol_cache.

Referenced by linux_mourn(), lynx_mourn(), nto_mourn(), spu_detach(), spu_kill(), spu_mourn(), win32_detach(), win32_kill(), and win32_mourn().

## ◆ 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().

## ◆ set_inferior_cwd()

void set_inferior_cwd | ( | const char * | cwd | ) |

Definition at line 248 of file inferiors.c.

References current_inferior_cwd, xfree(), and xstrdup().

Referenced by handle_general_set().

## ◆ set_thread_regcache_data()

void set_thread_regcache_data | ( | struct thread_info * | thread,
|  | struct regcache * | data
| ) |  |

Definition at line 123 of file inferiors.c.

References thread_info::regcache_data.

Referenced by free_register_cache_thread(), and get_thread_regcache().

## ◆ switch_to_thread()

void switch_to_thread | ( | ptid_t | ptid | ) |

Definition at line 231 of file inferiors.c.

References current_thread, find_thread_ptid(), gdb_assert, and minus_one_ptid.

Referenced by done_accessing_memory(), prepare_resume_reply(), and startup_inferior().

## ◆ thread_regcache_data()

struct regcache* thread_regcache_data | ( | struct thread_info * | thread | ) |

Definition at line 117 of file inferiors.c.

References thread_info::regcache_data.

Referenced by free_one_thread(), free_register_cache_thread(), get_thread_regcache(), and regcache_invalidate_thread().

## ◆ thread_target_data()

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

Definition at line 111 of file inferiors.c.

References thread_info::target_data.

Referenced by continue_one_thread(), delete_thread_info(), suspend_one_thread(), thread_rec(), update_debug_registers(), and win32_get_current_dr().

## Variable Documentation

## ◆ all_processes

std::list<process_info *> all_processes

Definition at line 25 of file inferiors.c.

Referenced by add_process(), find_process(), for_each_process(), get_first_process(), and remove_process().

## ◆ 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().

## ◆ current_inferior_cwd

const char* current_inferior_cwd = NULL
| static

Definition at line 31 of file inferiors.c.

Referenced by get_inferior_cwd(), and set_inferior_cwd().

## ◆ current_thread

struct thread_info* current_thread

Definition at line 28 of file inferiors.c.

Referenced by aarch64_arch_setup(), aarch64_insert_point(), aarch64_remove_point(), aarch64_stopped_data_address(), aarch64_supports_tracepoints(), add_thread(), arm_arch_setup(), arm_insert_point(), arm_is_thumb_mode(), arm_read_description(), arm_remove_point(), arm_stopped_by_watchpoint(), arm_stopped_data_address(), attach_inferior(), check_stopped_by_watchpoint(), clear_inferiors(), cmd_qtinit(), cmd_qtminftpilen(), cris_insert_point(), cris_remove_point(), cris_stopped_by_watchpoint(), cris_stopped_data_address(), current_lwp_ptid(), current_process(), current_target_desc(), delete_single_step_breakpoints(), disable_thread_event_reporting(), do_restore_current_thread_cleanup(), finish_step_over(), gdb_agent_about_to_close(), gdb_condition_true_at_breakpoint_z_type(), get_child_debug_event(), get_pc(), get_syscall_trapinfo(), get_thread_regcache(), handle_detach(), handle_extended_wait(), handle_query(), handle_qxfer_auxv(), handle_qxfer_exec_file(), handle_qxfer_fdpic(), handle_qxfer_libraries(), handle_qxfer_libraries_svr4(), handle_qxfer_siginfo(), handle_qxfer_spu(), handle_qxfer_statictrace(), handle_target_event(), install_software_single_step_breakpoints(), is_64bit_tdesc(), linux_arch_setup_thread(), linux_low_filter_event(), linux_post_create_inferior(), linux_qxfer_libraries_svr4(), linux_qxfer_spu(), linux_read_auxv(), linux_read_memory(), linux_resume_one_lwp_throw(), linux_stabilize_threads(), linux_stopped_by_hw_breakpoint(), linux_stopped_by_sw_breakpoint(), linux_stopped_by_watchpoint(), linux_stopped_data_address(), linux_wait_1(), linux_wait_for_event_filtered(), linux_write_memory(), linux_xfer_siginfo(), lynx_fetch_registers(), lynx_read_memory(), lynx_resume(), lynx_store_registers(), lynx_wait_1(), lynx_write_memory(), make_cleanup_restore_current_thread(), 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(), nto_fetch_registers(), nto_stopped_by_watchpoint(), nto_stopped_data_address(), nto_store_registers(), post_fork_inferior(), ppc_emit_ops(), ppc_get_ipa_tdesc_idx(), ppc_install_fast_tracepoint_jump_pad(), prepare_resume_reply(), prepare_to_access_memory(), process_serial_event(), ps_getpid(), ps_lgetregs(), putpkt_binary_1(), regcache_invalidate(), regcache_invalidate_thread(), reinsert_single_step_breakpoints(), remove_thread(), resume(), run_breakpoint_commands_z_type(), s390_arch_setup(), s390_emit_ops(), s390_get_ipa_tdesc_idx(), s390_get_thread_area(), s390_install_fast_tracepoint_jump_pad(), save_stop_reason(), set_desired_thread(), start_step_over(), switch_to_process(), switch_to_thread(), thread_db_get_tls_address(), thread_db_notice_clone(), thread_still_has_status_pending_p(), tile_arch_setup(), uninsert_single_step_breakpoints(), wait_for_sigstop(), win32_get_current_dr(), win32_wait(), x86_dr_low_set_addr(), x86_dr_low_set_control(), x86_fill_gregset(), x86_get_ipa_tdesc_idx(), x86_linux_read_description(), x86_linux_update_xmltarget(), x86_siginfo_fixup(), and x86_store_gregset().