aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/py-auto-load.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/python/py-auto-load.c')
-rw-r--r--gdb/python/py-auto-load.c40
1 files changed, 37 insertions, 3 deletions
diff --git a/gdb/python/py-auto-load.c b/gdb/python/py-auto-load.c
index e3b406c..a06c126 100644
--- a/gdb/python/py-auto-load.c
+++ b/gdb/python/py-auto-load.c
@@ -28,9 +28,24 @@
#include "progspace.h"
#include "objfiles.h"
#include "python.h"
-#include "python-internal.h"
#include "cli/cli-cmds.h"
+/* Internal-use flag to enable/disable auto-loading.
+ This is true if we should auto-load python code when an objfile is opened,
+ false otherwise.
+
+ Both gdbpy_auto_load && gdbpy_global_auto_load must be true to enable
+ auto-loading.
+
+ This flag exists to facilitate deferring auto-loading during start-up
+ until after ./.gdbinit has been read; it may augment the search directories
+ used to find the scripts. */
+int gdbpy_global_auto_load = 1;
+
+#ifdef HAVE_PYTHON
+
+#include "python-internal.h"
+
/* NOTE: It's trivial to also support auto-loading normal gdb scripts.
There has yet to be a need so it's not implemented. */
@@ -66,7 +81,9 @@ struct loaded_script_entry
const char *full_path;
};
-/* This is true if we should auto-load python code when an objfile is opened,
+/* User-settable option to enable/disable auto-loading:
+ maint set python auto-load on|off
+ This is true if we should auto-load python code when an objfile is opened,
false otherwise. */
static int gdbpy_auto_load = 1;
@@ -377,7 +394,15 @@ auto_load_new_objfile (struct objfile *objfile)
if (!objfile->name)
return;
- if (gdbpy_auto_load)
+ load_auto_scripts_for_objfile (objfile);
+}
+
+/* Load any auto-loaded scripts for OBJFILE. */
+
+void
+load_auto_scripts_for_objfile (struct objfile *objfile)
+{
+ if (gdbpy_auto_load && gdbpy_global_auto_load)
{
auto_load_objfile_script (objfile, GDBPY_AUTO_FILE_NAME);
auto_load_section_scripts (objfile, GDBPY_AUTO_SECTION_NAME);
@@ -457,3 +482,12 @@ Enables or disables auto-loading of Python code when an object is opened."),
_("Print dump of auto-loaded section scripts matching REGEXP."),
&maintenanceprintlist);
}
+
+#else /* ! HAVE_PYTHON */
+
+void
+load_auto_scripts_for_objfile (struct objfile *objfile)
+{
+}
+
+#endif /* ! HAVE_PYTHON */