GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
amd64-windows-tdep.c File Reference
#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 valueamd64_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
 

Macro Definition Documentation

◆ AMD64_WINDOWS_SIZEOF_GREGSET

#define AMD64_WINDOWS_SIZEOF_GREGSET   1232

Function Documentation

◆ _initialize_amd64_windows_tdep()

void _initialize_amd64_windows_tdep ( )

◆ amd64_cygwin_core_osabi_sniffer()

static enum gdb_osabi amd64_cygwin_core_osabi_sniffer ( bfd * abfd)
static

◆ amd64_cygwin_init_abi()

static void amd64_cygwin_init_abi ( struct gdbarch_info info,
struct gdbarch * gdbarch )
static

◆ amd64_skip_main_prologue()

static CORE_ADDR amd64_skip_main_prologue ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ amd64_windows_adjust_args_passed_by_pointer()

static CORE_ADDR amd64_windows_adjust_args_passed_by_pointer ( struct value ** args,
int nargs,
CORE_ADDR sp )
static

◆ amd64_windows_auto_wide_charset()

static const char * amd64_windows_auto_wide_charset ( void )
static

Definition at line 1275 of file amd64-windows-tdep.c.

Referenced by amd64_windows_init_abi_common().

◆ amd64_windows_find_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

◆ amd64_windows_frame_cache()

static struct amd64_windows_frame_cache * amd64_windows_frame_cache ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ amd64_windows_frame_decode_epilogue()

static int amd64_windows_frame_decode_epilogue ( frame_info_ptr this_frame,
struct amd64_windows_frame_cache * cache )
static

◆ amd64_windows_frame_decode_insns()

static void amd64_windows_frame_decode_insns ( frame_info_ptr this_frame,
struct amd64_windows_frame_cache * cache,
CORE_ADDR unwind_info )
static

◆ amd64_windows_frame_prev_register()

static struct value * amd64_windows_frame_prev_register ( frame_info_ptr this_frame,
void ** this_cache,
int regnum )
static

◆ amd64_windows_frame_this_id()

static void amd64_windows_frame_this_id ( frame_info_ptr this_frame,
void ** this_cache,
struct frame_id * this_id )
static

◆ amd64_windows_init_abi()

static void amd64_windows_init_abi ( struct gdbarch_info info,
struct gdbarch * gdbarch )
static

◆ amd64_windows_init_abi_common()

static void amd64_windows_init_abi_common ( gdbarch_info info,
struct gdbarch * gdbarch )
static

◆ amd64_windows_osabi_sniffer()

static gdb_osabi amd64_windows_osabi_sniffer ( bfd * abfd)
static

◆ amd64_windows_passed_by_integer_register()

static int amd64_windows_passed_by_integer_register ( struct type * type)
static

◆ amd64_windows_passed_by_pointer()

static int amd64_windows_passed_by_pointer ( struct type * type)
static

◆ amd64_windows_passed_by_xmm_register()

static int amd64_windows_passed_by_xmm_register ( struct type * type)
static

◆ amd64_windows_push_arguments()

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

◆ amd64_windows_push_dummy_call()

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

◆ amd64_windows_return_value()

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

◆ amd64_windows_skip_prologue()

static CORE_ADDR amd64_windows_skip_prologue ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ amd64_windows_skip_trampoline_code()

static CORE_ADDR amd64_windows_skip_trampoline_code ( frame_info_ptr frame,
CORE_ADDR pc )
static

◆ amd64_windows_store_arg_in_reg()

static void amd64_windows_store_arg_in_reg ( struct regcache * regcache,
struct value * arg,
int regno )
static

◆ pc_in_range()

static int pc_in_range ( CORE_ADDR pc,
const struct amd64_windows_frame_cache * cache )
static

Variable Documentation

◆ amd64_windows_dummy_call_integer_regs

int amd64_windows_dummy_call_integer_regs[]
static
Initial value:
=
{
}
@ AMD64_R8_REGNUM
Definition amd64-tdep.h:43
@ AMD64_R9_REGNUM
Definition amd64-tdep.h:44
@ AMD64_RCX_REGNUM
Definition amd64-tdep.h:37
@ AMD64_RDX_REGNUM
Definition amd64-tdep.h:38

Definition at line 37 of file amd64-windows-tdep.c.

Referenced by amd64_windows_push_arguments(), and amd64_windows_push_dummy_call().

◆ amd64_windows_frame_unwind

const struct frame_unwind amd64_windows_frame_unwind
static
Initial value:
=
{
"amd64 windows",
NULL,
}
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)
int default_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
enum unwind_stop_reason default_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
@ NORMAL_FRAME
Definition frame.h:187

Definition at line 1184 of file amd64-windows-tdep.c.

Referenced by amd64_windows_init_abi_common().

◆ amd64_windows_gregset_reg_offset

int amd64_windows_gregset_reg_offset[]
static

Definition at line 47 of file amd64-windows-tdep.c.

Referenced by amd64_windows_init_abi_common().

◆ amd64_windows_w2gdb_regnum

enum amd64_regnum amd64_windows_w2gdb_regnum[]
static