GDB (xrefs)
|
#include "defs.h"
#include "osabi.h"
#include "amd64-tdep.h"
#include "gdbsupport/x86-xstate.h"
#include "gdbtypes.h"
#include "gdbcore.h"
#include "regcache.h"
#include "windows-tdep.h"
#include "frame.h"
#include "objfiles.h"
#include "frame-unwind.h"
#include "coff/internal.h"
#include "coff/i386.h"
#include "coff/pe.h"
#include "libcoff.h"
#include "value.h"
#include <algorithm>
Go to the source code of this file.
Classes | |
struct | amd64_windows_frame_cache |
Macros | |
#define | AMD64_WINDOWS_SIZEOF_GREGSET 1232 |
Functions | |
static int | amd64_windows_passed_by_integer_register (struct type *type) |
static int | amd64_windows_passed_by_xmm_register (struct type *type) |
static int | amd64_windows_passed_by_pointer (struct type *type) |
static CORE_ADDR | amd64_windows_adjust_args_passed_by_pointer (struct value **args, int nargs, CORE_ADDR sp) |
static void | amd64_windows_store_arg_in_reg (struct regcache *regcache, struct value *arg, int regno) |
static CORE_ADDR | amd64_windows_push_arguments (struct regcache *regcache, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method) |
static CORE_ADDR | amd64_windows_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr) |
static enum return_value_convention | amd64_windows_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, struct value **read_value, const gdb_byte *writebuf) |
static CORE_ADDR | amd64_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) |
static int | pc_in_range (CORE_ADDR pc, const struct amd64_windows_frame_cache *cache) |
static int | amd64_windows_frame_decode_epilogue (frame_info_ptr this_frame, struct amd64_windows_frame_cache *cache) |
static void | amd64_windows_frame_decode_insns (frame_info_ptr this_frame, struct amd64_windows_frame_cache *cache, CORE_ADDR unwind_info) |
static int | amd64_windows_find_unwind_info (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR *unwind_info, CORE_ADDR *image_base, CORE_ADDR *start_rva, CORE_ADDR *end_rva) |
static struct amd64_windows_frame_cache * | amd64_windows_frame_cache (frame_info_ptr this_frame, void **this_cache) |
static struct value * | amd64_windows_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum) |
static void | amd64_windows_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id) |
static CORE_ADDR | amd64_windows_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) |
static CORE_ADDR | amd64_windows_skip_trampoline_code (frame_info_ptr frame, CORE_ADDR pc) |
static const char * | amd64_windows_auto_wide_charset (void) |
static void | amd64_windows_init_abi_common (gdbarch_info info, struct gdbarch *gdbarch) |
static void | amd64_windows_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) |
static void | amd64_cygwin_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) |
static gdb_osabi | amd64_windows_osabi_sniffer (bfd *abfd) |
static enum gdb_osabi | amd64_cygwin_core_osabi_sniffer (bfd *abfd) |
void | _initialize_amd64_windows_tdep () |
Variables | |
static int | amd64_windows_dummy_call_integer_regs [] |
static int | amd64_windows_gregset_reg_offset [] |
static enum amd64_regnum | amd64_windows_w2gdb_regnum [] |
static const struct frame_unwind | amd64_windows_frame_unwind |
#define AMD64_WINDOWS_SIZEOF_GREGSET 1232 |
Definition at line 108 of file amd64-windows-tdep.c.
Referenced by amd64_cygwin_core_osabi_sniffer(), and amd64_windows_init_abi_common().
void _initialize_amd64_windows_tdep | ( | ) |
Definition at line 1380 of file amd64-windows-tdep.c.
References amd64_cygwin_core_osabi_sniffer(), amd64_cygwin_init_abi(), amd64_windows_init_abi(), amd64_windows_osabi_sniffer(), GDB_OSABI_CYGWIN, GDB_OSABI_WINDOWS, gdbarch_register_osabi(), and gdbarch_register_osabi_sniffer().
|
static |
Definition at line 1361 of file amd64-windows-tdep.c.
References AMD64_WINDOWS_SIZEOF_GREGSET, GDB_OSABI_CYGWIN, GDB_OSABI_UNKNOWN, and target_name.
Referenced by _initialize_amd64_windows_tdep().
|
static |
Definition at line 1340 of file amd64-windows-tdep.c.
References amd64_windows_init_abi_common(), and cygwin_init_abi().
Referenced by _initialize_amd64_windows_tdep().
|
static |
Definition at line 425 of file amd64-windows-tdep.c.
References extract_signed_integer(), gdbarch_byte_order(), general_symbol_info::linkage_name(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, and target_read_memory().
Referenced by amd64_windows_init_abi_common().
|
static |
Definition at line 173 of file amd64-windows-tdep.c.
References amd64_windows_passed_by_pointer(), type::length(), value_addr(), value_from_contents_and_address(), and write_memory().
Referenced by amd64_windows_push_arguments().
|
static |
Definition at line 1275 of file amd64-windows-tdep.c.
Referenced by amd64_windows_init_abi_common().
|
static |
Definition at line 1005 of file amd64-windows-tdep.c.
References extract_unsigned_integer(), find_pc_section(), frame_debug_printf, gdbarch_byte_order(), objfile::obfd, obj_section::objfile, objfile::objfile(), paddress(), target_read_memory(), and objfile::text_section_offset().
Referenced by amd64_windows_frame_cache(), and amd64_windows_skip_prologue().
|
static |
Definition at line 1080 of file amd64-windows-tdep.c.
References AMD64_RSP_REGNUM, amd64_windows_find_unwind_info(), amd64_windows_frame_decode_insns(), amd64_windows_frame_cache::end_rva, extract_unsigned_integer(), FRAME_OBSTACK_ZALLOC, gdbarch_byte_order(), get_frame_arch(), get_frame_pc(), get_frame_register(), amd64_windows_frame_cache::image_base, amd64_windows_frame_cache::pc, amd64_windows_frame_cache::prev_rip_addr, amd64_windows_frame_cache::prev_sp, amd64_windows_frame_cache::sp, and amd64_windows_frame_cache::start_rva.
Referenced by amd64_windows_frame_prev_register(), and amd64_windows_frame_this_id().
|
static |
Definition at line 520 of file amd64-windows-tdep.c.
References amd64_windows_w2gdb_regnum, extract_signed_integer(), extract_unsigned_integer(), gdbarch_byte_order(), get_frame_arch(), amd64_windows_frame_cache::pc, pc_in_range(), amd64_windows_frame_cache::prev_reg_addr, amd64_windows_frame_cache::prev_rip_addr, amd64_windows_frame_cache::prev_sp, QUIT, amd64_windows_frame_cache::sp, and target_read_memory().
Referenced by amd64_windows_frame_decode_insns().
|
static |
Definition at line 700 of file amd64-windows-tdep.c.
References amd64_windows_frame_decode_epilogue(), amd64_windows_w2gdb_regnum, amd64_windows_frame_cache::end_rva, extract_unsigned_integer(), frame_debug_printf, gdbarch_byte_order(), gdbarch_register_name(), get_frame_arch(), get_frame_register(), amd64_windows_frame_cache::image_base, paddress(), amd64_windows_frame_cache::pc, amd64_windows_frame_cache::prev_reg_addr, amd64_windows_frame_cache::prev_rip_addr, amd64_windows_frame_cache::prev_rsp_addr, amd64_windows_frame_cache::prev_sp, amd64_windows_frame_cache::prev_xmm_addr, QUIT, amd64_windows_frame_cache::sp, amd64_windows_frame_cache::start_rva, and target_read_memory().
Referenced by amd64_windows_frame_cache().
|
static |
Definition at line 1126 of file amd64-windows-tdep.c.
References AMD64_R15_REGNUM, AMD64_RAX_REGNUM, AMD64_RIP_REGNUM, AMD64_RSP_REGNUM, amd64_windows_frame_cache(), AMD64_XMM0_REGNUM, frame_debug_printf, frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), gdbarch_register_name(), get_frame_arch(), paddress(), amd64_windows_frame_cache::prev_reg_addr, amd64_windows_frame_cache::prev_rip_addr, amd64_windows_frame_cache::prev_rsp_addr, amd64_windows_frame_cache::prev_sp, amd64_windows_frame_cache::prev_xmm_addr, and regnum.
|
static |
Definition at line 1172 of file amd64-windows-tdep.c.
References amd64_windows_frame_cache(), frame_id_build(), amd64_windows_frame_cache::image_base, amd64_windows_frame_cache::prev_sp, and amd64_windows_frame_cache::start_rva.
|
static |
Definition at line 1328 of file amd64-windows-tdep.c.
References amd64_windows_init_abi_common(), set_gdbarch_long_bit(), and windows_init_abi().
Referenced by _initialize_amd64_windows_tdep().
|
static |
Definition at line 1283 of file amd64-windows-tdep.c.
References amd64_init_abi(), amd64_skip_main_prologue(), amd64_target_description(), amd64_windows_auto_wide_charset(), amd64_windows_frame_unwind, amd64_windows_gregset_reg_offset, amd64_windows_push_dummy_call(), amd64_windows_return_value(), AMD64_WINDOWS_SIZEOF_GREGSET, amd64_windows_skip_prologue(), amd64_windows_skip_trampoline_code(), frame_unwind_append_unwinder(), i386_gdbarch_tdep::gregset_num_regs, i386_gdbarch_tdep::gregset_reg_offset, set_gdbarch_auto_wide_charset(), set_gdbarch_core_pid_to_str(), set_gdbarch_core_xfer_shared_libraries(), set_gdbarch_push_dummy_call(), set_gdbarch_return_value_as_value(), set_gdbarch_skip_main_prologue(), set_gdbarch_skip_prologue(), set_gdbarch_skip_trampoline_code(), i386_gdbarch_tdep::sizeof_fpregset, i386_gdbarch_tdep::sizeof_gregset, windows_core_pid_to_str(), and windows_core_xfer_shared_libraries().
Referenced by amd64_cygwin_init_abi(), and amd64_windows_init_abi().
|
static |
Definition at line 1347 of file amd64-windows-tdep.c.
References GDB_OSABI_CYGWIN, GDB_OSABI_UNKNOWN, GDB_OSABI_WINDOWS, is_linked_with_cygwin_dll(), and target_name.
Referenced by _initialize_amd64_windows_tdep().
|
static |
Definition at line 114 of file amd64-windows-tdep.c.
References type::code(), and type::length().
Referenced by amd64_windows_passed_by_pointer(), and amd64_windows_push_arguments().
|
static |
Definition at line 154 of file amd64-windows-tdep.c.
References amd64_windows_passed_by_integer_register(), and amd64_windows_passed_by_xmm_register().
Referenced by amd64_windows_adjust_args_passed_by_pointer().
|
static |
Definition at line 143 of file amd64-windows-tdep.c.
References type::code(), and type::length().
Referenced by amd64_windows_passed_by_pointer(), and amd64_windows_push_arguments().
|
static |
Definition at line 224 of file amd64-windows-tdep.c.
References amd64_windows_adjust_args_passed_by_pointer(), amd64_windows_dummy_call_integer_regs, amd64_windows_passed_by_integer_register(), amd64_windows_passed_by_xmm_register(), amd64_windows_store_arg_in_reg(), AMD64_XMM0_REGNUM, value::contents(), type::length(), return_method_struct, value::type(), and write_memory().
Referenced by amd64_windows_push_dummy_call().
|
static |
Definition at line 310 of file amd64-windows-tdep.c.
References AMD64_RBP_REGNUM, AMD64_RSP_REGNUM, amd64_windows_dummy_call_integer_regs, amd64_windows_push_arguments(), regcache::cooked_write(), gdbarch_byte_order(), return_method_struct, store_unsigned_integer(), and write_memory().
Referenced by amd64_windows_init_abi_common().
|
static |
Definition at line 356 of file amd64-windows-tdep.c.
References value::allocate(), AMD64_RAX_REGNUM, AMD64_XMM0_REGNUM, code, type::code(), type::is_vector(), type::length(), readable_regcache::raw_read_part(), regcache::raw_write_part(), regcache_raw_read_unsigned(), regnum, RETURN_VALUE_ABI_RETURNS_ADDRESS, RETURN_VALUE_REGISTER_CONVENTION, type::target_type(), and value_at_non_lval().
Referenced by amd64_windows_init_abi_common().
|
static |
Definition at line 1198 of file amd64-windows-tdep.c.
References amd64_windows_find_unwind_info(), find_pc_partial_function(), skip_prologue_using_sal(), and target_read_memory().
Referenced by amd64_windows_init_abi_common().
|
static |
Definition at line 1238 of file amd64-windows-tdep.c.
References gdbarch_byte_order(), get_frame_arch(), general_symbol_info::linkage_name(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, and read_memory_unsigned_integer().
Referenced by amd64_windows_init_abi_common().
|
static |
Definition at line 204 of file amd64-windows-tdep.c.
References value::contents(), regcache::cooked_write(), type::length(), and value::type().
Referenced by amd64_windows_push_arguments().
|
static |
Definition at line 508 of file amd64-windows-tdep.c.
References amd64_windows_frame_cache::end_rva, amd64_windows_frame_cache::image_base, and amd64_windows_frame_cache::start_rva.
Referenced by amd64_windows_frame_decode_epilogue().
|
static |
Definition at line 37 of file amd64-windows-tdep.c.
Referenced by amd64_windows_push_arguments(), and amd64_windows_push_dummy_call().
|
static |
Definition at line 1184 of file amd64-windows-tdep.c.
Referenced by amd64_windows_init_abi_common().
|
static |
Definition at line 47 of file amd64-windows-tdep.c.
Referenced by amd64_windows_init_abi_common().
|
static |
Definition at line 484 of file amd64-windows-tdep.c.
Referenced by amd64_windows_frame_decode_epilogue(), and amd64_windows_frame_decode_insns().