mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-12-18 00:22:11 +00:00
- removed marked code for how to create GDB/LLDB debug info as it will probably never be implemented
This commit is contained in:
parent
34007a8d27
commit
650e6a9c1b
1 changed files with 0 additions and 46 deletions
|
@ -314,52 +314,6 @@ extern "C"
|
||||||
{
|
{
|
||||||
void __register_frame(const void*);
|
void __register_frame(const void*);
|
||||||
void __deregister_frame(const void*);
|
void __deregister_frame(const void*);
|
||||||
|
|
||||||
#if 0 // Someone needs to implement this if GDB/LLDB should produce correct call stacks
|
|
||||||
|
|
||||||
// GDB JIT interface (GG guys! Thank you SO MUCH for not hooking into the above functions. Really appreciate it!)
|
|
||||||
|
|
||||||
// To register code with GDB, the JIT should follow this protocol:
|
|
||||||
//
|
|
||||||
// * Generate an object file in memory with symbols and other desired debug information.
|
|
||||||
// The file must include the virtual addresses of the sections.
|
|
||||||
// * Create a code entry for the file, which gives the start and size of the symbol file.
|
|
||||||
// * Add it to the linked list in the JIT descriptor.
|
|
||||||
// * Point the relevant_entry field of the descriptor at the entry.
|
|
||||||
// * Set action_flag to JIT_REGISTER and call __jit_debug_register_code.
|
|
||||||
|
|
||||||
// Pure beauty! Now a JIT also has to create a full ELF object file. And is it a MACH-O on macOS? You guys ROCK!
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
JIT_NOACTION = 0,
|
|
||||||
JIT_REGISTER_FN,
|
|
||||||
JIT_UNREGISTER_FN
|
|
||||||
} jit_actions_t;
|
|
||||||
|
|
||||||
struct jit_code_entry
|
|
||||||
{
|
|
||||||
struct jit_code_entry *next_entry;
|
|
||||||
struct jit_code_entry *prev_entry;
|
|
||||||
const char *symfile_addr;
|
|
||||||
uint64_t symfile_size;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct jit_descriptor
|
|
||||||
{
|
|
||||||
uint32_t version;
|
|
||||||
// This type should be jit_actions_t, but we use uint32_t to be explicit about the bitwidth.
|
|
||||||
uint32_t action_flag;
|
|
||||||
struct jit_code_entry *relevant_entry;
|
|
||||||
struct jit_code_entry *first_entry;
|
|
||||||
};
|
|
||||||
|
|
||||||
// GDB puts a breakpoint in this function.
|
|
||||||
void __attribute__((noinline)) __jit_debug_register_code() { };
|
|
||||||
|
|
||||||
// Make sure to specify the version statically, because the debugger may check the version before we can set it.
|
|
||||||
struct jit_descriptor __jit_debug_descriptor = { 1, 0, 0, 0 };
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void WriteLength(TArray<uint8_t> &stream, unsigned int pos, unsigned int v)
|
static void WriteLength(TArray<uint8_t> &stream, unsigned int pos, unsigned int v)
|
||||||
|
|
Loading…
Reference in a new issue