diff options
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/debug.h | 1 | ||||
| -rw-r--r-- | src/include/gdbjit.h | 32 |
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__ |