aboutsummaryrefslogtreecommitdiff
path: root/gdb/auto-load.h
diff options
context:
space:
mode:
authorDoug Evans <xdje42@gmail.com>2013-11-29 21:29:26 -0800
committerDoug Evans <xdje42@gmail.com>2013-11-29 21:29:26 -0800
commit5b2bf9471f1499bee578fcd60c05afe85794e280 (patch)
treef0bf05b2842251a3b03bb55dca639b8903caf2e2 /gdb/auto-load.h
parentd9c43928180cc298ece7de1a27eafbf6c8c38de7 (diff)
downloadbinutils-5b2bf9471f1499bee578fcd60c05afe85794e280.zip
binutils-5b2bf9471f1499bee578fcd60c05afe85794e280.tar.gz
binutils-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.h12
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);