|
GDB (xrefs)
|
#include "defs.h"#include <ctype.h>#include "auto-load.h"#include "progspace.h"#include "gdb_regex.h"#include "ui-out.h"#include "filenames.h"#include "command.h"#include "observer.h"#include "objfiles.h"#include "cli/cli-script.h"#include "gdbcmd.h"#include "cli/cli-cmds.h"#include "cli/cli-decode.h"#include "cli/cli-setshow.h"#include "readline/tilde.h"#include "completer.h"#include "fnmatch.h"#include "top.h"#include "filestuff.h"#include "extension.h"#include "gdb/section-scripts.h"#include <algorithm>Go to the source code of this file.
Classes | |
| struct | auto_load_pspace_info |
| struct | loaded_script |
| struct | collect_matching_scripts_data |
Macros | |
| #define | AUTO_SECTION_NAME ".debug_gdb_scripts" |
Functions | |
| static void | maybe_print_unsupported_script_warning (struct auto_load_pspace_info *, struct objfile *objfile, const struct extension_language_defn *language, const char *section_name, unsigned offset) |
| static void | maybe_print_script_not_found_warning (struct auto_load_pspace_info *, struct objfile *objfile, const struct extension_language_defn *language, const char *section_name, unsigned offset) |
| static void | show_debug_auto_load (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) |
| static void | show_auto_load_gdb_scripts (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) |
| int | auto_load_gdb_scripts_enabled (const struct extension_language_defn *extlang) |
| static void | show_auto_load_local_gdbinit (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) |
| static void | set_auto_load_dir (const char *args, int from_tty, struct cmd_list_element *c) |
| static void | show_auto_load_dir (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) |
| static | VEC (char_ptr) |
| static void | auto_load_safe_path_vec_update (void) |
| static void | auto_load_gdb_datadir_changed (void) |
| static void | set_auto_load_safe_path (const char *args, int from_tty, struct cmd_list_element *c) |
| static void | show_auto_load_safe_path (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) |
| static void | add_auto_load_safe_path (const char *args, int from_tty) |
| static void | add_auto_load_dir (const char *args, int from_tty) |
| static int | filename_is_in_pattern_1 (char *filename, char *pattern) |
| static ATTRIBUTE_PURE int | filename_is_in_pattern (const char *filename, const char *pattern) |
| static int | filename_is_in_auto_load_safe_path_vec (const char *filename, gdb::unique_xmalloc_ptr< char > *filename_realp) |
| int | file_is_auto_load_safe (const char *filename, const char *debug_fmt,...) |
| static void | auto_load_pspace_data_cleanup (struct program_space *pspace, void *arg) |
| static struct auto_load_pspace_info * | get_auto_load_pspace_data (struct program_space *pspace) |
| static hashval_t | hash_loaded_script_entry (const void *data) |
| static int | eq_loaded_script_entry (const void *a, const void *b) |
| static void | init_loaded_scripts_info (struct auto_load_pspace_info *pspace_info) |
| struct auto_load_pspace_info * | get_auto_load_pspace_data_for_loading (struct program_space *pspace) |
| static int | maybe_add_script_file (struct auto_load_pspace_info *pspace_info, int loaded, const char *name, const char *full_path, const struct extension_language_defn *language) |
| static int | maybe_add_script_text (struct auto_load_pspace_info *pspace_info, int loaded, const char *name, const struct extension_language_defn *language) |
| static void | clear_section_scripts (void) |
| static int | auto_load_objfile_script_1 (struct objfile *objfile, const char *realname, const struct extension_language_defn *language) |
| void | auto_load_objfile_script (struct objfile *objfile, const struct extension_language_defn *language) |
| static void | source_script_file (struct auto_load_pspace_info *pspace_info, struct objfile *objfile, const struct extension_language_defn *language, const char *section_name, unsigned int offset, const char *file) |
| static void | execute_script_contents (struct auto_load_pspace_info *pspace_info, struct objfile *objfile, const struct extension_language_defn *language, const char *section_name, unsigned int offset, const char *script) |
| static void | source_section_scripts (struct objfile *objfile, const char *section_name, const char *start, const char *end) |
| static void | auto_load_section_scripts (struct objfile *objfile, const char *section_name) |
| void | load_auto_scripts_for_objfile (struct objfile *objfile) |
| static void | auto_load_new_objfile (struct objfile *objfile) |
| static int | collect_matching_scripts (void **slot, void *info) |
| static void | print_script (struct loaded_script *script) |
| static bool | sort_scripts_by_name (loaded_script *a, loaded_script *b) |
| static void | print_scripts (const std::vector< loaded_script *> &scripts) |
| void | auto_load_info_scripts (const char *pattern, int from_tty, const struct extension_language_defn *language) |
| static void | info_auto_load_gdb_scripts (const char *pattern, int from_tty) |
| static void | info_auto_load_local_gdbinit (const char *args, int from_tty) |
| static void | set_auto_load_cmd (const char *args, int from_tty) |
| struct cmd_list_element ** | auto_load_set_cmdlist_get (void) |
| static void | show_auto_load_cmd (const char *args, int from_tty) |
| struct cmd_list_element ** | auto_load_show_cmdlist_get (void) |
| static void | info_auto_load_cmd (const char *args, int from_tty) |
| struct cmd_list_element ** | auto_load_info_cmdlist_get (void) |
| void | _initialize_auto_load (void) |
Variables | |
| static int | debug_auto_load = 0 |
| static int | auto_load_gdb_scripts = 1 |
| int | global_auto_load = 1 |
| int | auto_load_local_gdbinit = 1 |
| char * | auto_load_local_gdbinit_pathname = NULL |
| int | auto_load_local_gdbinit_loaded = 0 |
| static char * | auto_load_dir |
| static char * | auto_load_safe_path |
| static const struct program_space_data * | auto_load_pspace_data |
| char | auto_load_info_scripts_pattern_nl [] = "" |
| #define AUTO_SECTION_NAME ".debug_gdb_scripts" |
Definition at line 50 of file auto-load.c.
Referenced by load_auto_scripts_for_objfile().
| void _initialize_auto_load | ( | void | ) |
Definition at line 1560 of file auto-load.c.
References _, add_auto_load_dir(), add_auto_load_safe_path(), add_cmd(), add_setshow_boolean_cmd(), add_setshow_optional_filename_cmd(), AUTO_LOAD_DIR, auto_load_dir, auto_load_gdb_datadir_changed(), auto_load_gdb_scripts, auto_load_info_cmdlist_get(), auto_load_local_gdbinit, auto_load_new_objfile(), auto_load_pspace_data, auto_load_pspace_data_cleanup(), AUTO_LOAD_SAFE_PATH, auto_load_safe_path, auto_load_safe_path_vec_update(), auto_load_set_cmdlist_get(), auto_load_show_cmdlist_get(), class_info, class_maintenance, class_support, cmdlist, debug_auto_load, ext_lang_auto_load_suffix(), EXT_LANG_GDB, EXT_LANG_GUILE, EXT_LANG_PYTHON, filename_completer(), get_ext_lang_defn(), info_auto_load_gdb_scripts(), info_auto_load_local_gdbinit(), observer_attach_gdb_datadir_changed(), observer_attach_new_objfile(), set_auto_load_dir(), set_auto_load_safe_path(), set_cmd_completer(), setdebuglist, show_auto_load_dir(), show_auto_load_gdb_scripts(), show_auto_load_local_gdbinit(), show_auto_load_safe_path(), show_debug_auto_load(), showdebuglist, xfree(), and xstrprintf().
|
static |
Definition at line 326 of file auto-load.c.
References _, auto_load_dir, DIRNAME_SEPARATOR, error(), xfree(), and xstrprintf().
Referenced by _initialize_auto_load().
|
static |
Definition at line 305 of file auto-load.c.
References _, auto_load_safe_path, auto_load_safe_path_vec_update(), DIRNAME_SEPARATOR, error(), xfree(), and xstrprintf().
Referenced by _initialize_auto_load().
|
static |
Definition at line 257 of file auto-load.c.
References auto_load_safe_path_vec_update().
Referenced by _initialize_auto_load().
| int auto_load_gdb_scripts_enabled | ( | const struct extension_language_defn * | extlang | ) |
Definition at line 97 of file auto-load.c.
References auto_load_gdb_scripts.
| struct cmd_list_element** auto_load_info_cmdlist_get | ( | void | ) |
Definition at line 1544 of file auto-load.c.
References _, add_prefix_cmd(), class_info, info_auto_load_cmd(), and infolist.
Referenced by _initialize_auto_load(), _initialize_thread_db(), gdbpy_initialize_auto_load(), gdbscm_initialize_auto_load(), and info_auto_load_cmd().
| void auto_load_info_scripts | ( | const char * | pattern, |
| int | from_tty, | ||
| const struct extension_language_defn * | language | ||
| ) |
Definition at line 1294 of file auto-load.c.
References _, auto_load_info_scripts_pattern_nl, collect_matching_scripts(), current_program_space, current_uiout, dont_repeat(), error(), get_auto_load_pspace_data(), auto_load_pspace_info::loaded_script_files, auto_load_pspace_info::loaded_script_texts, ui_out::message(), print_scripts(), re_comp(), sort_scripts_by_name(), ui_out::table_body(), ui_out::table_header(), ui_out::text(), and ui_left.
Referenced by info_auto_load_gdb_scripts(), info_auto_load_guile_scripts(), and info_auto_load_python_scripts().
|
static |
Definition at line 1202 of file auto-load.c.
References clear_section_scripts(), and load_auto_scripts_for_objfile().
Referenced by _initialize_auto_load().
| void auto_load_objfile_script | ( | struct objfile * | objfile, |
| const struct extension_language_defn * | language | ||
| ) |
Definition at line 879 of file auto-load.c.
References _, auto_load_objfile_script_1(), debug_auto_load, fprintf_unfiltered(), gdb_realpath(), gdb_stdlog, and objfile_name().
Referenced by auto_load_ext_lang_scripts_for_objfile().
|
static |
Definition at line 772 of file auto-load.c.
References _, auto_load_dir, current_program_space, debug_auto_load, do_cleanups(), ext_lang_auto_load_suffix(), ext_lang_name(), ext_lang_objfile_script_sourcer(), file_is_auto_load_safe(), fprintf_unfiltered(), gdb_assert, gdb_fopen_cloexec(), gdb_stdlog, get_auto_load_pspace_data_for_loading(), make_cleanup(), make_cleanup_free_char_ptr_vec(), maybe_add_script_file(), objfile_name(), VEC(), VEC_iterate, xfree(), and xmalloc().
Referenced by auto_load_objfile_script().
|
static |
Definition at line 569 of file auto-load.c.
References auto_load_pspace_info::loaded_script_files, auto_load_pspace_info::loaded_script_texts, and xfree().
Referenced by _initialize_auto_load().
|
static |
Definition at line 200 of file auto-load.c.
References _, auto_load_safe_path, debug_auto_load, fprintf_unfiltered(), free_char_ptr_vec(), gdb_realpath(), gdb_stdlog, VEC_index, VEC_length, VEC_replace, VEC_safe_push, and xfree().
Referenced by _initialize_auto_load(), add_auto_load_safe_path(), auto_load_gdb_datadir_changed(), file_is_auto_load_safe(), and set_auto_load_safe_path().
|
static |
Definition at line 1147 of file auto-load.c.
References _, do_cleanups(), make_cleanup(), objfile::obfd, source_section_scripts(), warning(), and xfree().
Referenced by load_auto_scripts_for_objfile().
| struct cmd_list_element** auto_load_set_cmdlist_get | ( | void | ) |
Definition at line 1474 of file auto-load.c.
References _, add_prefix_cmd(), class_maintenance, set_auto_load_cmd(), and setlist.
Referenced by _initialize_auto_load(), _initialize_thread_db(), gdbpy_initialize_auto_load(), gdbscm_initialize_auto_load(), and set_auto_load_cmd().
| struct cmd_list_element** auto_load_show_cmdlist_get | ( | void | ) |
Definition at line 1501 of file auto-load.c.
References _, add_prefix_cmd(), class_maintenance, show_auto_load_cmd(), and showlist.
Referenced by _initialize_auto_load(), _initialize_thread_db(), gdbpy_initialize_auto_load(), gdbscm_initialize_auto_load(), and show_auto_load_cmd().
|
static |
Definition at line 749 of file auto-load.c.
References auto_load_pspace_data, current_program_space, auto_load_pspace_info::loaded_script_files, auto_load_pspace_info::loaded_script_texts, auto_load_pspace_info::script_not_found_warning_printed, and auto_load_pspace_info::unsupported_script_warning_printed.
Referenced by auto_load_new_objfile().
|
static |
Definition at line 1231 of file auto-load.c.
References loaded_script::language, collect_matching_scripts_data::language, loaded_script::name, and collect_matching_scripts_data::scripts_p.
Referenced by auto_load_info_scripts().
|
static |
Definition at line 612 of file auto-load.c.
References loaded_script::language, and loaded_script::name.
Referenced by init_loaded_scripts_info().
|
static |
Definition at line 984 of file auto-load.c.
References _, do_cleanups(), ext_lang_auto_load_enabled(), ext_lang_name(), ext_lang_objfile_script_executor(), file_is_auto_load_safe(), make_cleanup(), maybe_add_script_text(), maybe_print_unsupported_script_warning(), name, null_cleanup(), objfile_name(), offset, warning(), and xfree().
Referenced by source_section_scripts().
| int file_is_auto_load_safe | ( | const char * | filename, |
| const char * | debug_fmt, | ||
| ... | |||
| ) |
Definition at line 476 of file auto-load.c.
References _, auto_load_safe_path, auto_load_safe_path_vec_update(), debug_auto_load, filename_is_in_auto_load_safe_path_vec(), gdb_stdlog, gdbinit, printf_filtered(), string, string_printf(), vfprintf_unfiltered(), and warning().
Referenced by auto_load_objfile_script_1(), captured_main_1(), execute_script_contents(), source_script_file(), and try_thread_db_load().
|
static |
Definition at line 425 of file auto-load.c.
References _, debug_auto_load, filename_is_in_pattern(), fprintf_unfiltered(), gdb_realpath(), gdb_stdlog, and VEC_iterate.
Referenced by file_is_auto_load_safe().
|
static |
Definition at line 407 of file auto-load.c.
References filename_is_in_pattern_1().
Referenced by filename_is_in_auto_load_safe_path_vec().
|
static |
Definition at line 342 of file auto-load.c.
References _, debug_auto_load, fprintf_unfiltered(), gdb_filename_fnmatch(), and gdb_stdlog.
Referenced by filename_is_in_pattern().
|
static |
Definition at line 584 of file auto-load.c.
References auto_load_pspace_data, and XCNEW.
Referenced by auto_load_info_scripts(), and get_auto_load_pspace_data_for_loading().
| struct auto_load_pspace_info* get_auto_load_pspace_data_for_loading | ( | struct program_space * | pspace | ) |
Definition at line 647 of file auto-load.c.
References get_auto_load_pspace_data(), init_loaded_scripts_info(), and auto_load_pspace_info::loaded_script_files.
Referenced by auto_load_objfile_script_1(), and source_section_scripts().
|
static |
Definition at line 602 of file auto-load.c.
References loaded_script::language, and loaded_script::name.
Referenced by init_loaded_scripts_info().
|
static |
Definition at line 1521 of file auto-load.c.
References auto_load_info_cmdlist_get(), auto_load_info_scripts_pattern_nl, cmd_func(), current_uiout, ui_out::field_string(), gdb_assert, cmd_list_element::name, cmd_list_element::next, not_set_cmd, cmd_list_element::prefixlist, ui_out::text(), and cmd_list_element::type.
Referenced by auto_load_info_cmdlist_get().
|
static |
Definition at line 1377 of file auto-load.c.
References auto_load_info_scripts(), and extension_language_gdb.
Referenced by _initialize_auto_load().
|
static |
Definition at line 1385 of file auto-load.c.
References _, auto_load_local_gdbinit_loaded, auto_load_local_gdbinit_pathname, and printf_filtered().
Referenced by _initialize_auto_load().
|
static |
Definition at line 624 of file auto-load.c.
References eq_loaded_script_entry(), hash_loaded_script_entry(), auto_load_pspace_info::loaded_script_files, auto_load_pspace_info::loaded_script_texts, auto_load_pspace_info::script_not_found_warning_printed, auto_load_pspace_info::unsupported_script_warning_printed, and xfree().
Referenced by get_auto_load_pspace_data_for_loading().
| void load_auto_scripts_for_objfile | ( | struct objfile * | objfile | ) |
Definition at line 1176 of file auto-load.c.
References auto_load_ext_lang_scripts_for_objfile(), auto_load_section_scripts(), AUTO_SECTION_NAME, objfile::flags, global_auto_load, is_target_filename(), OBJF_NOT_FILENAME, and objfile::original_name.
Referenced by auto_load_new_objfile(), and captured_main_1().
|
static |
Definition at line 665 of file auto-load.c.
References loaded_script::full_path, loaded_script::language, loaded_script::loaded, auto_load_pspace_info::loaded_script_files, name, loaded_script::name, and xmalloc().
Referenced by auto_load_objfile_script_1(), and source_script_file().
|
static |
Definition at line 713 of file auto-load.c.
References loaded_script::language, loaded_script::loaded, auto_load_pspace_info::loaded_script_texts, name, loaded_script::name, and xmalloc().
Referenced by execute_script_contents().
|
static |
Definition at line 1425 of file auto-load.c.
References _, ext_lang_name(), objfile_name(), offset, auto_load_pspace_info::script_not_found_warning_printed, and warning().
Referenced by source_script_file().
|
static |
Definition at line 1403 of file auto-load.c.
References _, ext_lang_name(), objfile_name(), offset, auto_load_pspace_info::unsupported_script_warning_printed, and warning().
Referenced by execute_script_contents(), and source_script_file().
|
static |
Definition at line 1246 of file auto-load.c.
References current_uiout, ui_out::field_string(), loaded_script::full_path, loaded_script::loaded, loaded_script::name, and ui_out::text().
Referenced by print_scripts().
|
static |
Definition at line 1283 of file auto-load.c.
References print_script().
Referenced by auto_load_info_scripts().
|
static |
Definition at line 1444 of file auto-load.c.
References _, auto_load_set_cmdlist_get(), do_set_command(), error(), gdb_assert, cmd_list_element::next, set_cmd, cmd_list_element::type, var_boolean, and cmd_list_element::var_type.
Referenced by auto_load_set_cmdlist_get().
|
static |
Definition at line 142 of file auto-load.c.
References AUTO_LOAD_DIR, auto_load_dir, and xfree().
Referenced by _initialize_auto_load().
|
static |
Definition at line 265 of file auto-load.c.
References AUTO_LOAD_SAFE_PATH, auto_load_safe_path, auto_load_safe_path_vec_update(), and xfree().
Referenced by _initialize_auto_load().
|
static |
Definition at line 1493 of file auto-load.c.
References auto_load_show_cmdlist_get(), and cmd_show_list().
Referenced by auto_load_show_cmdlist_get().
|
static |
Definition at line 155 of file auto-load.c.
References _, and fprintf_filtered().
Referenced by _initialize_auto_load().
|
static |
Definition at line 86 of file auto-load.c.
References _, and fprintf_filtered().
Referenced by _initialize_auto_load().
|
static |
Definition at line 126 of file auto-load.c.
References _, and fprintf_filtered().
Referenced by _initialize_auto_load().
|
static |
Definition at line 281 of file auto-load.c.
References _, DIRNAME_SEPARATOR, and fprintf_filtered().
Referenced by _initialize_auto_load().
|
static |
Definition at line 68 of file auto-load.c.
References _, and fprintf_filtered().
Referenced by _initialize_auto_load().
|
static |
Definition at line 1269 of file auto-load.c.
References loaded_script::name.
Referenced by auto_load_info_scripts().
|
static |
Definition at line 911 of file auto-load.c.
References _, ext_lang_auto_load_enabled(), ext_lang_name(), ext_lang_objfile_script_sourcer(), file_is_auto_load_safe(), find_and_open_script(), open_script::full_path, maybe_add_script_file(), maybe_print_script_not_found_warning(), maybe_print_unsupported_script_warning(), objfile_name(), offset, gdb::optional< T >::reset(), and open_script::stream.
Referenced by source_section_scripts().
|
static |
Definition at line 1079 of file auto-load.c.
References _, code, current_program_space, execute_script_contents(), EXT_LANG_GUILE, EXT_LANG_PYTHON, get_auto_load_pspace_data_for_loading(), get_ext_lang_defn(), offset, source_script_file(), and warning().
Referenced by auto_load_section_scripts().
|
static |
Definition at line 171 of file auto-load.c.
References _, debug_auto_load, debug_file_directory, fprintf_unfiltered(), gdb_datadir, gdb_stdlog, substitute_path_component(), and xfree().
Referenced by auto_load_objfile_script_1().
|
static |
Definition at line 137 of file auto-load.c.
Referenced by _initialize_auto_load(), add_auto_load_dir(), auto_load_objfile_script_1(), and set_auto_load_dir().
|
static |
Definition at line 81 of file auto-load.c.
Referenced by _initialize_auto_load(), and auto_load_gdb_scripts_enabled().
| char auto_load_info_scripts_pattern_nl[] = "" |
Definition at line 1277 of file auto-load.c.
Referenced by auto_load_info_scripts(), info_auto_load_cmd(), and info_auto_load_libthread_db().
| int auto_load_local_gdbinit = 1 |
Definition at line 115 of file auto-load.c.
Referenced by _initialize_auto_load(), and captured_main_1().
| int auto_load_local_gdbinit_loaded = 0 |
Definition at line 121 of file auto-load.c.
Referenced by captured_main_1(), and info_auto_load_local_gdbinit().
| char* auto_load_local_gdbinit_pathname = NULL |
Definition at line 118 of file auto-load.c.
Referenced by captured_main_1(), and info_auto_load_local_gdbinit().
|
static |
Definition at line 566 of file auto-load.c.
Referenced by _initialize_auto_load(), clear_section_scripts(), and get_auto_load_pspace_data().
|
static |
Definition at line 166 of file auto-load.c.
Referenced by _initialize_auto_load(), add_auto_load_safe_path(), auto_load_safe_path_vec_update(), file_is_auto_load_safe(), and set_auto_load_safe_path().
|
static |
Definition at line 63 of file auto-load.c.
Referenced by _initialize_auto_load(), auto_load_objfile_script(), auto_load_objfile_script_1(), auto_load_safe_path_vec_update(), file_is_auto_load_safe(), filename_is_in_auto_load_safe_path_vec(), filename_is_in_pattern_1(), and VEC().
| int global_auto_load = 1 |
Definition at line 112 of file auto-load.c.
Referenced by captured_main_1(), and load_auto_scripts_for_objfile().
1.8.14