From 6e0f32f4ca4b35bda036caa6ad3abcae4ae64cdc Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Wed, 18 Dec 2024 05:01:33 +0800 Subject: Added initial GDBJIT support (#2162) * Added GDBJIT support * fix * fix --- src/include/debug.h | 1 + src/include/gdbjit.h | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/include/gdbjit.h (limited to 'src/include') 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 +#include +#include + +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__ -- cgit 1.4.1