From 68b826dafff940839fae71cbb9b4cc6d64dae0e9 Mon Sep 17 00:00:00 2001 From: midipix Date: Fri, 30 Aug 2019 19:35:21 +0000 Subject: project: gdb bits: applied new directory layout (./overlay). --- overlay/mgdb/gdb/amd64-winnt-tdep.c | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 overlay/mgdb/gdb/amd64-winnt-tdep.c (limited to 'overlay/mgdb/gdb/amd64-winnt-tdep.c') diff --git a/overlay/mgdb/gdb/amd64-winnt-tdep.c b/overlay/mgdb/gdb/amd64-winnt-tdep.c new file mode 100644 index 0000000..d47bca4 --- /dev/null +++ b/overlay/mgdb/gdb/amd64-winnt-tdep.c @@ -0,0 +1,47 @@ +#include "defs.h" +#include "osabi.h" +#include "frame-unwind.h" +#include "windows-tdep.h" +#include "amd64-windows-tdep.c" + +#define amd64_winnt_push_dummy_call amd64_windows_push_dummy_call +#define amd64_winnt_return_value amd64_windows_return_value +#define amd64_winnt_skip_trampoline_code amd64_windows_skip_trampoline_code + +#define amd64_winnt_skip_prologue amd64_windows_skip_prologue +#define amd64_winnt_skip_main_prologue amd64_skip_main_prologue + +static void +amd64_winnt_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) +{ + /* abi */ + amd64_init_abi (info, gdbarch); + windows_init_abi (info, gdbarch); + + /* out-of-band function calls */ + set_gdbarch_push_dummy_call (gdbarch, amd64_winnt_push_dummy_call); + set_gdbarch_return_value (gdbarch, amd64_winnt_return_value); + set_gdbarch_skip_trampoline_code (gdbarch, amd64_winnt_skip_trampoline_code); + + /* skip prologue methods */ + set_gdbarch_skip_prologue (gdbarch, amd64_windows_skip_prologue); + set_gdbarch_skip_main_prologue (gdbarch, amd64_skip_main_prologue); + + /* todo: SEH unwinder */ + frame_unwind_append_unwinder (gdbarch, 0); + + /* todo: inferior-specific, dynamically detected size of long */ + set_gdbarch_long_bit (gdbarch, 64); +} + +extern initialize_file_ftype _initialize_amd64_winnt_tdep; + +void +_initialize_amd64_winnt_tdep (void) +{ + gdbarch_register_osabi( + bfd_arch_i386, + bfd_mach_x86_64, + GDB_OSABI_WINNT, + amd64_winnt_init_abi); +} -- cgit v1.2.3