GDB (xrefs)

Macros | Functions | Variables
/tmp/gdb-8.1/gdb/i386-linux-tdep.c File Reference
`#include "defs.h"`
`#include "gdbcore.h"`
`#include "frame.h"`
`#include "value.h"`
`#include "regcache.h"`
`#include "regset.h"`
`#include "inferior.h"`
`#include "osabi.h"`
`#include "reggroups.h"`
`#include "dwarf2-frame.h"`
`#include "i386-tdep.h"`
`#include "i386-linux-tdep.h"`
`#include "linux-tdep.h"`
`#include "utils.h"`
`#include "glibc-tdep.h"`
`#include "solib-svr4.h"`
`#include "symtab.h"`
`#include "arch-utils.h"`
`#include "xml-syscall.h"`
`#include "i387-tdep.h"`
`#include "x86-xstate.h"`
`#include "record-full.h"`
`#include "linux-record.h"`
`#include "arch/i386.h"`
`#include "target-descriptions.h"`

Go to the source code of this file.

## Macros
#define | XML_SYSCALL_FILENAME_I386 "syscalls/i386-linux.xml"
#define | LINUX_SIGTRAMP_INSN0 0x58 /* pop %eax */
#define | LINUX_SIGTRAMP_OFFSET0 0
#define | LINUX_SIGTRAMP_INSN1 0xb8 /* mov $NNNN, %eax */
#define | LINUX_SIGTRAMP_OFFSET1 1
#define | LINUX_SIGTRAMP_INSN2 0xcd /* int */
#define | LINUX_SIGTRAMP_OFFSET2 6
#define | LINUX_SIGTRAMP_LEN (sizeof linux_sigtramp_code)
#define | LINUX_RT_SIGTRAMP_INSN0 0xb8 /* mov $NNNN, %eax */
#define | LINUX_RT_SIGTRAMP_OFFSET0 0
#define | LINUX_RT_SIGTRAMP_INSN1 0xcd /* int */
#define | LINUX_RT_SIGTRAMP_OFFSET1 5
#define | LINUX_RT_SIGTRAMP_LEN (sizeof linux_rt_sigtramp_code)
#define | I386_LINUX_UCONTEXT_SIGCONTEXT_OFFSET 20
#define | SIG_CODE_BONDARY_FAULT 3
#define | I386_LINUX_xstate 270
#define | I386_LINUX_frame_size 732

## Functions
static int | i386_linux_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *group)
static CORE_ADDR | i386_linux_sigtramp_start (struct frame_info *this_frame)
static CORE_ADDR | i386_linux_rt_sigtramp_start (struct frame_info *this_frame)
static int | i386_linux_sigtramp_p (struct frame_info *this_frame)
static int | i386_linux_dwarf_signal_frame_p (struct gdbarch *gdbarch, struct frame_info *this_frame)
static CORE_ADDR | i386_linux_sigcontext_addr (struct frame_info *this_frame)
static void | i386_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
static int | i386_all_but_ip_registers_record (struct regcache *regcache)
static enum gdb_syscall | i386_canonicalize_syscall (int syscall)
void | i386_linux_handle_segmentation_fault (struct gdbarch *gdbarch, struct ui_out *uiout)
static int | i386_linux_intx80_sysenter_syscall_record (struct regcache *regcache)
static int | i386_linux_record_signal (struct gdbarch *gdbarch, struct regcache *regcache, enum gdb_signal signal)
static LONGEST | i386_linux_get_syscall_number_from_regcache (struct regcache *regcache)
static LONGEST | i386_linux_get_syscall_number (struct gdbarch *gdbarch, ptid_t ptid)
uint64_t | i386_linux_core_read_xcr0 (bfd *abfd)
const struct target_desc * | i386_linux_read_description (uint64_t xcr0)
static const struct target_desc * | i386_linux_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
static void | i386_linux_supply_xstateregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *xstateregs, size_t len)
struct type * | x86_linux_get_siginfo_type (struct gdbarch *gdbarch)
static void | i386_linux_collect_xstateregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *xstateregs, size_t len)
static void | i386_linux_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
static struct displaced_step_closure * | i386_linux_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
static void | i386_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
void | _initialize_i386_linux_tdep (void)

## Variables
static const gdb_byte | linux_sigtramp_code []
static const gdb_byte | linux_rt_sigtramp_code []
static struct linux_record_tdep | i386_linux_record_tdep
int | i386_linux_gregset_reg_offset []
static int | i386_linux_sc_reg_offset []
static const struct regset | i386_linux_xstateregset

## Macro Definition Documentation

## ◆ I386_LINUX_frame_size

#define I386_LINUX_frame_size 732

Definition at line 496 of file i386-linux-tdep.c.

Referenced by i386_linux_record_signal().

## ◆ I386_LINUX_UCONTEXT_SIGCONTEXT_OFFSET

#define I386_LINUX_UCONTEXT_SIGCONTEXT_OFFSET 20

Definition at line 271 of file i386-linux-tdep.c.

Referenced by i386_linux_sigcontext_addr().

## ◆ I386_LINUX_xstate

#define I386_LINUX_xstate 270

Definition at line 495 of file i386-linux-tdep.c.

Referenced by i386_linux_record_signal().

## ◆ LINUX_RT_SIGTRAMP_INSN0

#define LINUX_RT_SIGTRAMP_INSN0 0xb8 /* mov $NNNN, %eax */

Definition at line 175 of file i386-linux-tdep.c.

Referenced by i386_linux_rt_sigtramp_start().

## ◆ LINUX_RT_SIGTRAMP_INSN1

#define LINUX_RT_SIGTRAMP_INSN1 0xcd /* int */

Definition at line 177 of file i386-linux-tdep.c.

Referenced by i386_linux_rt_sigtramp_start().

## ◆ LINUX_RT_SIGTRAMP_LEN

#define LINUX_RT_SIGTRAMP_LEN (sizeof linux_rt_sigtramp_code)

Definition at line 186 of file i386-linux-tdep.c.

Referenced by i386_linux_rt_sigtramp_start().

## ◆ LINUX_RT_SIGTRAMP_OFFSET0

#define LINUX_RT_SIGTRAMP_OFFSET0 0

Definition at line 176 of file i386-linux-tdep.c.

## ◆ LINUX_RT_SIGTRAMP_OFFSET1

#define LINUX_RT_SIGTRAMP_OFFSET1 5

Definition at line 178 of file i386-linux-tdep.c.

Referenced by i386_linux_rt_sigtramp_start().

## ◆ LINUX_SIGTRAMP_INSN0

#define LINUX_SIGTRAMP_INSN0 0x58 /* pop %eax */

Definition at line 104 of file i386-linux-tdep.c.

Referenced by i386_linux_sigtramp_start().

## ◆ LINUX_SIGTRAMP_INSN1

#define LINUX_SIGTRAMP_INSN1 0xb8 /* mov $NNNN, %eax */

Definition at line 106 of file i386-linux-tdep.c.

Referenced by i386_linux_sigtramp_start().

## ◆ LINUX_SIGTRAMP_INSN2

#define LINUX_SIGTRAMP_INSN2 0xcd /* int */

Definition at line 108 of file i386-linux-tdep.c.

Referenced by i386_linux_sigtramp_start().

## ◆ LINUX_SIGTRAMP_LEN

#define LINUX_SIGTRAMP_LEN (sizeof linux_sigtramp_code)

Definition at line 118 of file i386-linux-tdep.c.

Referenced by i386_linux_sigtramp_start().

## ◆ LINUX_SIGTRAMP_OFFSET0

#define LINUX_SIGTRAMP_OFFSET0 0

Definition at line 105 of file i386-linux-tdep.c.

## ◆ LINUX_SIGTRAMP_OFFSET1

#define LINUX_SIGTRAMP_OFFSET1 1

Definition at line 107 of file i386-linux-tdep.c.

Referenced by i386_linux_sigtramp_start().

## ◆ LINUX_SIGTRAMP_OFFSET2

#define LINUX_SIGTRAMP_OFFSET2 6

Definition at line 109 of file i386-linux-tdep.c.

Referenced by i386_linux_sigtramp_start().

## ◆ SIG_CODE_BONDARY_FAULT

#define SIG_CODE_BONDARY_FAULT 3

Definition at line 388 of file i386-linux-tdep.c.

Referenced by i386_linux_handle_segmentation_fault().

## ◆ XML_SYSCALL_FILENAME_I386

#define XML_SYSCALL_FILENAME_I386 "syscalls/i386-linux.xml"

Definition at line 44 of file i386-linux-tdep.c.

Referenced by i386_linux_init_abi().

## Function Documentation

## ◆ _initialize_i386_linux_tdep()

void _initialize_i386_linux_tdep | ( | void |  | ) |

Definition at line 1080 of file i386-linux-tdep.c.

References GDB_OSABI_LINUX, gdbarch_register_osabi(), i386_linux_init_abi(), i386_linux_read_description(), X86_XSTATE_AVX_AVX512_MASK, X86_XSTATE_AVX_MASK, X86_XSTATE_AVX_MPX_AVX512_PKU_MASK, X86_XSTATE_AVX_MPX_MASK, X86_XSTATE_MPX_MASK, X86_XSTATE_SSE_MASK, and X86_XSTATE_X87_MASK.

## ◆ i386_all_but_ip_registers_record()

static int i386_all_but_ip_registers_record | ( | struct regcache * | regcache | ) |
| static

Definition at line 346 of file i386-linux-tdep.c.

References I386_EAX_REGNUM, I386_EBP_REGNUM, I386_EBX_REGNUM, I386_ECX_REGNUM, I386_EDI_REGNUM, I386_EDX_REGNUM, I386_EFLAGS_REGNUM, I386_ESI_REGNUM, I386_ESP_REGNUM, and record_full_arch_list_add_reg().

Referenced by i386_linux_intx80_sysenter_syscall_record(), and i386_linux_record_signal().

## ◆ i386_canonicalize_syscall()

static enum gdb_syscall i386_canonicalize_syscall | ( | int | syscall | ) |
| static

Definition at line 376 of file i386-linux-tdep.c.

References gdb_sys_no_syscall.

Referenced by i386_linux_intx80_sysenter_syscall_record().

## ◆ i386_linux_collect_xstateregset()

static void i386_linux_collect_xstateregset | ( | const struct regset * | regset,
|  | const struct regcache * | regcache,
|  | int | regnum,
|  | void * | xstateregs,
|  | size_t | len
| ) |  |
| static

Definition at line 741 of file i386-linux-tdep.c.

References i387_collect_xsave(), and regnum.

## ◆ i386_linux_core_read_description()

static const struct target_desc* i386_linux_core_read_description | ( | struct gdbarch * | gdbarch,
|  | struct target_ops * | target,
|  | bfd * | abfd
| ) |  |
| static

Definition at line 705 of file i386-linux-tdep.c.

References i386_linux_core_read_xcr0(), i386_linux_read_description(), X86_XSTATE_SSE_MASK, and X86_XSTATE_X87_MASK.

Referenced by i386_linux_init_abi().

## ◆ i386_linux_core_read_xcr0()

uint64_t i386_linux_core_read_xcr0 | ( | bfd * | abfd | ) |

Definition at line 643 of file i386-linux-tdep.c.

References _, I386_LINUX_XSAVE_XCR0_OFFSET, size, warning(), X86_XSTATE_AVX_SIZE, and X86_XSTATE_SSE_MASK.

Referenced by amd64_linux_core_read_description(), and i386_linux_core_read_description().

## ◆ i386_linux_displaced_step_copy_insn()

static struct displaced_step_closure* i386_linux_displaced_step_copy_insn | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | from,
|  | CORE_ADDR | to,
|  | struct regcache * | regs
| ) |  |
| static

Definition at line 801 of file i386-linux-tdep.c.

References buf_displaced_step_closure::buf, i386_displaced_step_copy_insn(), and i386_linux_get_syscall_number_from_regcache().

Referenced by i386_linux_init_abi().

## ◆ i386_linux_dwarf_signal_frame_p()

static int i386_linux_dwarf_signal_frame_p | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | this_frame
| ) |  |
| static

Definition at line 253 of file i386-linux-tdep.c.

References find_pc_partial_function(), get_frame_pc(), and name.

Referenced by i386_linux_init_abi().

## ◆ i386_linux_get_syscall_number()

static LONGEST i386_linux_get_syscall_number | ( | struct gdbarch * | gdbarch,
|  | ptid_t | ptid
| ) |  |
| static

Definition at line 561 of file i386-linux-tdep.c.

References get_thread_regcache(), i386_linux_get_syscall_number_from_regcache(), and regcache::ptid().

Referenced by i386_linux_init_abi().

## ◆ i386_linux_get_syscall_number_from_regcache()

static LONGEST i386_linux_get_syscall_number_from_regcache | ( | struct regcache * | regcache | ) |
| static

Definition at line 538 of file i386-linux-tdep.c.

References regcache::arch(), gdbarch::byte_order, extract_signed_integer(), gdbarch_byte_order(), I386_LINUX_ORIG_EAX_REGNUM, and regcache_cooked_read().

Referenced by i386_linux_displaced_step_copy_insn(), and i386_linux_get_syscall_number().

## ◆ i386_linux_handle_segmentation_fault()

void i386_linux_handle_segmentation_fault | ( | struct gdbarch * | gdbarch,
|  | struct ui_out * | uiout
| ) |  |

Definition at line 394 of file i386-linux-tdep.c.

References _, CATCH, END_CATCH, ui_out::field_fmt(), ui_out::field_string(), i386_mpx_enabled(), paddress(), parse_and_eval_long(), RETURN_MASK_ALL, SIG_CODE_BONDARY_FAULT, ui_out::text(), and TRY.

Referenced by amd64_linux_init_abi_common(), and i386_linux_init_abi().

## ◆ i386_linux_init_abi()

static void i386_linux_init_abi | ( | struct gdbarch_info | info,
|  | struct gdbarch * | gdbarch
| ) |  |
| static

Definition at line 823 of file i386-linux-tdep.c.

References linux_record_tdep::arg1, linux_record_tdep::arg2, linux_record_tdep::arg3, linux_record_tdep::arg4, linux_record_tdep::arg5, linux_record_tdep::arg6, dwarf2_frame_set_signal_frame_p(), linux_record_tdep::fcntl_F_GETLK, linux_record_tdep::fcntl_F_GETLK64, linux_record_tdep::fcntl_F_SETLK64, linux_record_tdep::fcntl_F_SETLKW64, find_solib_trampoline_target(), gdb_assert, gdbarch_int_bit(), gdbarch_long_bit(), gdbarch_ptr_bit(), gdbarch_tdep(), glibc_skip_solib_resolver(), gdbarch_tdep::gregset_num_regs, gdbarch_tdep::gregset_reg_offset, i386_displaced_step_fixup(), I386_EBP_REGNUM, I386_EBX_REGNUM, I386_ECX_REGNUM, I386_EDI_REGNUM, I386_EDX_REGNUM, i386_elf_init_abi(), I386_ESI_REGNUM, gdbarch_tdep::i386_intx80_record, i386_linux_core_read_description(), i386_linux_displaced_step_copy_insn(), i386_linux_dwarf_signal_frame_p(), i386_linux_get_syscall_number(), i386_linux_gregset_reg_offset, i386_linux_handle_segmentation_fault(), i386_linux_intx80_sysenter_syscall_record(), i386_linux_iterate_over_regset_sections(), I386_LINUX_NUM_REGS, I386_LINUX_ORIG_EAX_REGNUM, i386_linux_read_description(), i386_linux_record_signal(), i386_linux_record_tdep, i386_linux_register_reggroup_p(), i386_linux_sc_reg_offset, i386_linux_sigcontext_addr(), i386_linux_sigtramp_p(), i386_linux_write_pc(), I386_LINUX_XSAVE_XCR0_OFFSET, i386_process_record(), gdbarch_tdep::i386_syscall_record, gdbarch_tdep::i386_sysenter_record, linux_record_tdep::ioctl_FIOASYNC, linux_record_tdep::ioctl_FIOCLEX, linux_record_tdep::ioctl_FIONBIO, linux_record_tdep::ioctl_FIONCLEX, linux_record_tdep::ioctl_FIONREAD, linux_record_tdep::ioctl_FIOQSIZE, linux_record_tdep::ioctl_TCFLSH, linux_record_tdep::ioctl_TCGETA, linux_record_tdep::ioctl_TCGETS, linux_record_tdep::ioctl_TCGETS2, linux_record_tdep::ioctl_TCSBRK, linux_record_tdep::ioctl_TCSBRKP, linux_record_tdep::ioctl_TCSETA, linux_record_tdep::ioctl_TCSETAF, linux_record_tdep::ioctl_TCSETAW, linux_record_tdep::ioctl_TCSETS, linux_record_tdep::ioctl_TCSETS2, linux_record_tdep::ioctl_TCSETSF, linux_record_tdep::ioctl_TCSETSF2, linux_record_tdep::ioctl_TCSETSW, linux_record_tdep::ioctl_TCSETSW2, linux_record_tdep::ioctl_TCXONC, linux_record_tdep::ioctl_TIOCCBRK, linux_record_tdep::ioctl_TIOCCONS, linux_record_tdep::ioctl_TIOCEXCL, linux_record_tdep::ioctl_TIOCGETD, linux_record_tdep::ioctl_TIOCGHAYESESP, linux_record_tdep::ioctl_TIOCGICOUNT, linux_record_tdep::ioctl_TIOCGLCKTRMIOS, linux_record_tdep::ioctl_TIOCGPGRP, linux_record_tdep::ioctl_TIOCGPTN, linux_record_tdep::ioctl_TIOCGSERIAL, linux_record_tdep::ioctl_TIOCGSID, linux_record_tdep::ioctl_TIOCGSOFTCAR, linux_record_tdep::ioctl_TIOCGWINSZ, linux_record_tdep::ioctl_TIOCINQ, linux_record_tdep::ioctl_TIOCLINUX, linux_record_tdep::ioctl_TIOCMBIC, linux_record_tdep::ioctl_TIOCMBIS, linux_record_tdep::ioctl_TIOCMGET, linux_record_tdep::ioctl_TIOCMIWAIT, linux_record_tdep::ioctl_TIOCMSET, linux_record_tdep::ioctl_TIOCNOTTY, linux_record_tdep::ioctl_TIOCNXCL, linux_record_tdep::ioctl_TIOCOUTQ, linux_record_tdep::ioctl_TIOCPKT, linux_record_tdep::ioctl_TIOCSBRK, linux_record_tdep::ioctl_TIOCSCTTY, linux_record_tdep::ioctl_TIOCSERCONFIG, linux_record_tdep::ioctl_TIOCSERGETLSR, linux_record_tdep::ioctl_TIOCSERGETMULTI, linux_record_tdep::ioctl_TIOCSERGSTRUCT, linux_record_tdep::ioctl_TIOCSERGWILD, linux_record_tdep::ioctl_TIOCSERSETMULTI, linux_record_tdep::ioctl_TIOCSERSWILD, linux_record_tdep::ioctl_TIOCSETD, linux_record_tdep::ioctl_TIOCSHAYESESP, linux_record_tdep::ioctl_TIOCSLCKTRMIOS, linux_record_tdep::ioctl_TIOCSPGRP, linux_record_tdep::ioctl_TIOCSPTLCK, linux_record_tdep::ioctl_TIOCSSERIAL, linux_record_tdep::ioctl_TIOCSSOFTCAR, linux_record_tdep::ioctl_TIOCSTI, linux_record_tdep::ioctl_TIOCSWINSZ, linux_record_tdep::ioctl_TIOCTTYGSTRUCT, gdbarch_tdep::jb_pc_offset, linux_displaced_step_location(), linux_init_abi(), gdbarch_tdep::register_reggroup_p, gdbarch_tdep::sc_num_regs, gdbarch_tdep::sc_reg_offset, set_gdbarch_core_read_description(), set_gdbarch_displaced_step_copy_insn(), set_gdbarch_displaced_step_fixup(), set_gdbarch_displaced_step_location(), set_gdbarch_fetch_tls_load_module_address(), set_gdbarch_get_siginfo_type(), set_gdbarch_get_syscall_number(), set_gdbarch_handle_segmentation_fault(), set_gdbarch_iterate_over_regset_sections(), set_gdbarch_num_regs(), set_gdbarch_process_record(), set_gdbarch_process_record_signal(), set_gdbarch_skip_solib_resolver(), set_gdbarch_skip_trampoline_code(), set_gdbarch_sofun_address_maybe_missing(), set_gdbarch_write_pc(), set_solib_svr4_fetch_link_map_offsets(), set_xml_syscall_file_name(), gdbarch_tdep::sigcontext_addr, gdbarch_tdep::sigtramp_p, linux_record_tdep::size__old_kernel_stat, linux_record_tdep::size_cap_user_data_t, linux_record_tdep::size_epoll_event, linux_record_tdep::size_fd_set, linux_record_tdep::size_flock, linux_record_tdep::size_flock64, linux_record_tdep::size_fs_quota_stat, linux_record_tdep::size_gid_t, linux_record_tdep::size_hayes_esp_config, linux_record_tdep::size_if_dqblk, linux_record_tdep::size_int, linux_record_tdep::size_io_event, linux_record_tdep::size_iocb, linux_record_tdep::size_iovec, linux_record_tdep::size_itimerspec, linux_record_tdep::size_itimerval, linux_record_tdep::size_knfsd_fh, linux_record_tdep::size_loff_t, linux_record_tdep::size_long, linux_record_tdep::size_mem_dqinfo, linux_record_tdep::size_mq_attr, linux_record_tdep::size_msghdr, linux_record_tdep::size_msqid_ds, linux_record_tdep::size_new_utsname, linux_record_tdep::size_NFS_FHSIZE, linux_record_tdep::size_off_t, linux_record_tdep::size_old_dirent, linux_record_tdep::size_old_gid_t, linux_record_tdep::size_old_sigaction, linux_record_tdep::size_old_sigset_t, linux_record_tdep::size_old_uid_t, linux_record_tdep::size_old_utsname, linux_record_tdep::size_oldold_utsname, linux_record_tdep::size_PAGE_SIZE, linux_record_tdep::size_pid_t, linux_record_tdep::size_pointer, linux_record_tdep::size_pollfd, linux_record_tdep::size_rlimit, linux_record_tdep::size_rusage, linux_record_tdep::size_serial_icounter_struct, linux_record_tdep::size_serial_struct, linux_record_tdep::size_shmid_ds, linux_record_tdep::size_sigaction, linux_record_tdep::size_siginfo_t, linux_record_tdep::size_sigset_t, linux_record_tdep::size_size_t, linux_record_tdep::size_sockaddr, linux_record_tdep::size_stack_t, linux_record_tdep::size_stat, linux_record_tdep::size_stat64, linux_record_tdep::size_statfs, linux_record_tdep::size_statfs64, linux_record_tdep::size_sysinfo, linux_record_tdep::size_TASK_COMM_LEN, linux_record_tdep::size_termios, linux_record_tdep::size_termios2, linux_record_tdep::size_time_t, linux_record_tdep::size_timespec, linux_record_tdep::size_timeval, linux_record_tdep::size_timex, linux_record_tdep::size_timezone, linux_record_tdep::size_tms, linux_record_tdep::size_uid_t, linux_record_tdep::size_ulong, linux_record_tdep::size_user_desc, linux_record_tdep::size_ustat, linux_record_tdep::size_winsize, gdbarch_tdep::sizeof_gregset, svr4_fetch_objfile_link_map(), svr4_ilp32_fetch_link_map_offsets(), TARGET_CHAR_BIT, gdbarch_info::target_desc, gdbarch_tdep::tdesc, tdesc_data, gdbarch_info::tdesc_data, tdesc_find_feature(), tdesc_has_registers(), tdesc_numbered_register(), x86_linux_get_siginfo_type(), X86_XSTATE_SSE_MASK, XML_SYSCALL_FILENAME_I386, and gdbarch_tdep::xsave_xcr0_offset.

Referenced by _initialize_i386_linux_tdep().

## ◆ i386_linux_intx80_sysenter_syscall_record()

static int i386_linux_intx80_sysenter_syscall_record | ( | struct regcache * | regcache | ) |
| static

Definition at line 457 of file i386-linux-tdep.c.

References _, gdb_sys_rt_sigreturn, gdb_sys_sigreturn, i386_all_but_ip_registers_record(), i386_canonicalize_syscall(), I386_EAX_REGNUM, i386_linux_record_tdep, plongest(), printf_unfiltered(), record_full_arch_list_add_reg(), record_linux_system_call(), and regcache_raw_read_signed().

Referenced by i386_linux_init_abi().

## ◆ i386_linux_iterate_over_regset_sections()

static void i386_linux_iterate_over_regset_sections | ( | struct gdbarch * | gdbarch,
|  | iterate_over_regset_sections_cb * | cb,
|  | void * | cb_data,
|  | const struct regcache * | regcache
| ) |  |
| static

Definition at line 760 of file i386-linux-tdep.c.

References gdbarch_tdep(), i386_fpregset, i386_gregset, i386_linux_xstateregset, X86_XSTATE_AVX, X86_XSTATE_SIZE, X86_XSTATE_SSE, and gdbarch_tdep::xcr0.

Referenced by i386_linux_init_abi().

## ◆ i386_linux_read_description()

const struct target_desc* i386_linux_read_description | ( | uint64_t | xcr0 | ) |

Definition at line 680 of file i386-linux-tdep.c.

References i386_create_target_description(), X86_XSTATE_AVX, X86_XSTATE_AVX512, X86_XSTATE_MPX, X86_XSTATE_PKRU, X86_XSTATE_SSE, and X86_XSTATE_X87.

Referenced by _initialize_i386_linux_tdep(), i386_linux_core_read_description(), i386_linux_init_abi(), and x86_linux_read_description().

## ◆ i386_linux_record_signal()

static int i386_linux_record_signal | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regcache,
|  | enum gdb_signal | signal
| ) |  |
| static

Definition at line 499 of file i386-linux-tdep.c.

References i386_all_but_ip_registers_record(), I386_EIP_REGNUM, I386_ESP_REGNUM, I386_LINUX_frame_size, I386_LINUX_xstate, record_full_arch_list_add_end(), record_full_arch_list_add_mem(), record_full_arch_list_add_reg(), and regcache_raw_read_unsigned().

Referenced by i386_linux_init_abi().

## ◆ i386_linux_register_reggroup_p()

static int i386_linux_register_reggroup_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum,
|  | struct reggroup * | group
| ) |  |
| static

Definition at line 55 of file i386-linux-tdep.c.

References I386_LINUX_ORIG_EAX_REGNUM, i386_register_reggroup_p(), regnum, restore_reggroup, save_reggroup, and system_reggroup.

Referenced by i386_linux_init_abi().

## ◆ i386_linux_rt_sigtramp_start()

static CORE_ADDR i386_linux_rt_sigtramp_start | ( | struct frame_info * | this_frame | ) |
| static

Definition at line 192 of file i386-linux-tdep.c.

References get_frame_pc(), linux_rt_sigtramp_code, LINUX_RT_SIGTRAMP_INSN0, LINUX_RT_SIGTRAMP_INSN1, LINUX_RT_SIGTRAMP_LEN, LINUX_RT_SIGTRAMP_OFFSET1, and safe_frame_unwind_memory().

Referenced by i386_linux_sigcontext_addr(), and i386_linux_sigtramp_p().

## ◆ i386_linux_sigcontext_addr()

static CORE_ADDR i386_linux_sigcontext_addr | ( | struct frame_info * | this_frame | ) |
| static

Definition at line 277 of file i386-linux-tdep.c.

References _, gdbarch::byte_order, error(), extract_unsigned_integer(), gdbarch_byte_order(), get_frame_arch(), get_frame_pc(), get_frame_register(), I386_ESP_REGNUM, i386_linux_rt_sigtramp_start(), i386_linux_sigtramp_start(), I386_LINUX_UCONTEXT_SIGCONTEXT_OFFSET, and read_memory().

Referenced by i386_linux_init_abi().

## ◆ i386_linux_sigtramp_p()

static int i386_linux_sigtramp_p | ( | struct frame_info * | this_frame | ) |
| static

Definition at line 229 of file i386-linux-tdep.c.

References find_pc_partial_function(), get_frame_pc(), i386_linux_rt_sigtramp_start(), i386_linux_sigtramp_start(), and name.

Referenced by i386_linux_init_abi().

## ◆ i386_linux_sigtramp_start()

static CORE_ADDR i386_linux_sigtramp_start | ( | struct frame_info * | this_frame | ) |
| static

Definition at line 124 of file i386-linux-tdep.c.

References get_frame_pc(), linux_sigtramp_code, LINUX_SIGTRAMP_INSN0, LINUX_SIGTRAMP_INSN1, LINUX_SIGTRAMP_INSN2, LINUX_SIGTRAMP_LEN, LINUX_SIGTRAMP_OFFSET1, LINUX_SIGTRAMP_OFFSET2, and safe_frame_unwind_memory().

Referenced by i386_linux_sigcontext_addr(), and i386_linux_sigtramp_p().

## ◆ i386_linux_supply_xstateregset()

static void i386_linux_supply_xstateregset | ( | const struct regset * | regset,
|  | struct regcache * | regcache,
|  | int | regnum,
|  | const void * | xstateregs,
|  | size_t | len
| ) |  |
| static

Definition at line 725 of file i386-linux-tdep.c.

References i387_supply_xsave(), and regnum.

## ◆ i386_linux_write_pc()

static void i386_linux_write_pc | ( | struct regcache * | regcache,
|  | CORE_ADDR | pc
| ) |  |
| static

Definition at line 322 of file i386-linux-tdep.c.

References I386_EIP_REGNUM, I386_LINUX_ORIG_EAX_REGNUM, and regcache_cooked_write_unsigned().

Referenced by i386_linux_init_abi().

## ◆ x86_linux_get_siginfo_type()

struct type* x86_linux_get_siginfo_type | ( | struct gdbarch * | gdbarch | ) |

Definition at line 733 of file i386-linux-tdep.c.

References linux_get_siginfo_type_with_fields(), and LINUX_SIGINFO_FIELD_ADDR_BND.

Referenced by amd64_linux_init_abi_common(), and i386_linux_init_abi().

## Variable Documentation

## ◆ i386_linux_gregset_reg_offset

int i386_linux_gregset_reg_offset[]

Initial value:
=
{
6 * 4,
1 * 4,
2 * 4,
0 * 4,
15 * 4,
5 * 4,
3 * 4,
4 * 4,
12 * 4,
14 * 4,
13 * 4,
16 * 4,
7 * 4,
8 * 4,
9 * 4,
10 * 4,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1,
-1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1,
11 * 4,
}

Definition at line 585 of file i386-linux-tdep.c.

Referenced by fetch_register(), fill_gregset(), i386_linux_init_abi(), store_register(), and supply_gregset().

## ◆ i386_linux_record_tdep

struct linux_record_tdep i386_linux_record_tdep
| static

Definition at line 454 of file i386-linux-tdep.c.

Referenced by i386_linux_init_abi(), and i386_linux_intx80_sysenter_syscall_record().

## ◆ i386_linux_sc_reg_offset

int i386_linux_sc_reg_offset[]
| static

Initial value:
=
{
11 * 4,
10 * 4,
9 * 4,
8 * 4,
7 * 4,
6 * 4,
5 * 4,
4 * 4,
14 * 4,
16 * 4,
15 * 4,
18 * 4,
3 * 4,
2 * 4,
1 * 4,
0 * 4
}

Definition at line 620 of file i386-linux-tdep.c.

Referenced by i386_linux_init_abi().

## ◆ i386_linux_xstateregset

const struct regset i386_linux_xstateregset
| static

Initial value:
=
{
NULL,
i386_linux_supply_xstateregset,
i386_linux_collect_xstateregset
}
i386_linux_supply_xstateregset
static void i386_linux_supply_xstateregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *xstateregs, size_t len)
Definition: i386-linux-tdep.c:725
i386_linux_collect_xstateregset
static void i386_linux_collect_xstateregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *xstateregs, size_t len)
Definition: i386-linux-tdep.c:741

Definition at line 750 of file i386-linux-tdep.c.

Referenced by i386_linux_iterate_over_regset_sections().

## ◆ linux_rt_sigtramp_code

const gdb_byte linux_rt_sigtramp_code[]
| static

Initial value:
=
{
LINUX_RT_SIGTRAMP_INSN0, 0xad, 0x00, 0x00, 0x00,
LINUX_RT_SIGTRAMP_INSN1, 0x80
}
LINUX_RT_SIGTRAMP_INSN1
#define LINUX_RT_SIGTRAMP_INSN1
Definition: i386-linux-tdep.c:177
LINUX_RT_SIGTRAMP_INSN0
#define LINUX_RT_SIGTRAMP_INSN0
Definition: i386-linux-tdep.c:175

Definition at line 180 of file i386-linux-tdep.c.

Referenced by i386_linux_rt_sigtramp_start().

## ◆ linux_sigtramp_code

const gdb_byte linux_sigtramp_code[]
| static

Initial value:
=
{
LINUX_SIGTRAMP_INSN0,
LINUX_SIGTRAMP_INSN1, 0x77, 0x00, 0x00, 0x00,
LINUX_SIGTRAMP_INSN2, 0x80
}
LINUX_SIGTRAMP_INSN0
#define LINUX_SIGTRAMP_INSN0
Definition: i386-linux-tdep.c:104
LINUX_SIGTRAMP_INSN1
#define LINUX_SIGTRAMP_INSN1
Definition: i386-linux-tdep.c:106
LINUX_SIGTRAMP_INSN2
#define LINUX_SIGTRAMP_INSN2
Definition: i386-linux-tdep.c:108

Definition at line 111 of file i386-linux-tdep.c.

Referenced by i386_linux_sigtramp_start().