aboutsummaryrefslogtreecommitdiff
path: root/gdb/auto-load.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/auto-load.c')
-rw-r--r--gdb/auto-load.c40
1 files changed, 29 insertions, 11 deletions
diff --git a/gdb/auto-load.c b/gdb/auto-load.c
index a2f6fb92..86d4e5e 100644
--- a/gdb/auto-load.c
+++ b/gdb/auto-load.c
@@ -39,7 +39,7 @@
#include "top.h"
#include "filestuff.h"
#include "extension.h"
-#include "python/python.h"
+#include "gdb/section-scripts.h"
/* The section to look in for auto-loaded scripts (in file formats that
support sections).
@@ -877,18 +877,22 @@ source_section_scripts (struct objfile *objfile, const char *section_name,
char *full_path;
int opened, in_hash_table;
struct cleanup *back_to;
- /* At the moment we only support python scripts in .debug_gdb_scripts,
- but that can change. */
- const struct extension_language_defn *language
- = &extension_language_python;
+ const struct extension_language_defn *language;
objfile_script_sourcer_func *sourcer;
- if (*p != 1)
+ switch (*p)
{
+ case SECTION_SCRIPT_ID_PYTHON_FILE:
+ language = get_ext_lang_defn (EXT_LANG_PYTHON);
+ break;
+ case SECTION_SCRIPT_ID_SCHEME_FILE:
+ language = get_ext_lang_defn (EXT_LANG_GUILE);
+ break;
+ default:
warning (_("Invalid entry in %s section"), section_name);
/* We could try various heuristics to find the next valid entry,
but it's safer to just punt. */
- break;
+ return;
}
file = ++p;
@@ -1395,6 +1399,8 @@ _initialize_auto_load (void)
{
struct cmd_list_element *cmd;
char *scripts_directory_help, *gdb_name_help, *python_name_help;
+ char *guile_name_help;
+ const char *suffix;
auto_load_pspace_data
= register_program_space_data_with_cleanup (NULL,
@@ -1439,16 +1445,26 @@ Usage: info auto-load local-gdbinit"),
auto_load_dir = xstrdup (AUTO_LOAD_DIR);
+ suffix = ext_lang_auto_load_suffix (get_ext_lang_defn (EXT_LANG_GDB));
gdb_name_help
= xstrprintf (_("\
GDB scripts: OBJFILE%s\n"),
- ext_lang_auto_load_suffix (&extension_language_gdb));
+ suffix);
python_name_help = NULL;
#ifdef HAVE_PYTHON
+ suffix = ext_lang_auto_load_suffix (get_ext_lang_defn (EXT_LANG_PYTHON));
python_name_help
= xstrprintf (_("\
Python scripts: OBJFILE%s\n"),
- ext_lang_auto_load_suffix (&extension_language_python));
+ suffix);
+#endif
+ guile_name_help = NULL;
+#ifdef HAVE_GUILE
+ suffix = ext_lang_auto_load_suffix (get_ext_lang_defn (EXT_LANG_GUILE));
+ guile_name_help
+ = xstrprintf (_("\
+Guile scripts: OBJFILE%s\n"),
+ suffix);
#endif
scripts_directory_help
= xstrprintf (_("\
@@ -1456,7 +1472,7 @@ Automatically loaded scripts are located in one of the directories listed\n\
by this option.\n\
\n\
Script names:\n\
-%s%s\
+%s%s%s\
\n\
This option is ignored for the kinds of scripts \
having 'set auto-load ... off'.\n\
@@ -1464,7 +1480,8 @@ Directories listed here need to be present also \
in the 'set auto-load safe-path'\n\
option."),
gdb_name_help,
- python_name_help ? python_name_help : "");
+ python_name_help ? python_name_help : "",
+ guile_name_help ? guile_name_help : "");
add_setshow_optional_filename_cmd ("scripts-directory", class_support,
&auto_load_dir, _("\
@@ -1477,6 +1494,7 @@ Show the list of directories from which to load auto-loaded scripts."),
xfree (scripts_directory_help);
xfree (python_name_help);
xfree (gdb_name_help);
+ xfree (guile_name_help);
auto_load_safe_path = xstrdup (AUTO_LOAD_SAFE_PATH);
auto_load_safe_path_vec_update ();