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"
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 |
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 1473 of file jit.c.
References _, add_com(), add_setshow_zuinteger_cmd(), class_maintenance, free_objfile_data(), gdbarch_data_register_pre_init(), is_dl_available(), jit_breakpoint_deleted(), jit_debug, jit_gdbarch_data_init(), 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, observer_attach_breakpoint_deleted(), observer_attach_inferior_exit(), relocate_gdb_directory(), setdebuglist, show_jit_debug(), and showdebuglist.
Definition at line 302 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 137 of file jit.c.
References target_buffer::base, gdb_bfd_openr_iovec(), mem_bfd_iovec_close(), mem_bfd_iovec_open(), mem_bfd_iovec_pread(), mem_bfd_iovec_stat(), target_buffer::size, size, and xmalloc().
Referenced by jit_bfd_try_read_symtab().
|
static |
Definition at line 535 of file jit.c.
References gdb_block::begin, and gdb_block::end.
Referenced by jit_block_open_impl().
|
static |
Definition at line 635 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, 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, objfile::objfile_obstack, 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, TYPE_CODE_VOID, VAR_DOMAIN, and xfree().
Referenced by jit_object_close_impl().
|
static |
Definition at line 1439 of file jit.c.
References jit_program_space_data::objfile, objfile::pspace, jit_objfile_data::register_code, and xfree().
Referenced by _initialize_jit().
|
static |
Definition at line 284 of file jit.c.
Referenced by add_objfile_entry(), jit_breakpoint_re_set_internal(), and jit_read_descriptor().
|
static |
Definition at line 314 of file jit.c.
References current_program_space.
Referenced by jit_breakpoint_re_set(), jit_event_handler(), and jit_inferior_init().
|
static |
Definition at line 873 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_bfd_unref(), gdb_stdlog, gdbarch_bfd_arch_info(), gnutarget, jit_debug, make_cleanup_bfd_unref(), make_cleanup_free_section_addr_info(), other_sections::name, section_addr_info::num_sections, OBJF_NOT_FILENAME, OBJF_SHARED, 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 558 of file jit.c.
References gdb_block::begin, gdb_symtab::blocks, compare_block(), gdb_block::end, gdb_block::name, gdb_symtab::nblocks, gdb_block::next, and gdb_block::parent.
Referenced by jit_reader_try_read_symtab().
|
static |
Definition at line 999 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 1371 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 1023 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 1149 of file jit.c.
References gdb_reg_value::free, gdb_assert, gdbarch_num_regs(), get_frame_arch(), jit_unwind_private::registers, jit_unwind_private::this_frame, and xfree().
Referenced by jit_frame_sniffer().
void jit_event_handler | ( | struct gdbarch * | gdbarch | ) |
Definition at line 1398 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 980 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 1254 of file jit.c.
References gdb_reg_value::defined, frame_unwind_got_bytes(), frame_unwind_got_optimized(), gdb_assert, jit_unwind_private::registers, and gdb_reg_value::value.
|
static |
Definition at line 1175 of file jit.c.
References _, fprintf_unfiltered(), jit_reader::functions, gdb_assert, gdb_stdlog, GDB_SUCCESS, gdbarch_num_regs(), 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_reader_funcs::priv_data, gdb_unwind_callbacks::reg_get, gdb_unwind_callbacks::reg_set, jit_unwind_private::registers, gdb_unwind_callbacks::target_read, jit_unwind_private::this_frame, and gdb_reader_funcs::unwind.
|
static |
Definition at line 1225 of file jit.c.
References gdb_frame_id::code_address, 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::registers, gdb_frame_id::stack_address, gdb_unwind_callbacks::target_read, and jit_unwind_private::this_frame.
|
static |
Definition at line 1459 of file jit.c.
References jit_gdbarch_data_type::unwinder_registered.
Referenced by _initialize_jit().
void jit_inferior_created_hook | ( | void | ) |
Definition at line 1362 of file jit.c.
References jit_inferior_init(), and target_gdbarch().
Referenced by follow_exec().
|
static |
Definition at line 1382 of file jit.c.
References jit_objfile_data::addr, ALL_OBJFILES_SAFE, and jit_unregister_code().
Referenced by _initialize_jit().
|
static |
Definition at line 1312 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 783 of file jit.c.
References add_objfile_entry(), allocate_objfile(), finalize_symtab(), objfile_per_bfd_storage::gdbarch, gdb_symtab::next, OBJF_NOT_FILENAME, 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 |
Definition at line 504 of file jit.c.
Referenced by jit_reader_try_read_symtab().
|
static |
Definition at line 1297 of file jit.c.
References frame_unwind_prepend_unwinder(), gdbarch_data(), and jit_gdbarch_data_type::unwinder_registered.
Referenced by jit_inferior_init().
|
static |
|
static |
Definition at line 394 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 339 of file jit.c.
References _, jit_descriptor::action_flag, builtin_type::builtin_data_ptr, builtin_type(), jit_objfile_data::descriptor, err, extract_typed_address(), extract_unsigned_integer(), jit_descriptor::first_entry, fprintf_unfiltered(), gdb_stdlog, gdbarch_byte_order(), get_jit_objfile_data(), jit_debug, MSYMBOL_VALUE_ADDRESS, jit_program_space_data::objfile, paddress(), printf_unfiltered(), jit_descriptor::relevant_entry, target_read_memory(), TYPE_LENGTH, and jit_descriptor::version.
Referenced by jit_event_handler(), and jit_inferior_init().
|
static |
Definition at line 166 of file jit.c.
References _, discard_cleanups(), error(), fprintf_unfiltered(), jit_reader::functions, gdb_dlopen(), gdb_dlsym(), GDB_READER_INTERFACE_VERSION, gdb_stdlog, jit_reader::handle, jit_debug, make_cleanup_dlclose(), and gdb_reader_funcs::reader_version.
Referenced by jit_reader_load_command().
|
static |
Definition at line 203 of file jit.c.
References _, do_cleanups(), error(), jit_reader_dir, jit_reader_load(), loaded_jit_reader, make_cleanup(), SLASH_STRING, xfree(), and xstrprintf().
Referenced by _initialize_jit().
|
static |
Definition at line 813 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_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 227 of file jit.c.
References _, gdb_reader_funcs::destroy, error(), jit_reader::functions, gdb_dlclose(), jit_reader::handle, loaded_jit_reader, and xfree().
Referenced by _initialize_jit().
|
static |
Definition at line 950 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 624 of file jit.c.
Referenced by jit_reader_try_read_symtab().
|
static |
Definition at line 601 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 516 of file jit.c.
References gdb_symtab::file_name, and gdb_symtab::next.
Referenced by jit_reader_try_read_symtab().
|
static |
Definition at line 490 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 972 of file jit.c.
References free_objfile().
Referenced by jit_event_handler(), and jit_inferior_exit_hook().
|
static |
Definition at line 1125 of file jit.c.
References gdb_reg_value::defined, deprecated_frame_register_read(), gdb_reg_value::free, gdbarch_dwarf2_reg_to_regnum(), get_frame_arch(), gdb_unwind_callbacks::priv_data, reg_value_free_impl(), register_size(), gdb_reg_value::size, 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 1093 of file jit.c.
References _, fprintf_unfiltered(), gdb_assert, gdb_stdlog, gdbarch_dwarf2_reg_to_regnum(), get_frame_arch(), jit_debug, gdb_unwind_callbacks::priv_data, jit_unwind_private::registers, and jit_unwind_private::this_frame.
Referenced by jit_frame_sniffer().
|
static |
Definition at line 89 of file jit.c.
References xfree().
Referenced by bfd_open_from_target_memory().
|
static |
Definition at line 81 of file jit.c.
Referenced by bfd_open_from_target_memory().
|
static |
Definition at line 101 of file jit.c.
References target_buffer::base, err, offset, target_buffer::size, and target_read_memory().
Referenced by bfd_open_from_target_memory().
|
static |
Definition at line 125 of file jit.c.
References target_buffer::size.
Referenced by bfd_open_from_target_memory().
|
static |
|
static |
Definition at line 66 of file jit.c.
References _, and fprintf_filtered().
Referenced by _initialize_jit().
Definition at line 47 of file jit.c.
Referenced by jit_breakpoint_re_set_internal().
|
static |
Definition at line 63 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().
Definition at line 49 of file jit.c.
Referenced by jit_breakpoint_re_set_internal().
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 43 of file jit.c.
Referenced by _initialize_jit(), and jit_reader_load_command().
|
static |