GDB (xrefs)
|
#include "defs.h"
#include "gdbtypes.h"
#include "linux-tdep.h"
#include "auxv.h"
#include "target.h"
#include "gdbthread.h"
#include "gdbcore.h"
#include "regcache.h"
#include "regset.h"
#include "elf/common.h"
#include "elf-bfd.h"
#include "inferior.h"
#include "cli/cli-utils.h"
#include "arch-utils.h"
#include "gdb_obstack.h"
#include "observer.h"
#include "objfiles.h"
#include "infcall.h"
#include "gdbcmd.h"
#include "gdb_regex.h"
#include <ctype.h>
Go to the source code of this file.
Classes | |
struct | smaps_vmflags |
struct | linux_gdbarch_data |
struct | linux_info |
struct | linux_find_memory_regions_data |
struct | linux_make_mappings_data |
struct | linux_collect_regset_section_cb_data |
struct | linux_corefile_thread_data |
Macros | |
#define | GDB_MMAP_MAP_PRIVATE 0x02 /* Changes are private. */ |
#define | GDB_MMAP_MAP_ANONYMOUS 0x20 /* Don't use a file. */ |
Typedefs | |
typedef int | linux_find_memory_region_ftype(ULONGEST vaddr, ULONGEST size, ULONGEST offset, ULONGEST inode, int read, int write, int exec, int modified, const char *filename, void *data) |
Variables | |
static int | use_coredump_filter = 1 |
static struct gdbarch_data * | linux_gdbarch_data_handle |
static const struct inferior_data * | linux_inferior_data |
static linux_find_memory_region_ftype | linux_make_mappings_callback |
initialize_file_ftype | _initialize_linux_tdep |
#define GDB_MMAP_MAP_ANONYMOUS 0x20 /* Don't use a file. */ |
Definition at line 2309 of file linux-tdep.c.
Referenced by linux_infcall_mmap().
#define GDB_MMAP_MAP_PRIVATE 0x02 /* Changes are private. */ |
Definition at line 2308 of file linux-tdep.c.
Referenced by linux_infcall_mmap().
typedef int linux_find_memory_region_ftype(ULONGEST vaddr, ULONGEST size, ULONGEST offset, ULONGEST inode, int read, int write, int exec, int modified, const char *filename, void *data) |
Definition at line 1101 of file linux-tdep.c.
anonymous enum |
Definition at line 117 of file linux-tdep.c.
enum filterflags |
Enumerator | |
---|---|
COREFILTER_ANON_PRIVATE | |
COREFILTER_ANON_SHARED | |
COREFILTER_MAPPED_PRIVATE | |
COREFILTER_MAPPED_SHARED | |
COREFILTER_ELF_HEADERS | |
COREFILTER_HUGETLB_PRIVATE | |
COREFILTER_HUGETLB_SHARED |
Definition at line 49 of file linux-tdep.c.
void _initialize_linux_tdep | ( | void | ) |
Definition at line 2450 of file linux-tdep.c.
References _, add_setshow_boolean_cmd(), class_files, gdbarch_data_register_post_init(), init_linux_gdbarch_data(), invalidate_linux_cache_inf(), linux_inferior_data, linux_inferior_data_cleanup(), observer_attach_inferior_appeared(), observer_attach_inferior_exit(), setlist, show_use_coredump_filter(), showlist, and use_coredump_filter.
|
static |
Definition at line 446 of file linux-tdep.c.
References smaps_vmflags::exclude_coredump, if(), smaps_vmflags::initialized_p, smaps_vmflags::io_page, smaps_vmflags::shared_mapping, skip_spaces(), skip_to_space, and smaps_vmflags::uses_huge_tlb.
Referenced by linux_find_memory_regions_full().
|
static |
Definition at line 601 of file linux-tdep.c.
References COREFILTER_ANON_PRIVATE, COREFILTER_ANON_SHARED, COREFILTER_HUGETLB_PRIVATE, COREFILTER_HUGETLB_SHARED, COREFILTER_MAPPED_PRIVATE, COREFILTER_MAPPED_SHARED, smaps_vmflags::exclude_coredump, smaps_vmflags::initialized_p, smaps_vmflags::io_page, smaps_vmflags::shared_mapping, and smaps_vmflags::uses_huge_tlb.
Referenced by linux_find_memory_regions_full().
|
static |
Definition at line 2251 of file linux-tdep.c.
References mem_range::length, size, and mem_range::start.
Referenced by linux_vsyscall_range_raw().
|
static |
Definition at line 1334 of file linux-tdep.c.
References inferior_ptid, thread_info::ptid, ptid_get_pid(), thread_suspend_state::stop_signal, and thread_info::suspend.
Referenced by find_stop_signal().
|
static |
Definition at line 1344 of file linux-tdep.c.
References find_signalled_thread(), iterate_over_threads(), thread_suspend_state::stop_signal, and thread_info::suspend.
Referenced by linux_make_corefile_notes().
|
static |
Definition at line 172 of file linux-tdep.c.
References gdbarch_data().
Referenced by linux_get_siginfo_type().
|
static |
Definition at line 228 of file linux-tdep.c.
References current_inferior(), and linux_inferior_data.
Referenced by linux_vsyscall_range().
|
static |
Definition at line 166 of file linux-tdep.c.
References GDBARCH_OBSTACK_ZALLOC.
Referenced by _initialize_linux_tdep().
|
static |
Definition at line 202 of file linux-tdep.c.
References linux_inferior_data, and xfree().
Referenced by _initialize_linux_tdep(), and linux_inferior_data_cleanup().
|
static |
Definition at line 1553 of file linux-tdep.c.
References linux_collect_regset_section_cb_data::abort_iteration, regset::collect_regset, gdb_assert, gdb_signal_to_host(), linux_collect_regset_section_cb_data::lwp, linux_collect_regset_section_cb_data::note_data, linux_collect_regset_section_cb_data::note_size, linux_collect_regset_section_cb_data::obfd, linux_collect_regset_section_cb_data::regcache, linux_collect_regset_section_cb_data::stop_signal, xfree(), and xmalloc().
Referenced by linux_collect_thread_registers().
|
static |
Definition at line 1587 of file linux-tdep.c.
References linux_collect_regset_section_cb_data::abort_iteration, linux_collect_regset_section_cb_data::gdbarch, gdbarch_iterate_over_regset_sections(), get_regcache_arch(), linux_collect_regset_section_cb(), linux_collect_regset_section_cb_data::lwp, linux_collect_regset_section_cb_data::note_data, linux_collect_regset_section_cb_data::note_size, linux_collect_regset_section_cb_data::obfd, ptid_get_lwp(), ptid_get_tid(), linux_collect_regset_section_cb_data::regcache, and linux_collect_regset_section_cb_data::stop_signal.
Referenced by linux_corefile_thread_callback().
|
static |
Definition at line 1077 of file linux-tdep.c.
References _, core_bfd, error(), IP_ALL, IP_EXE, IP_MAPPINGS, IP_MINIMAL, linux_core_info_proc_mappings(), printf_filtered(), and warning().
Referenced by linux_init_abi().
Definition at line 974 of file linux-tdep.c.
References _, core_bfd, core_gdbarch, do_cleanups(), error(), gdb_static_assert, gdbarch_addr_bit(), gdbarch_from_bfd(), hex_string(), make_cleanup(), paddress(), printf_filtered(), warning(), xfree(), and xmalloc().
Referenced by linux_core_info_proc().
Definition at line 385 of file linux-tdep.c.
References normal_pid_to_str(), and ptid_get_lwp().
Referenced by linux_init_abi().
|
static |
Definition at line 1666 of file linux-tdep.c.
References do_cleanups(), linux_corefile_thread_data::gdbarch, get_thread_arch_regcache(), inferior_ptid, linux_collect_thread_registers(), linux_get_siginfo_data(), make_cleanup(), linux_corefile_thread_data::note_data, linux_corefile_thread_data::note_size, linux_corefile_thread_data::obfd, linux_corefile_thread_data::pid, thread_info::ptid, ptid_get_pid(), save_inferior_ptid(), thread_info::state, linux_corefile_thread_data::stop_signal, target_fetch_registers(), THREAD_EXITED, and xfree().
Referenced by linux_make_corefile_notes().
Definition at line 2384 of file linux-tdep.c.
References _, current_target, error(), gdbarch_breakpoint_from_pc(), gdbarch_convert_from_func_ptr_addr(), and target_auxv_search().
Referenced by amd64_linux_init_abi_common(), arm_linux_init_abi(), i386_linux_init_abi(), and s390_gdbarch_init().
|
static |
Definition at line 1720 of file linux-tdep.c.
References do_cleanups(), gdb_assert, get_inferior_args(), inferior_ptid, make_cleanup(), pid, ptid_get_pid(), skip_spaces(), target_fileio_read_stralloc(), xfree(), and xsnprintf().
Referenced by linux_make_corefile_notes().
|
static |
Definition at line 1318 of file linux-tdep.c.
References func, linux_find_memory_regions_data::func, linux_find_memory_regions_full(), linux_find_memory_regions_thunk(), and linux_find_memory_regions_data::obfd.
Referenced by linux_init_abi().
|
static |
Definition at line 1111 of file linux-tdep.c.
References _, COREFILTER_ANON_PRIVATE, COREFILTER_ANON_SHARED, COREFILTER_ELF_HEADERS, COREFILTER_HUGETLB_PRIVATE, current_inferior(), gdbarch::data, decode_vmflags(), do_cleanups(), dump_mapping_p(), inferior::fake_pid_p, func, line, make_cleanup(), mapping_is_anonymous_p(), offset, inferior::pid, pid, read(), read_mapping(), target_fileio_read_stralloc(), use_coredump_filter, warning(), xfree(), and xsnprintf().
Referenced by linux_find_memory_regions(), and linux_make_mappings_corefile_notes().
|
static |
Definition at line 1304 of file linux-tdep.c.
References linux_find_memory_regions_data::func, and linux_find_memory_regions_data::obfd.
Referenced by linux_find_memory_regions().
Definition at line 2002 of file linux-tdep.c.
References int, LINUX_SIGABRT, LINUX_SIGALRM, LINUX_SIGBUS, LINUX_SIGCHLD, LINUX_SIGCONT, LINUX_SIGFPE, LINUX_SIGHUP, LINUX_SIGILL, LINUX_SIGINT, LINUX_SIGIO, LINUX_SIGKILL, LINUX_SIGPIPE, LINUX_SIGPROF, LINUX_SIGPWR, LINUX_SIGQUIT, LINUX_SIGRTMAX, LINUX_SIGRTMIN, LINUX_SIGSEGV, LINUX_SIGSTOP, LINUX_SIGSYS, LINUX_SIGTERM, LINUX_SIGTRAP, LINUX_SIGTSTP, LINUX_SIGTTIN, LINUX_SIGTTOU, LINUX_SIGURG, LINUX_SIGUSR1, LINUX_SIGUSR2, LINUX_SIGVTALRM, LINUX_SIGWINCH, LINUX_SIGXCPU, LINUX_SIGXFSZ, and offset.
Referenced by alpha_linux_gdb_signal_from_target(), linux_init_abi(), mips_gdb_signal_from_target(), sparc32_linux_gdb_signal_from_target(), and xtensa_linux_gdb_signal_from_target().
Definition at line 2125 of file linux-tdep.c.
References LINUX_SIGABRT, LINUX_SIGALRM, LINUX_SIGBUS, LINUX_SIGCHLD, LINUX_SIGCONT, LINUX_SIGFPE, LINUX_SIGHUP, LINUX_SIGILL, LINUX_SIGINT, LINUX_SIGIO, LINUX_SIGKILL, LINUX_SIGPIPE, LINUX_SIGPOLL, LINUX_SIGPROF, LINUX_SIGPWR, LINUX_SIGQUIT, LINUX_SIGRTMAX, LINUX_SIGRTMIN, LINUX_SIGSEGV, LINUX_SIGSTOP, LINUX_SIGSYS, LINUX_SIGTERM, LINUX_SIGTRAP, LINUX_SIGTSTP, LINUX_SIGTTIN, LINUX_SIGTTOU, LINUX_SIGURG, LINUX_SIGUSR1, LINUX_SIGUSR2, LINUX_SIGVTALRM, LINUX_SIGWINCH, LINUX_SIGXCPU, LINUX_SIGXFSZ, and offset.
Referenced by alpha_linux_gdb_signal_to_target(), linux_init_abi(), mips_gdb_signal_to_target(), sparc32_linux_gdb_signal_to_target(), and xtensa_linux_gdb_signal_to_target().
Definition at line 1621 of file linux-tdep.c.
References current_target, discard_cleanups(), do_cleanups(), gdbarch_get_siginfo_type(), gdbarch_get_siginfo_type_p(), make_cleanup(), TARGET_OBJECT_SIGNAL_INFO, target_read(), TYPE_LENGTH, xfree(), and xmalloc().
Referenced by linux_corefile_thread_callback().
Definition at line 247 of file linux-tdep.c.
References append_composite_type_field(), append_composite_type_field_aligned(), arch_composite_type(), arch_integer_type(), arch_type(), gdbarch_int_bit(), gdbarch_long_bit(), gdbarch_ptr_bit(), get_linux_gdbarch_data(), HOST_CHAR_BIT, init_vector_type(), lookup_pointer_type(), linux_gdbarch_data::siginfo_type, type, TYPE_CODE_STRUCT, TYPE_CODE_TYPEDEF, TYPE_CODE_UNION, TYPE_LENGTH, TYPE_NAME, TYPE_TARGET_STUB, and TYPE_TARGET_TYPE.
Referenced by linux_init_abi().
Definition at line 377 of file linux-tdep.c.
References linux_is_uclinux().
Referenced by linux_init_abi().
Definition at line 2314 of file linux-tdep.c.
References _, call_function_by_hand(), error(), find_function_in_inferior(), gdb_assert, GDB_MMAP_MAP_ANONYMOUS, GDB_MMAP_MAP_PRIVATE, GDB_MMAP_PROT_EXEC, GDB_MMAP_PROT_READ, GDB_MMAP_PROT_WRITE, get_objfile_arch(), pulongest(), value_as_address(), value_from_longest(), value_from_pointer(), and value_from_ulongest().
Referenced by linux_init_abi().
Definition at line 2355 of file linux-tdep.c.
References _, call_function_by_hand(), find_function_in_inferior(), get_objfile_arch(), hex_string(), pulongest(), value_as_long(), value_from_pointer(), value_from_ulongest(), and warning().
Referenced by linux_init_abi().
|
static |
Definition at line 219 of file linux-tdep.c.
References invalidate_linux_cache_inf().
Referenced by _initialize_linux_tdep().
|
static |
Definition at line 681 of file linux-tdep.c.
References _, current_inferior(), do_cleanups(), error(), gdbarch_addr_bit(), hex_string(), IP_ALL, IP_CMDLINE, IP_CWD, IP_EXE, IP_MAPPINGS, IP_MINIMAL, IP_STAT, IP_STATUS, line, make_cleanup(), offset, paddress(), inferior::pid, pid, printf_filtered(), pulongest(), puts_filtered(), read_mapping(), skip_spaces_const(), strtoulst(), target_fileio_read_stralloc(), target_fileio_readlink(), target_has_execution, warning(), xfree(), and xsnprintf().
Referenced by linux_init_abi().
void linux_init_abi | ( | struct gdbarch_info | info, |
struct gdbarch * | gdbarch | ||
) |
Definition at line 2427 of file linux-tdep.c.
References linux_core_info_proc(), linux_core_pid_to_str(), linux_find_memory_regions(), linux_gdb_signal_from_target(), linux_gdb_signal_to_target(), linux_get_siginfo_type(), linux_has_shared_address_space(), linux_infcall_mmap(), linux_infcall_munmap(), linux_info_proc(), linux_make_corefile_notes(), linux_vsyscall_range(), set_gdbarch_core_info_proc(), set_gdbarch_core_pid_to_str(), set_gdbarch_find_memory_regions(), set_gdbarch_gdb_signal_from_target(), set_gdbarch_gdb_signal_to_target(), set_gdbarch_get_siginfo_type(), set_gdbarch_has_shared_address_space(), set_gdbarch_infcall_mmap(), set_gdbarch_infcall_munmap(), set_gdbarch_info_proc(), set_gdbarch_make_corefile_notes(), and set_gdbarch_vsyscall_range().
Referenced by aarch64_linux_init_abi(), alpha_linux_init_abi(), am33_linux_init_osabi(), amd64_linux_init_abi_common(), arm_linux_init_abi(), bfin_linux_init_abi(), cris_linux_init_abi(), frv_linux_init_abi(), hppa_linux_init_abi(), i386_linux_init_abi(), ia64_linux_init_abi(), m32r_linux_init_abi(), m68k_linux_init_abi(), microblaze_linux_init_abi(), mips_linux_init_abi(), nios2_linux_init_abi(), s390_gdbarch_init(), sh_linux_init_abi(), sparc32_linux_init_abi(), sparc64_linux_init_abi(), tic6x_uclinux_init_abi(), tilegx_linux_init_abi(), and xtensa_linux_init_abi().
int linux_is_uclinux | ( | void | ) |
Definition at line 368 of file linux-tdep.c.
References current_target, dummy, and target_auxv_search().
Referenced by linux_has_shared_address_space(), and m68k_linux_get_sigtramp_info().
|
static |
Definition at line 1918 of file linux-tdep.c.
References CATCH, current_target, END_CATCH, exception_print(), find_stop_signal(), gdb_stderr, linux_corefile_thread_data::gdbarch, gdbarch_elfcore_write_linux_prpsinfo(), gdbarch_elfcore_write_linux_prpsinfo_p(), gdbarch_iterate_over_regset_sections_p(), gdbarch_ptr_bit(), inferior_ptid, iterate_over_threads(), linux_corefile_thread_callback(), linux_fill_prpsinfo(), linux_make_mappings_corefile_notes(), linux_spu_make_corefile_notes(), linux_corefile_thread_data::note_data, linux_corefile_thread_data::note_size, linux_corefile_thread_data::obfd, linux_corefile_thread_data::pid, ptid_get_pid(), RETURN_MASK_ERROR, linux_corefile_thread_data::stop_signal, TARGET_OBJECT_AUXV, target_read_alloc(), TRY, update_thread_list(), and xfree().
Referenced by linux_init_abi().
|
static |
Definition at line 1452 of file linux-tdep.c.
References linux_make_mappings_data::data_obstack, linux_make_mappings_data::file_count, linux_make_mappings_data::filename_obstack, linux_make_mappings_data::long_type, obstack_grow_str0, pack_long(), and TYPE_LENGTH.
|
static |
Definition at line 1483 of file linux-tdep.c.
References arch_integer_type(), linux_make_mappings_data::data_obstack, do_cleanups(), linux_make_mappings_data::file_count, linux_make_mappings_data::filename_obstack, gdbarch_long_bit(), linux_find_memory_regions_full(), linux_make_mappings_callback, linux_make_mappings_data::long_type, make_cleanup_obstack_free(), pack_long(), and TYPE_LENGTH.
Referenced by linux_make_corefile_notes().
|
static |
Definition at line 1358 of file linux-tdep.c.
References current_target, extract_unsigned_integer(), gdbarch_byte_order(), size, target_gdbarch(), TARGET_OBJECT_SPU, target_read_alloc(), xfree(), and xsnprintf().
Referenced by linux_make_corefile_notes().
Definition at line 2287 of file linux-tdep.c.
References get_linux_inferior_data(), linux_vsyscall_range_raw(), linux_info::vsyscall_range, and linux_info::vsyscall_range_p.
Referenced by linux_init_abi().
Definition at line 2269 of file linux-tdep.c.
References current_target, find_mapping_size(), gdb_assert, gdbarch_find_memory_regions(), gdbarch_find_memory_regions_p(), mem_range::length, mem_range::start, target_auxv_search(), and target_gdbarch().
Referenced by linux_vsyscall_range().
Definition at line 481 of file linux-tdep.c.
References _, compile_rx_or_error(), discard_cleanups(), make_cleanup(), and null_cleanup().
Referenced by linux_find_memory_regions_full().
|
static |
Definition at line 401 of file linux-tdep.c.
References line, skip_spaces_const(), and strtoulst().
Referenced by linux_find_memory_regions_full(), and linux_info_proc().
|
static |
Definition at line 2416 of file linux-tdep.c.
References _, and fprintf_filtered().
Referenced by _initialize_linux_tdep().
initialize_file_ftype _initialize_linux_tdep |
|
static |
Definition at line 158 of file linux-tdep.c.
|
static |
Definition at line 178 of file linux-tdep.c.
Referenced by _initialize_linux_tdep(), get_linux_inferior_data(), and invalidate_linux_cache_inf().
|
static |
Definition at line 1446 of file linux-tdep.c.
Referenced by linux_make_mappings_corefile_notes().
|
static |
Definition at line 91 of file linux-tdep.c.
Referenced by _initialize_linux_tdep(), and linux_find_memory_regions_full().