From 8a1ea21f7e299173e51bd45e8981ea107ebf0952 Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Fri, 23 Apr 2010 16:20:13 +0000 Subject: Add support for auto-loading scripts from .debug_gdb_scripts section. * NEWS: Add entry for .debug_gdb_scripts. * Makefile.in SUBDIR_PYTHON_OBS): Add py-auto-load.o. (SUBDIR_PYTHON_SRCS): Add py-auto-load.c. (py-auto-load.o): New rule. * cli/cli-cmds.c (find_and_open_script): Make externally visible. * cli/cli-cmds.h (find_and_open_script): Update prototype. * python/py-auto-load.c: New file. * python/python-internal.h: #include . (set_python_list, show_python_list): Declare. (gdbpy_initialize_auto_load): Declare. (source_python_script_for_objfile): Declare. * python/python.c: Remove #include of observer.h. (gdbpy_auto_load): Moved to py-auto-load.c. (GDBPY_AUTO_FILENAME): Ditto. (gdbpy_new_objfile): Delete. (source_python_script_for_objfile): New function. (set_python_list, show_python_list): Make externally visible. (_initialize_python): Move "auto-load" command to py-auto-load.c and observer_attach_new_objfile to py-auto-load.c. doc/ * gdb.texinfo (Python): Move Auto-loading section here ... (Python API): from here. (Auto-loading): Add docs for .debug_gdb_scripts auto-loaded scripts. (Maintenance Commands): Add docs for "maint print section-scripts". testsuite/ * gdb.python/py-section-script.c: New file. * gdb.python/py-section-script.exp: New file. * gdb.python/py-section-script.py: New file. --- gdb/python/python-internal.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'gdb/python/python-internal.h') diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index e3368e3..d27c5d2 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -20,6 +20,8 @@ #ifndef GDB_PYTHON_INTERNAL_H #define GDB_PYTHON_INTERNAL_H +#include + /* Python 2.4 doesn't include stdint.h soon enough to get {u,}intptr_t needed by pyport.h. */ #include @@ -75,6 +77,9 @@ extern PyTypeObject value_object_type; extern PyTypeObject block_object_type; extern PyTypeObject symbol_object_type; +extern struct cmd_list_element *set_python_list; +extern struct cmd_list_element *show_python_list; + PyObject *gdbpy_history (PyObject *self, PyObject *args); PyObject *gdbpy_breakpoints (PyObject *, PyObject *); PyObject *gdbpy_frame_stop_reason_string (PyObject *, PyObject *); @@ -107,6 +112,7 @@ struct type *type_object_to_type (PyObject *obj); struct symtab *symtab_object_to_symtab (PyObject *obj); struct symtab_and_line *sal_object_to_symtab_and_line (PyObject *obj); +void gdbpy_initialize_auto_load (void); void gdbpy_initialize_values (void); void gdbpy_initialize_frames (void); void gdbpy_initialize_symtabs (void); @@ -154,6 +160,9 @@ extern const struct language_defn *python_language; void gdbpy_print_stack (void); +void source_python_script_for_objfile (struct objfile *objfile, + FILE *stream, const char *file); + PyObject *python_string_to_unicode (PyObject *obj); char *unicode_to_target_string (PyObject *unicode_str); char *python_string_to_target_string (PyObject *obj); -- cgit v1.1