about summary refs log tree commit diff stats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/debug.h1
-rw-r--r--src/include/gdbjit.h32
2 files changed, 33 insertions, 0 deletions
diff --git a/src/include/debug.h b/src/include/debug.h
index cbaab9db..0a8d4058 100644
--- a/src/include/debug.h
+++ b/src/include/debug.h
@@ -18,6 +18,7 @@ extern int box64_rdtsc_1ghz;
 extern uint8_t box64_rdtsc_shift;
 extern int box64_is32bits;
 extern int box64_x11sync;
+extern int box64_dynarec_gdbjit;
 #ifdef DYNAREC
 extern int box64_dynarec_dump;
 extern int box64_dynarec_trace;
diff --git a/src/include/gdbjit.h b/src/include/gdbjit.h
new file mode 100644
index 00000000..70405d3e
--- /dev/null
+++ b/src/include/gdbjit.h
@@ -0,0 +1,32 @@
+#ifndef __GDBJIT_H__
+#define __GDBJIT_H__
+
+#if defined(DYNAREC) && defined(GDBJIT)
+#include <gdb/jit-reader.h>
+#include <stdio.h>
+#include <stdint.h>
+
+typedef struct gdbjit_block_s {
+    char filename[32];
+    FILE* file;
+    GDB_CORE_ADDR start;
+    GDB_CORE_ADDR end;
+    uintptr_t alloced;
+    size_t nlines;
+    struct gdb_line_mapping lines[0];
+} gdbjit_block_t;
+
+
+void GdbJITNewBlock(gdbjit_block_t* block, GDB_CORE_ADDR start, GDB_CORE_ADDR end);
+gdbjit_block_t* GdbJITBlockAddLine(gdbjit_block_t* block, GDB_CORE_ADDR addr, const char* line);
+void GdbJITBlockReady(gdbjit_block_t* block);
+
+#else
+
+#define GdbJITNewBlock(a, b, c)
+#define GdbJITBlockAddLine(a, b, c) NULL
+#define GdbJITBlockReady(a)
+
+#endif
+
+#endif // __GDBJIT_H__