diff options
author | Doug Evans <xdje42@gmail.com> | 2013-11-29 21:29:26 -0800 |
---|---|---|
committer | Doug Evans <xdje42@gmail.com> | 2013-11-29 21:29:26 -0800 |
commit | 5b2bf9471f1499bee578fcd60c05afe85794e280 (patch) | |
tree | f0bf05b2842251a3b03bb55dca639b8903caf2e2 /gdb/auto-load.h | |
parent | d9c43928180cc298ece7de1a27eafbf6c8c38de7 (diff) | |
download | gdb-5b2bf9471f1499bee578fcd60c05afe85794e280.zip gdb-5b2bf9471f1499bee578fcd60c05afe85794e280.tar.gz gdb-5b2bf9471f1499bee578fcd60c05afe85794e280.tar.bz2 |
Move .debug_gdb_script processing to auto-load.c.
Simplify handling of auto-loaded objfile scripts.
.debug_gdb_scripts was always intended to handle more than just python,
thus the rightful home for the code that processes it is not in py-foo.c.
This is just a cleanup to move the code to a better place.
This also simplifies the handling of the ${objfile}-${suffix} auto-loaded
scripts. There's no need for each of the the handlers to do is-safe-to-load
checking, or call maybe_add_script. Doing it in the caller removes the
duplication.
* auto-load.h (script_language): New members name, auto_load_enabled.
Add missing comments on struct members.
(auto_load_objfile_script): Delete.
* auto-load.c: #include "cli/cli-cmds.h".
(auto_load_gdb_scripts_enabled): New function.
(script_language_gdb): Update, add new members.
(source_gdb_script_for_objfile): Simplify, auto-load safe-checking
and call to maybe_add_script moved to caller.
(auto_load_objfile_script_1): Auto-load safe-checking and
call to maybe_add_script moved here.
(auto_load_objfile_script): Make static. Early exit if support for
scripting language hasn't been compiled in, or auto-loading has been
disabled.
(source_section_scripts): Argument "source_name" renamed to
"section_name". All uses updated. Replace uses of AUTO_SECTION_NAME
with section_name. Skip loading script if support for scripting
language hasn't been compiled in, or auto-loading has been disabled.
Call language->source_script_for_objfile instead of calling
source_python_script_for_objfile directly.
(load_auto_scripts_for_objfile): Update.
* python/py-auto-load.c: Delete #include "cli/cli-cmds.h".
(gdbpy_load_auto_script_for_objfile): Delete.
(auto_load_python_scripts_enabled): New function.
(script_language_python): Update, add new members.
(gdbpy_script_language_defn): New function.
* python/python.h (gdbpy_load_auto_scripts_for_objfile): Delete.
(gdbpy_script_language_defn): Declare.
* auto-load.c (AUTO_SECTION_NAME): Moved here and renamed from
py-auto-load.c, GDBPY_AUTO_SECTION_NAME.
(source_section_scripts): Moved here from py-auto-load.c.
(auto_load_section_scripts): Ditto.
* python/py-auto-load.c (GDBPY_AUTO_SECTION_NAME): Moved to
auto-load.c, renamed AUTO_SECTION_NAME.
(source_section_scripts, auto_load_section_scripts): Moved to
auto-load.c.
Diffstat (limited to 'gdb/auto-load.h')
-rw-r--r-- | gdb/auto-load.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gdb/auto-load.h b/gdb/auto-load.h index 6a66622..2ddebc5 100644 --- a/gdb/auto-load.h +++ b/gdb/auto-load.h @@ -24,8 +24,18 @@ struct program_space; struct script_language { + /* The name of the language, lowercase. */ + const char *name; + + /* The suffix added to objfiles to get their auto-load script. + E.g., "-gdb.py". */ const char *suffix; + /* Returns non-zero if auto-loading scripts in this language is enabled. */ + int (*auto_load_enabled) (void); + + /* Worker routine to load the script. It has already been opened and + deemed safe to load. */ void (*source_script_for_objfile) (struct objfile *objfile, FILE *file, const char *filename); }; @@ -42,8 +52,6 @@ extern int maybe_add_script (struct auto_load_pspace_info *pspace_info, int loaded, const char *name, const char *full_path, const struct script_language *language); -extern void auto_load_objfile_script (struct objfile *objfile, - const struct script_language *language); extern void load_auto_scripts_for_objfile (struct objfile *objfile); extern int script_not_found_warning_print (struct auto_load_pspace_info *pspace_info); |