| 1 | #include <inttypes.h> |
|---|---|
| 2 | |
| 3 | // GDB JIT interface |
| 4 | enum JITAction { JIT_NOACTION, JIT_REGISTER_FN, JIT_UNREGISTER_FN }; |
| 5 | |
| 6 | struct JITCodeEntry |
| 7 | { |
| 8 | struct JITCodeEntry* next; |
| 9 | struct JITCodeEntry* prev; |
| 10 | const char *symfile_addr; |
| 11 | uint64_t symfile_size; |
| 12 | }; |
| 13 | |
| 14 | struct JITDescriptor |
| 15 | { |
| 16 | uint32_t version; |
| 17 | uint32_t action_flag; |
| 18 | struct JITCodeEntry* relevant_entry; |
| 19 | struct JITCodeEntry* first_entry; |
| 20 | }; |
| 21 | |
| 22 | struct JITDescriptor __jit_debug_descriptor = { 1, JIT_NOACTION, 0, 0 }; |
| 23 | |
| 24 | void __jit_debug_register_code() |
| 25 | { |
| 26 | } |
| 27 | // end GDB JIT interface |
| 28 | |
| 29 | struct JITCodeEntry entry; |
| 30 | |
| 31 | int main() |
| 32 | { |
| 33 | // Create a code entry with a bogus size |
| 34 | entry.next = entry.prev = 0; |
| 35 | entry.symfile_addr = (char *)&entry; |
| 36 | entry.symfile_size = (uint64_t)47<<32; |
| 37 | |
| 38 | __jit_debug_descriptor.relevant_entry = __jit_debug_descriptor.first_entry = &entry; |
| 39 | __jit_debug_descriptor.action_flag = JIT_REGISTER_FN; |
| 40 | |
| 41 | __jit_debug_register_code(); |
| 42 | |
| 43 | return 0; |
| 44 | } |
| 45 |
