summaryrefslogtreecommitdiff
path: root/overlay
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2019-08-30 19:35:21 +0000
committermidipix <writeonce@midipix.org>2019-08-30 19:35:21 +0000
commit68b826dafff940839fae71cbb9b4cc6d64dae0e9 (patch)
treee081b8cab629efa4895c27a2b4eadd34e5a99a68 /overlay
parenta98c846ea845b6de9b3b15bb6927daad47e0d384 (diff)
downloadchainport-68b826dafff940839fae71cbb9b4cc6d64dae0e9.tar.bz2
chainport-68b826dafff940839fae71cbb9b4cc6d64dae0e9.tar.xz
project: gdb bits: applied new directory layout (./overlay).
Diffstat (limited to 'overlay')
-rw-r--r--overlay/mgdb/gdb/amd64-winnt-tdep.c47
-rw-r--r--overlay/mgdb/gdb/config/i386/midipix.mh1
-rw-r--r--overlay/mgdb/gdb/config/i386/midipix64.mh1
-rw-r--r--overlay/mgdb/gdb/i386-winnt-tdep.c37
4 files changed, 86 insertions, 0 deletions
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);
+}
diff --git a/overlay/mgdb/gdb/config/i386/midipix.mh b/overlay/mgdb/gdb/config/i386/midipix.mh
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/overlay/mgdb/gdb/config/i386/midipix.mh
@@ -0,0 +1 @@
+
diff --git a/overlay/mgdb/gdb/config/i386/midipix64.mh b/overlay/mgdb/gdb/config/i386/midipix64.mh
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/overlay/mgdb/gdb/config/i386/midipix64.mh
@@ -0,0 +1 @@
+
diff --git a/overlay/mgdb/gdb/i386-winnt-tdep.c b/overlay/mgdb/gdb/i386-winnt-tdep.c
new file mode 100644
index 0000000..070747b
--- /dev/null
+++ b/overlay/mgdb/gdb/i386-winnt-tdep.c
@@ -0,0 +1,37 @@
+#include "defs.h"
+#include "osabi.h"
+#include "frame-unwind.h"
+#include "windows-tdep.h"
+
+static void
+i386_winnt_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+ /* abi */
+ windows_init_abi (info, gdbarch);
+
+ /* out-of-band function calls */
+ set_gdbarch_push_dummy_call (gdbarch, 0);
+ set_gdbarch_return_value (gdbarch, 0);
+
+ /* progloue/trampoline methods */
+ set_gdbarch_skip_main_prologue (gdbarch, 0);
+ set_gdbarch_skip_trampoline_code (gdbarch, 0);
+
+ /* auto wide charset hack */
+ set_gdbarch_auto_wide_charset (gdbarch, 0);
+
+ /* unwainder */
+ frame_unwind_append_unwinder (gdbarch, 0);
+}
+
+extern initialize_file_ftype _initialize_i386_winnt_tdep;
+
+void
+_initialize_i386_winnt_tdep (void)
+{
+ gdbarch_register_osabi(
+ bfd_arch_i386,
+ 0,
+ GDB_OSABI_WINNT,
+ i386_winnt_init_abi);
+}