|
GDB (xrefs)
|
#include "defs.h"#include "jit.h"#include "jit-reader.h"#include "block.h"#include "breakpoint.h"#include "command.h"#include "dictionary.h"#include "filenames.h"#include "frame-unwind.h"#include "gdbcmd.h"#include "gdbcore.h"#include "inferior.h"#include "observer.h"#include "objfiles.h"#include "regcache.h"#include "symfile.h"#include "symtab.h"#include "target.h"#include "gdb-dlfcn.h"#include <sys/stat.h>#include "gdb_bfd.h"#include "readline/tilde.h"#include "completer.h"Go to the source code of this file.
Classes | |
| struct | target_buffer |
| struct | jit_reader |
| struct | jit_program_space_data |
| struct | jit_objfile_data |
| struct | gdb_block |
| struct | gdb_symtab |
| struct | gdb_object |
| struct | jit_unwind_private |
| struct | jit_gdbarch_data_type |
Typedefs | |
| typedef struct gdb_reader_funcs *() | reader_init_fn_type(void) |
| typedef CORE_ADDR | jit_dbg_reader_data |
Functions | |
| static void | jit_inferior_init (struct gdbarch *gdbarch) |
| static void | jit_inferior_exit_hook (struct inferior *inf) |
| static void | show_jit_debug (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) |
| static void * | mem_bfd_iovec_open (struct bfd *abfd, void *open_closure) |
| static int | mem_bfd_iovec_close (struct bfd *abfd, void *stream) |
| static file_ptr | mem_bfd_iovec_pread (struct bfd *abfd, void *stream, void *buf, file_ptr nbytes, file_ptr offset) |
| static int | mem_bfd_iovec_stat (struct bfd *abfd, void *stream, struct stat *sb) |
| static gdb_bfd_ref_ptr | bfd_open_from_target_memory (CORE_ADDR addr, ULONGEST size, char *target) |
| static struct jit_reader * | jit_reader_load (const char *file_name) |
| static void | jit_reader_load_command (const char *args, int from_tty) |
| static void | jit_reader_unload_command (const char *args, int from_tty) |
| static struct jit_objfile_data * | get_jit_objfile_data (struct objfile *objf) |
| static void | add_objfile_entry (struct objfile *objfile, CORE_ADDR entry) |
| static struct jit_program_space_data * | get_jit_program_space_data (void) |
| static void | jit_program_space_data_cleanup (struct program_space *ps, void *arg) |
| static int | jit_read_descriptor (struct gdbarch *gdbarch, struct jit_descriptor *descriptor, struct jit_program_space_data *ps_data) |
| static void | jit_read_code_entry (struct gdbarch *gdbarch, CORE_ADDR code_addr, struct jit_code_entry *code_entry) |
| static enum gdb_status | jit_target_read_impl (GDB_CORE_ADDR target_mem, void *gdb_buf, int len) |
| static struct gdb_object * | jit_object_open_impl (struct gdb_symbol_callbacks *cb) |
| static struct gdb_symtab * | jit_symtab_open_impl (struct gdb_symbol_callbacks *cb, struct gdb_object *object, const char *file_name) |
| static int | compare_block (const struct gdb_block *const old, const struct gdb_block *const newobj) |
| static struct gdb_block * | jit_block_open_impl (struct gdb_symbol_callbacks *cb, struct gdb_symtab *symtab, struct gdb_block *parent, GDB_CORE_ADDR begin, GDB_CORE_ADDR end, const char *name) |
| static void | jit_symtab_line_mapping_add_impl (struct gdb_symbol_callbacks *cb, struct gdb_symtab *stab, int nlines, struct gdb_line_mapping *map) |
| static void | jit_symtab_close_impl (struct gdb_symbol_callbacks *cb, struct gdb_symtab *stab) |
| static void | finalize_symtab (struct gdb_symtab *stab, struct objfile *objfile) |
| static void | jit_object_close_impl (struct gdb_symbol_callbacks *cb, struct gdb_object *obj) |
| static int | jit_reader_try_read_symtab (struct jit_code_entry *code_entry, CORE_ADDR entry_addr) |
| static void | jit_bfd_try_read_symtab (struct jit_code_entry *code_entry, CORE_ADDR entry_addr, struct gdbarch *gdbarch) |
| static void | jit_register_code (struct gdbarch *gdbarch, CORE_ADDR entry_addr, struct jit_code_entry *code_entry) |
| static void | jit_unregister_code (struct objfile *objfile) |
| static struct objfile * | jit_find_objf_with_entry_addr (CORE_ADDR entry_addr) |
| static void | jit_breakpoint_deleted (struct breakpoint *b) |
| static int | jit_breakpoint_re_set_internal (struct gdbarch *gdbarch, struct jit_program_space_data *ps_data) |
| static void | jit_unwind_reg_set_impl (struct gdb_unwind_callbacks *cb, int dwarf_regnum, struct gdb_reg_value *value) |
| static void | reg_value_free_impl (struct gdb_reg_value *value) |
| static struct gdb_reg_value * | jit_unwind_reg_get_impl (struct gdb_unwind_callbacks *cb, int regnum) |
| static void | jit_dealloc_cache (struct frame_info *this_frame, void *cache) |
| static int | jit_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **cache) |
| static void | jit_frame_this_id (struct frame_info *this_frame, void **cache, struct frame_id *this_id) |
| static struct value * | jit_frame_prev_register (struct frame_info *this_frame, void **cache, int reg) |
| static void | jit_prepend_unwinder (struct gdbarch *gdbarch) |
| static void | jit_inferior_created (struct target_ops *ops, int from_tty) |
| void | jit_inferior_created_hook (void) |
| void | jit_breakpoint_re_set (void) |
| void | jit_event_handler (struct gdbarch *gdbarch) |
| static void | free_objfile_data (struct objfile *objfile, void *data) |
| static void * | jit_gdbarch_data_init (struct obstack *obstack) |
| void | _initialize_jit (void) |
Variables | |
| static const char * | jit_reader_dir = NULL |
| static const struct objfile_data * | jit_objfile_data |
| static const char *const | jit_break_name = "__jit_debug_register_code" |
| static const char *const | jit_descriptor_name = "__jit_debug_descriptor" |
| static const struct program_space_data * | jit_program_space_data = NULL |
| static struct gdbarch_data * | jit_gdbarch_data |
| static unsigned int | jit_debug = 0 |
| static struct jit_reader * | loaded_jit_reader = NULL |
| static const char * | reader_init_fn_sym = "gdb_init_reader" |
| static const struct frame_unwind | jit_frame_unwind |
| typedef CORE_ADDR jit_dbg_reader_data |
| typedef struct gdb_reader_funcs*() reader_init_fn_type(void) |
| void _initialize_jit | ( | void | ) |
Definition at line 1504 of file jit.c.
References _, add_com(), add_setshow_zuinteger_cmd(), class_maintenance, filename_completer(), free_objfile_data(), gdbarch_data_register_pre_init(), is_dl_available(), jit_breakpoint_deleted(), jit_debug, jit_gdbarch_data, jit_gdbarch_data_init(), jit_inferior_created(), jit_inferior_exit_hook(), jit_program_space_data_cleanup(), jit_reader_dir, JIT_READER_DIR, JIT_READER_DIR_RELOCATABLE, jit_reader_load_command(), jit_reader_unload_command(), no_class, noop_completer(), observer_attach_breakpoint_deleted(), observer_attach_inferior_created(), observer_attach_inferior_exit(), relocate_gdb_directory(), set_cmd_completer(), setdebuglist, show_jit_debug(), and showdebuglist.
Definition at line 307 of file jit.c.
References jit_objfile_data::addr, and get_jit_objfile_data().
Referenced by jit_bfd_try_read_symtab(), and jit_object_close_impl().
|
static |
Definition at line 140 of file jit.c.
References gdb_bfd_openr_iovec(), mem_bfd_iovec_close(), mem_bfd_iovec_open(), mem_bfd_iovec_pread(), mem_bfd_iovec_stat(), size, and XNEW.
Referenced by jit_bfd_try_read_symtab().
|
static |
Definition at line 543 of file jit.c.
References gdb_block::begin, and gdb_block::end.
Referenced by jit_block_open_impl().
|
static |
Definition at line 645 of file jit.c.
References add_compunit_symtab_to_objfile(), allocate_block(), allocate_compunit_symtab(), allocate_global_block(), allocate_symbol(), allocate_symtab(), arch_type(), gdb_block::begin, BLOCK_DICT, BLOCK_END, BLOCK_FUNCTION, BLOCK_START, BLOCK_SUPERBLOCK, gdb_symtab::blocks, BLOCKVECTOR_BLOCK, BLOCKVECTOR_MAP, BLOCKVECTOR_NBLOCKS, COMPUNIT_BLOCKVECTOR, COMPUNIT_DIRNAME, COMPUNIT_FILETABS, compunit_language(), dict_create_linear(), gdb_block::end, gdb_symtab::file_name, FIRST_LOCAL_BLOCK, get_objfile_arch(), symbol::ginfo, GLOBAL_BLOCK, gdb_symtab::linetable, LOC_BLOCK, lookup_function_type(), general_symbol_info::name, gdb_block::name, gdb_symtab::nblocks, new_block(), gdb_block::next, linetable::nitems, gdb_block::parent, gdb_block::real_block, set_block_compunit_symtab(), size, STATIC_BLOCK, SYMBOL_ACLASS_INDEX, SYMBOL_BLOCK_VALUE, SYMBOL_DOMAIN, symbol_set_symtab(), SYMBOL_TYPE, SYMTAB_LINETABLE, TARGET_CHAR_BIT, TYPE_CODE_VOID, VAR_DOMAIN, and xfree().
Referenced by jit_object_close_impl().
|
static |
Definition at line 1467 of file jit.c.
References jit_program_space_data::cached_code_address, delete_breakpoint(), jit_program_space_data::jit_breakpoint, jit_program_space_data::objfile, objfile::pspace, jit_objfile_data::register_code, and xfree().
Referenced by _initialize_jit().
|
static |
Definition at line 289 of file jit.c.
References XCNEW.
Referenced by add_objfile_entry(), jit_breakpoint_re_set_internal(), and jit_read_descriptor().
|
static |
Definition at line 319 of file jit.c.
References current_program_space, and XCNEW.
Referenced by jit_breakpoint_re_set(), jit_event_handler(), and jit_inferior_init().
|
static |
Definition at line 887 of file jit.c.
References _, add_objfile_entry(), other_sections::addr, alloc_section_addr_info(), bfd_open_from_target_memory(), do_cleanups(), fprintf_unfiltered(), gdb_stdlog, gdbarch_bfd_arch_info(), gdb::ref_ptr< T, Policy >::get(), gnutarget, jit_debug, make_cleanup_free_section_addr_info(), other_sections::name, section_addr_info::num_sections, OBJF_NOT_FILENAME, OBJF_SHARED, objfile::objfile(), section_addr_info::other, paddress(), printf_unfiltered(), pulongest(), puts_unfiltered(), other_sections::sectindex, symbol_file_add_from_bfd(), jit_code_entry::symfile_addr, jit_code_entry::symfile_size, and warning().
Referenced by jit_register_code().
|
static |
Definition at line 566 of file jit.c.
References gdb_block::begin, compare_block(), gdb_block::end, name, gdb_block::next, gdb_block::parent, and XCNEW.
Referenced by jit_reader_try_read_symtab().
|
static |
Definition at line 1014 of file jit.c.
References bp_jit_event, jit_program_space_data::cached_code_address, jit_program_space_data::jit_breakpoint, breakpoint::loc, bp_location::next, bp_location::owner, bp_location::pspace, and breakpoint::type.
Referenced by _initialize_jit().
| void jit_breakpoint_re_set | ( | void | ) |
Definition at line 1399 of file jit.c.
References get_jit_program_space_data(), jit_breakpoint_re_set_internal(), and target_gdbarch().
Referenced by breakpoint_re_set().
|
static |
Definition at line 1039 of file jit.c.
References jit_objfile_data::addr, BMSYMBOL_VALUE_ADDRESS, jit_program_space_data::cached_code_address, create_jit_event_breakpoint(), delete_breakpoint(), jit_objfile_data::descriptor, fprintf_unfiltered(), gdb_stdlog, get_jit_objfile_data(), jit_break_name, jit_program_space_data::jit_breakpoint, jit_debug, jit_descriptor_name, lookup_minimal_symbol(), lookup_minimal_symbol_and_objfile(), bound_minimal_symbol::minsym, MSYMBOL_VALUE_ADDRESS, bound_minimal_symbol::objfile, jit_program_space_data::objfile, paddress(), and jit_objfile_data::register_code.
Referenced by jit_breakpoint_re_set(), and jit_inferior_init().
|
static |
Definition at line 1167 of file jit.c.
References gdb_assert, jit_unwind_private::regcache, and xfree().
Referenced by jit_frame_sniffer().
| void jit_event_handler | ( | struct gdbarch * | gdbarch | ) |
Definition at line 1426 of file jit.c.
References _, jit_descriptor::action_flag, error(), get_jit_program_space_data(), jit_find_objf_with_entry_addr(), JIT_NOACTION, jit_read_code_entry(), jit_read_descriptor(), JIT_REGISTER, jit_register_code(), JIT_UNREGISTER, jit_unregister_code(), paddress(), printf_unfiltered(), and jit_descriptor::relevant_entry.
Referenced by handle_jit_event().
Definition at line 994 of file jit.c.
References jit_objfile_data::addr, and ALL_OBJFILES.
Referenced by jit_event_handler(), and jit_inferior_init().
|
static |
Definition at line 1265 of file jit.c.
References regcache::arch(), frame_unwind_got_bytes(), frame_unwind_got_optimized(), gdbarch_num_regs(), gdbarch_pseudo_register_read_value(), REG_VALID, jit_unwind_private::regcache, regcache_raw_read(), register_size(), and status.
|
static |
Definition at line 1185 of file jit.c.
References _, fprintf_unfiltered(), jit_reader::functions, gdb_assert, gdb_stdlog, GDB_SUCCESS, get_frame_arch(), jit_dealloc_cache(), jit_debug, jit_target_read_impl(), jit_unwind_reg_get_impl(), jit_unwind_reg_set_impl(), loaded_jit_reader, gdb_unwind_callbacks::priv_data, gdb_unwind_callbacks::reg_get, gdb_unwind_callbacks::reg_set, jit_unwind_private::regcache, gdb_unwind_callbacks::target_read, jit_unwind_private::this_frame, gdb_reader_funcs::unwind, and XCNEW.
|
static |
Definition at line 1236 of file jit.c.
References frame_id_build(), jit_reader::functions, gdb_assert, gdb_reader_funcs::get_frame_id, jit_target_read_impl(), jit_unwind_reg_get_impl(), loaded_jit_reader, gdb_unwind_callbacks::priv_data, gdb_unwind_callbacks::reg_get, gdb_unwind_callbacks::reg_set, jit_unwind_private::regcache, gdb_unwind_callbacks::target_read, and jit_unwind_private::this_frame.
|
static |
Definition at line 1493 of file jit.c.
References jit_gdbarch_data_type::unwinder_registered.
Referenced by _initialize_jit().
|
static |
Definition at line 1382 of file jit.c.
References jit_inferior_created_hook().
Referenced by _initialize_jit().
| void jit_inferior_created_hook | ( | void | ) |
Definition at line 1390 of file jit.c.
References jit_inferior_init(), and target_gdbarch().
Referenced by follow_exec(), jit_inferior_created(), and jit_reader_load_command().
|
static |
Definition at line 1410 of file jit.c.
References jit_objfile_data::addr, ALL_OBJFILES_SAFE, and jit_unregister_code().
Referenced by _initialize_jit(), and jit_reader_unload_command().
|
static |
Definition at line 1332 of file jit.c.
References _, jit_descriptor::first_entry, fprintf_unfiltered(), gdb_stdlog, get_jit_program_space_data(), jit_breakpoint_re_set_internal(), jit_debug, jit_find_objf_with_entry_addr(), jit_prepend_unwinder(), jit_read_code_entry(), jit_read_descriptor(), jit_register_code(), jit_code_entry::next_entry, printf_unfiltered(), and jit_descriptor::version.
Referenced by jit_inferior_created_hook().
|
static |
Definition at line 797 of file jit.c.
References add_objfile_entry(), finalize_symtab(), objfile_per_bfd_storage::gdbarch, gdb_symtab::next, OBJF_NOT_FILENAME, objfile::objfile(), objfile::per_bfd, gdb_symbol_callbacks::priv_data, gdb_object::symtabs, target_gdbarch(), terminate_minimal_symbol_table(), and xfree().
Referenced by jit_reader_try_read_symtab().
|
static |
|
static |
Definition at line 1316 of file jit.c.
References frame_unwind_prepend_unwinder(), jit_frame_unwind, jit_gdbarch_data, and jit_gdbarch_data_type::unwinder_registered.
Referenced by jit_inferior_init().
|
static |
|
static |
Definition at line 401 of file jit.c.
References _, builtin_type::builtin_data_ptr, builtin_type(), err, error(), extract_typed_address(), extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_long_long_align_bit(), jit_code_entry::next_entry, jit_code_entry::prev_entry, jit_code_entry::symfile_addr, jit_code_entry::symfile_size, target_read_memory(), and TYPE_LENGTH.
Referenced by jit_event_handler(), and jit_inferior_init().
|
static |
Definition at line 346 of file jit.c.
References _, builtin_type::builtin_data_ptr, builtin_type(), jit_objfile_data::descriptor, err, extract_typed_address(), extract_unsigned_integer(), fprintf_unfiltered(), gdb_stdlog, gdbarch_byte_order(), get_jit_objfile_data(), jit_debug, MSYMBOL_VALUE_ADDRESS, jit_program_space_data::objfile, paddress(), printf_unfiltered(), target_read_memory(), and TYPE_LENGTH.
Referenced by jit_event_handler(), and jit_inferior_init().
|
static |
Definition at line 183 of file jit.c.
References _, error(), fprintf_unfiltered(), gdb_dlopen(), gdb_dlsym(), GDB_READER_INTERFACE_VERSION, gdb_stdlog, jit_debug, reader_init_fn_sym, and gdb_reader_funcs::reader_version.
Referenced by jit_reader_load_command().
|
static |
Definition at line 211 of file jit.c.
References _, error(), jit_inferior_created_hook(), jit_reader_dir, jit_reader_load(), loaded_jit_reader, reinit_frame_cache(), SLASH_STRING, and xstrprintf().
Referenced by _initialize_jit().
|
static |
Definition at line 827 of file jit.c.
References CATCH, END_CATCH, fprintf_unfiltered(), jit_reader::functions, gdb_stdlog, GDB_SUCCESS, jit_block_open_impl(), jit_debug, jit_object_close_impl(), jit_object_open_impl(), jit_symtab_close_impl(), jit_symtab_line_mapping_add_impl(), jit_symtab_open_impl(), jit_target_read_impl(), loaded_jit_reader, gdb_symbol_callbacks::priv_data, gdb_reader_funcs::read, RETURN_MASK_ALL, status, jit_code_entry::symfile_addr, jit_code_entry::symfile_size, target_read_memory(), TRY, xfree(), and xmalloc().
Referenced by jit_register_code().
|
static |
Definition at line 232 of file jit.c.
References _, current_inferior(), error(), jit_inferior_exit_hook(), loaded_jit_reader, and reinit_frame_cache().
Referenced by _initialize_jit().
|
static |
Definition at line 964 of file jit.c.
References fprintf_unfiltered(), gdb_stdlog, jit_bfd_try_read_symtab(), jit_debug, jit_reader_try_read_symtab(), paddress(), pulongest(), jit_code_entry::symfile_addr, and jit_code_entry::symfile_size.
Referenced by jit_event_handler(), and jit_inferior_init().
|
static |
Definition at line 634 of file jit.c.
Referenced by jit_reader_try_read_symtab().
|
static |
Definition at line 609 of file jit.c.
References linetable::item, gdb_line_mapping::line, linetable_entry::line, gdb_symtab::linetable, linetable::nitems, linetable_entry::pc, and xmalloc().
Referenced by jit_reader_try_read_symtab().
|
static |
Definition at line 524 of file jit.c.
References gdb_symtab::file_name, gdb_symtab::next, and XCNEW.
Referenced by jit_reader_try_read_symtab().
|
static |
Definition at line 497 of file jit.c.
References GDB_FAIL, GDB_SUCCESS, and target_read_memory().
Referenced by jit_frame_sniffer(), jit_frame_this_id(), and jit_reader_try_read_symtab().
|
static |
Definition at line 986 of file jit.c.
Referenced by jit_event_handler(), and jit_inferior_exit_hook().
|
static |
Definition at line 1142 of file jit.c.
References deprecated_frame_register_read(), gdbarch_dwarf2_reg_to_regnum(), get_frame_arch(), gdb_unwind_callbacks::priv_data, reg_value_free_impl(), register_size(), regnum, size, jit_unwind_private::this_frame, gdb_reg_value::value, and xmalloc().
Referenced by jit_frame_sniffer(), and jit_frame_this_id().
|
static |
Definition at line 1109 of file jit.c.
References _, fprintf_unfiltered(), gdb_stdlog, gdbarch_dwarf2_reg_to_regnum(), get_frame_arch(), jit_debug, gdb_unwind_callbacks::priv_data, jit_unwind_private::regcache, regcache_raw_set_cached_value(), and jit_unwind_private::this_frame.
Referenced by jit_frame_sniffer().
|
static |
Definition at line 92 of file jit.c.
References xfree().
Referenced by bfd_open_from_target_memory().
|
static |
Definition at line 84 of file jit.c.
Referenced by bfd_open_from_target_memory().
|
static |
Definition at line 104 of file jit.c.
References err, offset, and target_read_memory().
Referenced by bfd_open_from_target_memory().
|
static |
Definition at line 128 of file jit.c.
References memset().
Referenced by bfd_open_from_target_memory().
|
static |
|
static |
Definition at line 69 of file jit.c.
References _, and fprintf_filtered().
Referenced by _initialize_jit().
|
static |
Definition at line 49 of file jit.c.
Referenced by jit_breakpoint_re_set_internal().
|
static |
Definition at line 66 of file jit.c.
Referenced by _initialize_jit(), jit_bfd_try_read_symtab(), jit_breakpoint_re_set_internal(), jit_frame_sniffer(), jit_inferior_init(), jit_read_descriptor(), jit_reader_load(), jit_reader_try_read_symtab(), jit_register_code(), and jit_unwind_reg_set_impl().
|
static |
Definition at line 51 of file jit.c.
Referenced by jit_breakpoint_re_set_internal().
|
static |
Definition at line 1292 of file jit.c.
Referenced by jit_prepend_unwinder().
|
static |
Definition at line 62 of file jit.c.
Referenced by _initialize_jit(), and jit_prepend_unwinder().
|
static |
|
static |
|
static |
Definition at line 45 of file jit.c.
Referenced by _initialize_jit(), and jit_reader_load_command().
|
static |
Definition at line 175 of file jit.c.
Referenced by jit_frame_sniffer(), jit_frame_this_id(), jit_reader_load_command(), jit_reader_try_read_symtab(), and jit_reader_unload_command().
|
static |
Definition at line 178 of file jit.c.
Referenced by jit_reader_load().
1.8.14