GDBserver

Classes | Macros | Functions | Variables
linux-low.h File Reference
`#include "nat/linux-nat.h"`
`#include "nat/gdb_thread_db.h"`
`#include <signal.h>`
`#include "gdbthread.h"`
`#include "gdb_proc_service.h"`
`#include "nat/linux-ptrace.h"`
`#include "target/waitstatus.h"`
`#include "tracepoint.h"`

Go to the source code of this file.

## Classes
struct | usrregs_info
struct | regs_info
struct | process_info_private
struct | linux_target_ops
struct | lwp_info

## Macros
#define | PTRACE_XFER_TYPE long
#define | get_thread_lwp(thr) ((struct lwp_info *) (thread_target_data (thr)))
#define | get_lwp_thread(lwp) ((lwp)->thread)

## Functions
int | linux_pid_exe_is_elf_64_file (int pid, unsigned int *machine)
int | linux_attach_lwp (ptid_t ptid)
struct lwp_info * | find_lwp_pid (ptid_t ptid)
void | initialize_low_arch (void)
void | linux_set_pc_32bit (struct regcache *regcache, CORE_ADDR pc)
CORE_ADDR | linux_get_pc_32bit (struct regcache *regcache)
void | linux_set_pc_64bit (struct regcache *regcache, CORE_ADDR pc)
CORE_ADDR | linux_get_pc_64bit (struct regcache *regcache)
int | thread_db_init (void)
void | thread_db_detach (struct process_info *)
void | thread_db_mourn (struct process_info *)
int | thread_db_handle_monitor_command (char *)
int | thread_db_get_tls_address (struct thread_info *thread, CORE_ADDR offset, CORE_ADDR load_module, CORE_ADDR *address)
int | thread_db_look_up_one_symbol (const char *name, CORE_ADDR *addrp)
void | thread_db_notice_clone (struct thread_info *parent_thr, ptid_t child_ptid)
bool | thread_db_thread_handle (ptid_t ptid, gdb_byte **handle, int *handle_len)

## Variables
struct linux_target_ops | the_low_target
int | have_ptrace_getregset

## Macro Definition Documentation

## ◆ get_lwp_thread

#define get_lwp_thread | ( |  | lwp | ) | ((lwp)->thread)

Definition at line 264 of file linux-low.h.

Referenced by arm_prepare_to_resume(), check_ptrace_stopped_lwp_gone(), check_stopped_by_watchpoint(), delete_lwp(), dequeue_one_deferred_signal(), enqueue_one_deferred_signal(), filter_exit_event(), finish_step_over(), gdb_catch_this_syscall_p(), gdb_catching_syscalls_p(), get_pc(), get_syscall_trapinfo(), handle_extended_wait(), handle_tracepoints(), install_software_single_step_breakpoints(), kill_wait_lwp(), linux_detach_one_lwp(), linux_fast_tracepoint_collecting(), linux_kill_one_lwp(), linux_low_filter_event(), linux_resume_one_lwp_throw(), linux_wait_1(), linux_wait_for_event_filtered(), lwp_resumed(), lwp_suspended_decr(), lwp_suspended_inc(), maybe_move_out_of_jump_pad(), mips_linux_prepare_to_resume(), ppc_get_thread_area(), ps_lgetregs(), ptid_of_lwp(), save_stop_reason(), send_sigstop(), start_step_over(), stop_all_lwps(), unstop_all_lwps(), and x86_get_thread_area().

## ◆ get_thread_lwp

#define get_thread_lwp | ( |  | thr | ) | ((struct lwp_info *) (thread_target_data (thr)))

Definition at line 263 of file linux-low.h.

Referenced by arm_stopped_by_watchpoint(), arm_stopped_data_address(), find_lwp_pid(), find_one_thread(), get_detach_signal(), iterate_over_lwps(), kill_one_lwp_callback(), linux_detach_lwp_callback(), linux_handle_new_gdb_connection(), linux_post_create_inferior(), linux_resume(), linux_resume_one_thread(), linux_set_resume_request(), linux_stabilize_threads(), linux_stopped_by_hw_breakpoint(), linux_stopped_by_sw_breakpoint(), linux_stopped_by_watchpoint(), linux_stopped_data_address(), linux_thread_stopped(), linux_wait_1(), linux_wait_for_event_filtered(), lwp_running(), move_out_of_jump_pad_callback(), need_step_over_p(), not_stopped_callback(), proceed_all_lwps(), proceed_one_lwp(), resume_status_pending_p(), resume_stopped_resumed_lwps(), select_event_lwp(), send_sigstop(), status_pending_p_callback(), stuck_in_jump_pad_callback(), suspend_and_send_sigstop(), thread_db_get_tls_address(), thread_db_thread_handle(), thread_still_has_status_pending_p(), unsuspend_all_lwps(), unsuspend_and_proceed_one_lwp(), update_registers_callback(), and update_watch_registers_callback().

## ◆ PTRACE_XFER_TYPE

#define PTRACE_XFER_TYPE long

Definition at line 31 of file linux-low.h.

Referenced by linux_read_memory(), and linux_write_memory().

## Function Documentation

## ◆ find_lwp_pid()

struct lwp_info* find_lwp_pid | ( | ptid_t | ptid | ) |

Definition at line 1812 of file linux-low.c.

References find_thread(), get_thread_lwp, thread_info::id, ptid_t::lwp(), ptid_t::pid(), and lwp_info::thread.

Referenced by arm_new_fork(), attach_thread(), check_zombie_leaders(), complete_ongoing_step_over(), linux_attach(), linux_detach(), linux_kill(), linux_low_filter_event(), linux_thread_alive(), linux_wait_for_event_filtered(), maybe_attach_thread(), ppc_get_thread_area(), ps_lgetregs(), and x86_get_thread_area().

## ◆ initialize_low_arch()

void initialize_low_arch | ( | void |  | ) |

Definition at line 2996 of file linux-aarch64-low.c.

References aarch64_regsets_info, allocate_target_description(), arm_regsets_info, copy_target_description(), cris_regsets_info, i386_linux_read_description(), init_registers_arm(), init_registers_arm_with_iwmmxt(), init_registers_arm_with_vfpv2(), init_registers_arm_with_vfpv3(), init_registers_bfin(), init_registers_cris(), init_registers_crisv32(), init_registers_ia64(), init_registers_m32r(), init_registers_m68k(), init_registers_mips64_dsp_linux(), init_registers_mips64_linux(), init_registers_mips_dsp_linux(), init_registers_mips_linux(), init_registers_nios2_linux(), init_registers_powerpc_32l(), init_registers_powerpc_altivec32l(), init_registers_powerpc_cell32l(), init_registers_powerpc_e500l(), init_registers_powerpc_isa205_32l(), init_registers_powerpc_isa205_altivec32l(), init_registers_powerpc_isa205_vsx32l(), init_registers_powerpc_vsx32l(), init_registers_s390_gs_linux64(), init_registers_s390_linux32(), init_registers_s390_linux32v1(), init_registers_s390_linux32v2(), init_registers_s390_linux64(), init_registers_s390_linux64v1(), init_registers_s390_linux64v2(), init_registers_s390_te_linux64(), init_registers_s390_tevx_linux64(), init_registers_s390_vx_linux64(), init_registers_sh(), init_registers_sparc64(), init_registers_tic6x_c62x_linux(), init_registers_tic6x_c64x_linux(), init_registers_tic6x_c64xp_linux(), init_registers_tilegx(), init_registers_tilegx32(), init_registers_xtensa(), initialize_low_arch_aarch32(), initialize_low_tdesc(), m68k_regsets_info, mips_regsets_info, nios2_regsets_info, ppc_regsets_info, selftests::register_test(), s390_regsets_info, s390_regsets_info_3264, sh_regsets_info, sparc_regsets_info, tdesc_i386_linux_no_xml, tic6x_regsets_info, tile_regsets_info, x86_regsets_info, X86_XSTATE_SSE_MASK, target_desc::xmltarget, xmltarget_i386_linux_no_xml, and xtensa_regsets_info.

Referenced by initialize_low().

## ◆ linux_attach_lwp()

int linux_attach_lwp | ( | ptid_t | ptid | ) |

Definition at line 1047 of file linux-low.c.

References add_lwp(), debug_printf(), debug_threads, errno, kill_lwp(), linux_proc_pid_is_stopped(), lwp_info::must_set_ptrace_flags, ptid_get_lwp(), ptrace(), PTRACE_TYPE_ARG3, PTRACE_TYPE_ARG4, and lwp_info::stop_expected.

Referenced by attach_proc_task_lwp_callback(), attach_thread(), and linux_attach().

## ◆ linux_get_pc_32bit()

CORE_ADDR linux_get_pc_32bit | ( | struct regcache * | regcache | ) |

Definition at line 7411 of file linux-low.c.

References collect_register_by_name(), debug_printf(), and debug_threads.

Referenced by aarch64_get_pc().

## ◆ linux_get_pc_64bit()

CORE_ADDR linux_get_pc_64bit | ( | struct regcache * | regcache | ) |

Definition at line 7436 of file linux-low.c.

References collect_register_by_name(), debug_printf(), and debug_threads.

Referenced by aarch64_get_pc().

## ◆ linux_pid_exe_is_elf_64_file()

int linux_pid_exe_is_elf_64_file | ( | int | pid,
|  | unsigned int * | machine
| ) |  |

Definition at line 400 of file linux-low.c.

References elf_64_file_p().

Referenced by aarch64_arch_setup(), tile_arch_setup(), x86_linux_read_description(), and x86_siginfo_fixup().

## ◆ linux_set_pc_32bit()

void linux_set_pc_32bit | ( | struct regcache * | regcache,
|  | CORE_ADDR | pc
| ) |  |

Definition at line 7400 of file linux-low.c.

References supply_register_by_name().

Referenced by aarch64_set_pc().

## ◆ linux_set_pc_64bit()

void linux_set_pc_64bit | ( | struct regcache * | regcache,
|  | CORE_ADDR | pc
| ) |  |

Definition at line 7425 of file linux-low.c.

References supply_register_by_name().

Referenced by aarch64_set_pc().

## ◆ thread_db_detach()

void thread_db_detach | ( | struct process_info * |  | ) |

Definition at line 815 of file thread-db.c.

References disable_thread_event_reporting(), process_info::priv, and process_info_private::thread_db.

Referenced by linux_detach().

## ◆ thread_db_get_tls_address()

int thread_db_get_tls_address | ( | struct thread_info * | thread,
|  | CORE_ADDR | offset,
|  | CORE_ADDR | load_module,
|  | CORE_ADDR * | address
| ) |  |

Definition at line 384 of file thread-db.c.

References thread_db::all_symbols_looked_up, current_thread, find_one_thread(), get_thread_lwp, get_thread_process(), thread_info::id, offset, process_info::priv, TD_ERR, TD_NOTHR, TD_OK, thread_db::td_thr_tls_get_addr_p, thread_db::td_thr_tlsbase_p, and process_info_private::thread_db.

## ◆ thread_db_handle_monitor_command()

int thread_db_handle_monitor_command | ( | char * |  | ) |

Definition at line 857 of file thread-db.c.

References free(), LIBTHREAD_DB_SEARCH_PATH, libthread_db_search_path, monitor_output(), and xstrdup().

## ◆ thread_db_init()

int thread_db_init | ( | void |  | ) |

Definition at line 735 of file thread-db.c.

References current_process(), linux_proc_task_list_dir_exists(), pid_of(), thread_db_find_new_threads(), thread_db_load_search(), and thread_db_look_up_symbols().

Referenced by linux_look_up_symbols().

## ◆ thread_db_look_up_one_symbol()

int thread_db_look_up_one_symbol | ( | const char * | name,
|  | CORE_ADDR * | addrp
| ) |  |

Definition at line 370 of file thread-db.c.

References thread_db::all_symbols_looked_up, current_process(), look_up_one_symbol(), name, process_info::priv, and process_info_private::thread_db.

Referenced by ps_pglobal_lookup().

## ◆ thread_db_mourn()

void thread_db_mourn | ( | struct process_info * |  | ) |

Definition at line 828 of file thread-db.c.

References free(), thread_db::handle, process_info::priv, td_ta_delete(), thread_db::thread_agent, and process_info_private::thread_db.

Referenced by linux_mourn().

## ◆ thread_db_notice_clone()

void thread_db_notice_clone | ( | struct thread_info * | parent_thr,
|  | ptid_t | child_ptid
| ) |  |

Definition at line 892 of file thread-db.c.

References thread_db::all_symbols_looked_up, current_thread, find_one_thread(), get_thread_process(), make_scoped_restore(), process_info::priv, process_info_private::thread_db, and warning().

Referenced by handle_extended_wait().

## ◆ thread_db_thread_handle()

bool thread_db_thread_handle | ( | ptid_t | ptid,
|  | gdb_byte ** | handle,
|  | int * | handle_len
| ) |  |

Definition at line 450 of file thread-db.c.

References find_one_thread(), find_thread_ptid(), gdb_assert, get_thread_lwp, get_thread_process(), thread_info::id, process_info::priv, lwp_info::thread, and process_info_private::thread_db.

## Variable Documentation

## ◆ have_ptrace_getregset

int have_ptrace_getregset

Definition at line 137 of file linux-low.c.

Referenced by arm_arch_setup(), arm_regs_info(), and x86_linux_read_description().

## ◆ the_low_target

struct linux_target_ops the_low_target

Definition at line 2955 of file linux-aarch64-low.c.